web-dev-qa-db-fra.com

Est-il possible de révoquer AWS Cognito IdToken?

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

10
kmnowak

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.

2
Krzysztof Nowak

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.

3
Ionut Trestian

Les API GlobalSignOut et AdminUserGlobalSignOut révoquent tous les jetons pour l'utilisateur.

  • Le jeton d'actualisation de l'utilisateur ne peut pas être utilisé pour obtenir de nouveaux jetons pour l'utilisateur.
  • Le jeton d'accès de l'utilisateur ne peut pas être utilisé contre le service de pools d'utilisateurs.
  • L'utilisateur doit se réauthentifier pour obtenir de nouveaux jetons.

Voir Révocation de tous les jetons pour un utilisateur .

1
Khalid T.

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

0
Cleriston