Utilisation des sources d'identité Amazon Cognito - Amazon Verified Permissions

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.

Utilisation des sources d'identité Amazon Cognito

Verified Permissions travaille en étroite collaboration avec les groupes d'utilisateurs d'Amazon Cognito. Amazon Cognito JWTs possède 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 exempleMyCorp::User.

  • Le type d'entité de groupe principal que vous souhaitez associer à votre source d'identité, par exempleMyCorp::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 peut inclure diverses 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

  2. Attributs utilisateur personnalisés avec custom: prefix

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

  4. 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, dansAssocier les jetons Amazon Cognito au schéma.

Important

Bien que vous puissiez révoquer les jetons Amazon Cognito avant leur expiration JWTs , ils 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 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

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 etcustom: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"] etprincipal["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 oucustom, une demande d'autorisation avec un IsAuthorizedWithTokenéchouera avec un. ValidationException

Pour plus d'informations sur le mappage des réclamations, consultezAssocier les jetons Amazon Cognito au schéma. Pour plus d'informations sur l'autorisation des utilisateurs d'Amazon Cognito, consultez la section Autorisation avec autorisations vérifiées par Amazon dans le guide du développeur Amazon Cognito.