Révocation de jetons - 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.

Révocation de jetons

Vous pouvez révoquer un jeton d'actualisation pour un utilisateur à l'aide de l' AWS API. Lorsque vous révoquez un jeton d'actualisation, tous les jetons d'accès précédemment émis par celui-ci deviennent non valides. Les autres jetons d'actualisation émis à l'utilisateur ne sont pas affectés.

Note

Les jetons JWT sont autonomes avec une signature et une heure d'expiration assignée lors de la création du jeton. Il n'est pas possible d'utiliser des jetons révoqués avec des appels d'API Amazon Cognito nécessitant un jeton. Cependant, les jetons révoqués restent valides s'ils sont vérifiés à l'aide d'une bibliothèque JWT qui vérifie leur signature et leur expiration.

Vous pouvez révoquer un jeton d'actualisation pour un client de groupe d'utilisateurs pour lequel la révocation de jeton est activée. Lorsque vous créez un client de groupe d'utilisateurs, la révocation de jetons est activée par défaut.

Activer la révocation de jetons

Pour pouvoir révoquer un jetons pour un client de groupe d'utilisateurs existant, vous devez activer la révocation de jetons. Vous pouvez activer la révocation des jetons pour les clients du groupe d'utilisateurs existants à l'aide de l'API AWS CLI ou de l' AWS API. Pour ce faire, appelez la Commande de l'interface de ligne de commande aws cognito-idp describe-user-pool-client ou l'opération de l'API DescribeUserPoolClient pour récupérer les paramètres actuels de votre client d'application. Appelez ensuite la commande de l'interface de ligne de commande aws cognito-idp update-user-pool-client ou l'opération de l'API UpdateUserPoolClient. Incluez les paramètres actuels de votre client d'application et définissez le paramètre EnableTokenRevocation sur true.

Lorsque vous créez un nouveau client de groupe d'utilisateurs à l'aide de l' AWS Management Console API AWS CLI, de la ou de l' AWS API, la révocation des jetons est activée par défaut.

Une fois que vous avez activé la révocation de jetons, de nouveaux champs standard sont ajoutés dans les jetons Web JSON Amazon Cognito. Les revendications origin_jti et jti sont ajoutées aux jetons d'accès et d'identification. Ces revendications augmentent la taille des jetons d'accès et d'identification du client d'application.

Pour créer ou modifier un client d'application avec la révocation des jetons activée, incluez le paramètre suivant dans votre demande CreateUserPoolClientou dans votre demande UpdateUserPoolClientd'API.

"EnableTokenRevocation": true

Révocation d'un jeton

Vous pouvez révoquer un jeton d'actualisation à l'aide d'une demande d'RevokeTokenAPI, par exemple à l'aide de la commande aws cognito-idp revoke-token CLI. Vous pouvez également révoquer des jetons à l'aide du Point de terminaison de révocation. Ce point de terminaison est disponible après l'ajout d'un domaine à votre groupe d'utilisateurs. Vous pouvez utiliser le point de terminaison de révocation sur un domaine hébergé par Amazon Cognito ou sur votre propre domaine personnalisé.

Note

Votre demande de révocation d'un jeton d'actualisation doit inclure l'identifiant client utilisé pour obtenir le jeton.

L'exemple qui suit illustre un exemple de demande d'API RevokeToken.

{ "ClientId": "1example23456789", "ClientSecret": "abcdef123456789ghijklexample", "Token": "eyJjdHkiOiJKV1QiEXAMPLE" }

Voici un exemple de demande cURL adressée au point de terminaison /oauth2/revoke d'un groupe d'utilisateurs avec un domaine personnalisé.

curl --location 'auth.mydomain.com/oauth2/revoke' \ --header 'Content-Type: application/x-www-form-urlencoded' \ --header 'Authorization: Basic Base64Encode(client_id:client_secret)' \ --data-urlencode 'token=abcdef123456789ghijklexample' \ --data-urlencode 'client_id=1example23456789'

L'opération RevokeToken et le point de terminaison /oauth2/revoke ne nécessitent aucune autorisation supplémentaire, sauf si votre client d'application possède un secret client.