Est-il possible de révoquer AWS Cognito IdToken
Obtenu après l'authentification de l'utilisateur avec ses username
et password
?
Dans mon cas, l'accès aux points de terminaison API Gateway
Est limité par Cognito User Pool Authorizer
Qui prend IdToken
comme argument dans request.headers.Authorizer
. Je cherche un moyen de bloquer IdToken
de l'utilisateur actuel.
Dans AWSJavaScriptSDK
est une fonction globalSignOut({AccessToken})
qui révoque le accessToken
: http://docs.aws.Amazon.com/AWSJavaScriptSDK/latest/AWS/CognitoIdentityServiceProvider .html # globalSignOut-property
Est-il possible de révoquer le IdToken
de la même manière ou d'une manière similaire?
Pour les intéressés: J'ai créé un problème sur aws-sdk-js
: https://github.com/aws/aws -sdk-js/issues/1687
Comme @ AllanFly12 a écrit dans mentionné sujet :
Comme IdToken est représenté comme un jeton de clé Web JSON, il est signé avec des paires de clés secrètes ou privées/publiques, ce qui signifie même si vous révoquez l'IdToken, il n'y a aucun moyen de révoquer le public distribué . Et IdToken a une courte durée de vie, il expirera dans un court laps de temps.
Cela a résolu mes doutes.
Vous avez raison. L'appel globalSignOut révoque tous les jetons sauf le jeton id. Le jeton id est un jeton porteur généralement utilisé avec des services en dehors des pools d'utilisateurs. Je fais partie de l'équipe Cognito et nous avons une feuille de route d'intégration sur notre calendrier pour que les services qui consomment des jetons d'identification vérifient pour voir si ces jetons d'identification sont valides et n'acceptent pas ceux invalides.
Les API GlobalSignOut
et AdminUserGlobalSignOut
révoquent tous les jetons pour l'utilisateur.
Ce n'est pas. Même s'il existe une documentation le mentionnant, le délai d'expiration minimum de 60 minutes est inacceptable si vous prenez vraiment au sérieux la sécurité de votre application.
Voici un article décrivant certains défauts d'AWS Cognito: choses que vous devez savoir avant d'utiliser AWS Cognito comme authentificateur