

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

# Travailler avec des sources Amazon Cognito d'identité
<a name="identity-sources-cognito"></a>

Verified Permissions travaille en étroite collaboration avec les groupes d'utilisateurs d'Amazon Cognito. Amazon Cognito JWTs ont une structure prévisible. Verified Permissions reconnaît cette structure et tire le meilleur parti des informations qu'elle contient. Par exemple, vous pouvez implémenter un modèle d'autorisation de contrôle d'accès basé sur les rôles (RBAC) avec des jetons d'identification ou des jetons d'accès.

Une nouvelle source d'identité de pool d'utilisateurs Amazon Cognito a besoin des informations suivantes :
+ Le Région AWS.
+ ID du groupe d'utilisateurs.
+ Le type d'entité principal que vous souhaitez associer à votre source d'identité, par exemple`MyCorp::User`.
+ Le type d'entité de groupe principal que vous souhaitez associer à votre source d'identité, par exemple`MyCorp::UserGroup`.
+ Le client IDs de votre groupe d'utilisateurs que vous souhaitez autoriser à envoyer des demandes à votre magasin de politiques.

Comme les autorisations vérifiées ne fonctionnent qu'avec les groupes d'utilisateurs Amazon Cognito appartenant au même groupe Compte AWS, vous ne pouvez pas spécifier de source d'identité dans un autre compte. Les autorisations vérifiées définissent le *préfixe d'entité* (identifiant de source d'identité auquel vous devez faire référence dans les politiques qui agissent sur les principes du groupe d'utilisateurs) à l'ID de votre groupe d'utilisateurs, par exemple. `us-west-2_EXAMPLE` Dans ce cas, vous devez faire référence à un utilisateur de ce groupe d'utilisateurs dont l'identifiant est `a1b2c3d4-5678-90ab-cdef-EXAMPLE22222` `us-west-2_EXAMPLE|a1b2c3d4-5678-90ab-cdef-EXAMPLE22222`

Les *demandes* de jetons du pool d'utilisateurs peuvent contenir des attributs, des étendues, des groupes, des clients IDs et des données personnalisées. [Amazon Cognito JWTs](https://docs.aws.amazon.com/cognito/latest/developerguide/amazon-cognito-user-pools-using-tokens-with-identity-providers.html)ont la capacité d'inclure une variété d'informations susceptibles de contribuer aux décisions d'autorisation dans les autorisations vérifiées. Il s’agit des licences suivantes :

1. Nom d'utilisateur et réclamations groupées avec un `cognito:` préfixe

1. [Attributs utilisateur personnalisés](https://docs.aws.amazon.com/cognito/latest/developerguide/user-pool-settings-attributes.html#user-pool-settings-custom-attributes) avec `custom: prefix`

1. Réclamations personnalisées ajoutées au moment de l'exécution

1. Les allégations standard de l'OIDC telles que `sub` et `email`

Nous abordons ces réclamations en détail et expliquons comment les gérer dans les politiques d'autorisations vérifiées, dans[Mappage Amazon Cognito des jetons au schéma](cognito-map-token-to-schema.md).

**Important**  
Bien que vous puissiez révoquer les Amazon Cognito jetons avant leur expiration, ils JWTs sont considérés comme des ressources apatrides dotées d'une signature et d'une validité autonomes. Les services conformes [au jeton Web JSON RFC 7519](https://datatracker.ietf.org/doc/html/rfc7519) sont censés valider les jetons à distance et ne sont pas tenus de les valider auprès de l'émetteur. Cela signifie qu'il est possible pour les autorisations vérifiées d'accorder l'accès en fonction d'un jeton révoqué ou émis pour un utilisateur qui a ensuite été supprimé. Pour atténuer ce risque, nous vous recommandons de créer vos jetons avec la durée de validité la plus courte possible et de révoquer les jetons d'actualisation lorsque vous souhaitez supprimer l'autorisation de poursuivre la session d'un utilisateur. Pour plus d'informations, voir [Fin des sessions utilisateur par révocation de jetons](https://docs.aws.amazon.com/cognito/latest/developerguide/token-revocation.html)

L'exemple suivant montre comment vous pouvez créer une politique qui fait référence à certaines réclamations des groupes d'utilisateurs Amazon Cognito associées à un mandant.

```
permit(
     principal, 
     action, 
     resource == ExampleCo::Photo::"VacationPhoto94.jpg" 
)
when { 
     principal["cognito:username"]) == "alice" &&
     principal["custom:department"]) == "Finance"
};
```

L'exemple suivant montre comment créer une politique qui fait référence à un principal qui est un utilisateur d'un groupe d'utilisateurs Cognito. Notez que l'identifiant principal prend la forme de`"<userpool-id>|<sub>"`.

```
permit(
     principal == ExampleCo::User::"us-east-1_example|a1b2c3d4-5678-90ab-cdef-EXAMPLE11111", 
     action, 
     resource == ExampleCo::Photo::"VacationPhoto94.jpg" 
);
```

Les politiques de Cedar relatives aux sources d'identité des groupes d'utilisateurs dans Verified Permissions utilisent une syntaxe spéciale pour les noms de demandes contenant des caractères autres que des caractères alphanumériques et un trait de soulignement ()`_`. Cela inclut les revendications de préfixes du groupe d'utilisateurs qui contiennent un `:` caractère, comme `cognito:username` et`custom:department`. Pour rédiger une condition de politique qui fait référence à la `custom:department` réclamation `cognito:username` ou, écrivez-les respectivement sous la forme `principal["cognito:username"]` et`principal["custom:department"]`.

**Note**  
Si un jeton contient une réclamation avec le `custom:` préfixe `cognito:` ou et un nom de réclamation avec la valeur littérale `cognito` ou`custom`, une demande d'autorisation avec un [IsAuthorizedWithToken](https://docs.aws.amazon.com/verifiedpermissions/latest/apireference/API_IsAuthorizedWithToken.html)échouera avec un. `ValidationException`

Pour plus d'informations sur le mappage des réclamations, consultez[Mappage Amazon Cognito des jetons au schéma](cognito-map-token-to-schema.md). Pour plus d'informations sur l'autorisation des Amazon Cognito utilisateurs, consultez la section [Autorisation avec autorisations vérifiées par Amazon](https://docs.aws.amazon.com/cognito/latest/developerguide/amazon-cognito-authorization-with-avp.html) dans le manuel *Amazon Cognito Developer Guide*.

**Topics**
+ [Création de sources d' Amazon Cognito identité Amazon Verified Permissions](cognito-create.md)
+ [Modification des sources d' Amazon Cognito identité Amazon Verified Permissions](cognito-edit.md)
+ [Mappage Amazon Cognito des jetons au schéma](cognito-map-token-to-schema.md)
+ [Validation du client et du public pour Amazon Cognito](cognito-validation.md)