Utilisation du jeton d'identification - Amazon Cognito

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 du jeton d'identification

Le jeton d'identification est un jeton JSON Web (JWT) qui contient des allégations concernant l'identité de l'utilisateur authentifié, telles que nameemail, etphone_number. Vous pouvez utiliser ces informations d'identité dans votre application. Le jeton d'identification peut aussi servir à authentifier des utilisateurs auprès de vos serveurs de ressources ou applications de serveur. Vous pouvez également utiliser un jeton d'identification en dehors de l'application pour vos API opérations Web. Dans ce cas, vous devez vérifier la signature du jeton d'identification avant de pouvoir approuver les revendications qu'il contient. Consultez Vérification d'un jeton JSON Web.

Vous pouvez définir l'expiration d'un jeton d'identification sur toute valeur comprise entre 5 minutes et 1 jour. Vous pouvez définir cette valeur par client d'application.

Important

Lorsque votre utilisateur se connecte avec l'interface utilisateur hébergée ou un fournisseur d'identité fédérée (IdP), Amazon Cognito définit des cookies de session valides pendant 1 heure. Si vous utilisez l'interface utilisateur hébergée ou la fédération et que vous spécifiez une durée minimale de moins d'une heure pour vos jetons d'accès et d'identification, vos utilisateurs disposent d'une session valide jusqu'à l'expiration du cookie. Si l'utilisateur a des jetons qui expirent pendant la session d'une heure, l'utilisateur peut actualiser ses jetons sans avoir besoin de se réauthentifier.

En-tête de jeton d'identification

L'en-tête contient deux éléments d'information : l'ID de clé (kid) et l'algorithme (alg).

{ "kid" : "1234example=", "alg" : "RS256" }
kid

ID de la clé . Sa valeur indique la clé qui a été utilisée pour sécuriser la signature JSON Web (JWS) du jeton. Vous pouvez consulter la clé de signature de votre groupe d'utilisateurs IDs sur le jwks_uri point de terminaison.

Pour plus d'informations sur le paramètre kid, consultez Paramètre d'en-tête Key identifier (kid).

alg

Algorithme de chiffrement utilisé par Amazon Cognito pour sécuriser le jeton d'accès. Les groupes d'utilisateurs utilisent un algorithme RS256 cryptographique, qui est une RSA signature avec SHA -256.

Pour plus d'informations sur le paramètre alg, consultez Paramètre d'en-tête Algorithme (alg).

Charge utile par défaut du jeton d'identification

Il s'agit d'un exemple de charge utile provenant d'un jeton d'identification. Il contient les demandes sur l'utilisateur authentifié. Pour plus d'informations sur les revendications standard d'OpenID Connect (OIDC), consultez la liste des revendications OIDCstandard. Vous pouvez ajouter des revendications de votre propre design à l'aide d'unDéclencheur Lambda avant génération de jeton.

<header>.{ "sub": "aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee", "cognito:groups": [ "test-group-a", "test-group-b", "test-group-c" ], "email_verified": true, "cognito:preferred_role": "arn:aws:iam::111122223333:role/my-test-role", "iss": "https://cognito-idp.us-west-2.amazonaws.com/us-west-2_example", "cognito:username": "my-test-user", "middle_name": "Jane", "nonce": "abcdefg", "origin_jti": "aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee", "cognito:roles": [ "arn:aws:iam::111122223333:role/my-test-role" ], "aud": "xxxxxxxxxxxxexample", "identities": [ { "userId": "amzn1.account.EXAMPLE", "providerName": "LoginWithAmazon", "providerType": "LoginWithAmazon", "issuer": null, "primary": "true", "dateCreated": "1642699117273" } ], "event_id": "64f513be-32db-42b0-b78e-b02127b4f463", "token_use": "id", "auth_time": 1676312777, "exp": 1676316377, "iat": 1676312777, "jti": "aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee", "email": "my-test-user@example.com" } .<token signature>
sub

Identifiant unique (UUID), ou objet, pour l'utilisateur authentifié. Le nom d'utilisateur n'est peut-être pas unique dans votre groupe d'utilisateurs. Le champ standard sub est le meilleur moyen d'identifier un utilisateur donné.

cognito:groups

