Comment révoquer les jetons d'actualisation émis par Amazon Cognito ?

Lecture de 4 minute(s)
0

Je souhaite utiliser des API ou des points de terminaison pour révoquer les jetons d'actualisation générés par Amazon Cognito.

Résolution

Vous pouvez utiliser des API et des points de terminaison pour révoquer les jetons d'actualisation générés par Amazon Cognito.

**Remarque :**Vous pouvez révoquer les jetons d'actualisation en temps réel afin que ces jetons d'actualisation ne puissent pas générer de jetons d'accès.

Conditions préalables à la révocation des jetons d'actualisation

Activez la révocation des jetons pour un client d'application afin de révoquer les jetons d'actualisation émis par ce client d'application. Le paramètre EnableTokenRevocation est activé par défaut lorsque vous créez un nouveau client du groupe d'utilisateurs Amazon Cognito. Avant de pouvoir révoquer un jeton pour un client de groupe d'utilisateurs existant, activez la révocation du jeton dans l'opération d'API UpdateUserPoolClient. Incluez les paramètres actuels de votre client d'application et définissez le paramètre EnableTokenRevocation sur true.

Lorsque vous activez les paramètres de révocation des jetons, les affirmations origin_jti et jti sont ajoutées aux jetons d'accès et d'identification.

  • L’affirmationjti fournit un identifiant unique pour les jetons Web JSON (JWT).
  • L’affirmation jti est utilisée pour empêcher la rediffusion des JWT.
  • La valeur jti est une chaîne sensible à la casse.
  • Lorsque le flux d'authentification REFRESH_TOKEN est utilisé pour générer de nouveaux jetons d'accès et d'identification, les nouveaux jetons d'accès et d'identification ont la même affirmation origin_jti. Les affirmations jti sont différentes.

Pour plus d'informations, consultez Activer la révocation des jetons et Utilisation de jetons avec des groupes d'utilisateurs.

Résultats attendus de la révocation des jetons d'actualisation

Pour plus d'informations sur ce à quoi vous pouvez vous attendre lorsque vous révoquez des jetons d'actualisation, y compris l'effet sur les jetons d'accès et les JWT, consultez Révoquer des jetons et RevokeToken.

**Remarque :**Pour plus d'informations sur les JWT, consultez la section Vérification d'un jeton Web JSON.

Utilisation de l'appel d'API RevokeToken pour révoquer les jetons d'actualisation

Le jeton d'actualisation à révoquer, l'identifiant client de l'application et le secret client sont des paramètres requis pour appeler l'API RevokeToken.

**Remarque :**Le secret client n'est requis que lorsque l'identifiant client possède un secret.

Syntaxe de la demande :

{
  "ClientId": "string",
  "ClientSecret": "string",
  "Token": "string"
}

Exemple de commande de l’Interface de la ligne de commande AWS (AWS CLI) :

**Remarque :**Remplacez le jeton <value> par les informations de votre jeton. Remplacez le paramètre client-id <value> par votre identifiant client. Remplacez le paramètre client-secret <value> par le secret de votre client d'application.

aws cognito-idp revoke-token
--token <value>
--client-id <value>
--client-secret <value>

**Remarque :**Si vous recevez des erreurs lors de l'exécution des commandes de l'AWS CLI, assurez-vous que vous utilisez la version la plus récente de l'AWS CLI.

Exemple de commande curl :

**Remarque :**Remplacez <region> par votre région AWS. Remplacez <refresh token> par les informations de votre jeton. Remplacez <client-id> par votre identifiant client.

awscurl \
-v \
-X POST \
--service cognito-idp \
--region <region> \
-H 'X-Amz-Target: AWSCognitoIdentityProviderService.RevokeToken' \
-H 'Content-Type: application/x-amz-json-1.1' \
-d '{"ClientId": "<client-id>", "Token": "<refresh-token>"}' \
https://cognito-idp.<region>.amazonaws.com

Utilisation du point de terminaison de révocation pour révoquer les jetons d'actualisation

Le point de terminaison /oauth2/revoke est disponible une fois que vous avez ajouté un domaine à votre groupe d'utilisateurs. Une fois que le terminal a révoqué les jetons, vous ne pouvez plus utiliser les jetons révoqués pour accéder aux API authentifiées par les jetons Amazon Cognito. Pour plus d'informations sur le point de terminaison /oauth2/revoke, y compris sur les paramètres de demande, consultez Révoquer le point de terminaison.

Exemple 1 : Révoquer le jeton avec un client d'application sans secret d'application :

**Remarque :**Remplacez <region> par votre région AWS. Remplacez <refresh token> avec les informations de votre jeton d'actualisation. Remplacez <client-id> par votre identifiant client.

POST /oauth2/revoke HTTP/1.2
    Host: https://mydomain.auth.<region>.amazoncognito.com
    Accept: application/json
    Content-Type: application/x-www-form-urlencoded
    token=<refresh token>&
    client_id=<client-id>

Exemple 2 : Révoquer le jeton avec un client d'application doté d'un secret d'application :

POST /oauth2/revoke HTTP/1.2
    Host: https://mydomain.auth.<region>.amazoncognito.com
    Accept: application/json
    Content-Type: application/x-www-form-urlencoded
    Authorization: Basic czZCaGRSa3F0MzpnWDFmQmF0M2JW
    token=<refresh token>

Pour en savoir plus sur la configuration d'un en-tête d'autorisation, consultez la section Comment résoudre les erreurs « Impossible de vérifier le hachage secret pour le client » <client-id>associées à mon groupe d'utilisateurs ?

Erreurs liées au point de terminaison

Pour plus d'informations sur les erreurs relatives au point de terminaison, consultez la section Révoquer le point de terminaison et consultez les informations figurant dans la section Réponse à une erreur de révocation.

AWS OFFICIEL
AWS OFFICIELA mis à jour il y a un an