Révocation de jetons
Vous pouvez révoquer un jeton d'actualisation pour un utilisateur à l'aide de l'API AWS. 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.
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 de jetons pour les clients du groupe d'utilisateurs existants à l'aide de l'AWS CLI ou de l'API AWS. Pour ce faire, appelez la commande CLI aws cognito update-user-pool-client
ou l'opération de l'API UpdateUserPoolClient
. Ce faisant, définissez le paramètre EnableTokenRevocation
sur true
.
Lorsque vous créez un client d'un groupe d'utilisateurs à l'aide de l'AWS Management Console, de l'AWS CLI, ou l'API AWS, la révocation de jetons est activée par défaut.
Une fois que vous avez activé la révocation de jetons, de nouvelles revendications sont ajoutées 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.
L'exemple de JSON suivant affiche une demande d'activation de la révocation de jetons à l'aide de l'API CreateUserPoolClient
.
{ "AccessTokenValidity":
123
, "AllowedOAuthFlows": [ "string
" ], "AllowedOAuthFlowsUserPoolClient":true
, "AllowedOAuthScopes": [ "string
" ], "AnalyticsConfiguration": { "ApplicationArn": "string
", "ApplicationId": "string
", "ExternalId": "string
", "RoleArn": "string
", "UserDataShared":false
}, "CallbackURLs": [ "string
" ], "ClientName": "string
", "DefaultRedirectURI": "string
", "ExplicitAuthFlows": [ "string
" ], "GenerateSecret":true
, "IdTokenValidity":123
, "LogoutURLs": [ "string
" ], "PreventUserExistenceErrors": "string
", "ReadAttributes": [ "string
" ], "RefreshTokenValidity":456
, "SupportedIdentityProviders": [ "string
" ], "TokenValidityUnits": { "AccessToken": "string
", "IdToken": "string
", "RefreshToken": "string
" }, "UserPoolId": "string
", "WriteAttributes": [ "string
" ], "EnableTokenRevocation":true
}
Révocation d'un jeton
Vous pouvez révoquer un jeton d'actualisation à l'aide de l'opération de l'API RevokeToken
. Vous pouvez également utiliser la commande CLI aws
cognito-idp revoke-token
pour révoquer des jetons. Enfin, vous pouvez révoquer des jetons en utilisant le 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é.
Pour révoquer un jeton d'actualisation, vous devez utiliser le même identifiant client que celui qui a été utilisé pour obtenir le jeton.