Tableau des noms des groupes de groupes d'utilisateurs dont l'utilisateur est membre. Les groupes peuvent être un identifiant que vous présentez à votre application ou ils peuvent générer une demande de IAM rôle préféré à partir d'un pool d'identités.

cognito:preferred_role

Le ARN IAM rôle que vous avez associé au groupe d'utilisateurs le plus prioritaire de votre utilisateur. Pour plus d'informations sur la manière dont votre groupe d'utilisateurs sélectionne la demande de rôle, consultezAffectation de valeurs de priorité à des groupes.

iss

Fournisseur d'identité qui a émis le jeton. Le champ standard a le format suivant :

https://cognito-idp.<Region>.amazonaws.com/<your user pool ID>

cognito:username

Nom d'utilisateur de l'utilisateur dans votre groupe d'utilisateurs.

nonce

La nonce réclamation provient d'un paramètre du même nom que vous pouvez ajouter aux demandes adressées à votre point de authorize terminaison OAuth 2.0. Lorsque vous ajoutez le paramètre, la revendication nonce est incluse dans le jeton d'identification émis par Amazon Cognito, et vous pouvez l'utiliser pour vous protéger contre les attaques de relecture. Si vous ne fournissez pas de valeur nonce dans votre demande, Amazon Cognito génère et valide automatiquement un nonce lorsque vous vous authentifiez via un fournisseur d'identité tiers, puis l'ajoute en tant que réclamation nonce au jeton d'identification. La mise en œuvre de la nonce réclamation dans Amazon Cognito est basée sur OIDC des normes.

origin_jti

Un identifiant de révocation de jeton associé au jeton d'actualisation de votre utilisateur. Amazon Cognito fait référence à la origin_jti réclamation lorsqu'il vérifie si vous avez révoqué le jeton de votre utilisateur lors de l'opération Point de terminaison de révocation ou de l'opération. RevokeTokenAPI Lorsque vous révoquez un jeton, Amazon Cognito invalide tous les jetons d'accès et d'identification ayant la même valeur origin_jti.

cognito:roles

Tableau des noms des IAM rôles associés aux groupes de vos utilisateurs. Un IAM rôle peut être associé à chaque groupe de pool d'utilisateurs. Ce tableau représente tous les IAM rôles des groupes de vos utilisateurs, quelle que soit leur priorité. Pour de plus amples informations, veuillez consulter Ajout de groupes à un groupe d'utilisateurs.

aud

Client d'application du groupe d'utilisateurs qui a authentifié l'utilisateur. Amazon Cognito affiche la même valeur dans le champ standard client_id du jeton d'accès.

identities

Contenu de l'attribut identities de l'utilisateur. L'attribut contient des informations sur chaque profil de fournisseur d'identité tiers que vous avez lié à un utilisateur, soit par une connexion fédérée, soit en ayant lié un utilisateur fédéré à un profil local. Ces informations contiennent le nom de leur fournisseur, l'identifiant unique de leur fournisseur et d'autres métadonnées.

token_use

Objectif prévu du jeton. Dans un jeton d'identification, sa valeur est id.

auth_time

Date et heure d'authentification, au format horaire Unix, auxquelles l'utilisateur a terminé l'authentification.

exp

Date et heure d'expiration, au format horaire Unix, auxquelles le jeton de l'utilisateur expire.

iat

Date et heure, au format horaire Unix, auxquelles Amazon Cognito a émis le jeton de l'utilisateur.

jti

L'identifiant unique duJWT.

Le jeton d'identification peut contenir des revendications OIDC standard définies dans des revendications OIDC standard. Le jeton d'identification peut également contenir des attributs personnalisés que vous définissez dans votre groupe d'utilisateurs. Amazon Cognito écrit des valeurs d'attribut personnalisées dans le jeton d'ID sous forme de chaînes quel que soit le type d'attribut.

Note

Les attributs personnalisés du groupe d'utilisateurs sont toujours préfixés parcustom:.

Signature de jeton d'identité

La signature du jeton d'identification est calculée en fonction de l'en-tête et de la charge utile du JWT jeton. Avant d'accepter les champs standard figurant dans un jeton d'identification reçu par votre application, vérifiez la signature du jeton. Pour plus d'informations, consultez la section Vérification d'un jeton JSON Web. Vérification d'un jeton JSON Web.