web-dev-qa-db-fra.com

Comment changer le mot de passe de l'utilisateur AWS Cognito?

Je développe une application Web qui utilise le côté backend des services AWS. J'utilise AWS Cognito pour gérer les utilisateurs mais j'ai un problème. Lorsque je crée un nouvel utilisateur (avec un mot de passe temporaire), je dois modifier ce mot de passe manuellement pour le rendre définitif. La seule façon dont je dois changer le mot de passe est d'utiliser AWS Cli, comme expliqué ici:

https://docs.aws.Amazon.com/cli/latest/reference/cognito-idp/change-password.html

Je dois taper dans le shell l'ancien mot de passe, le nouveau mot de passe et le jeton d'accès. Le problème est: où je trouve ce "jeton d'accès"? Je ne sais pas quoi taper dans le Shell! La console AWS Cognito n'aide pas.

11
claudioz

Le aws cognito-idp change-password ne peut être utilisé qu'avec un utilisateur qui peut se connecter, car vous avez besoin du jeton d'accès de aws cognito-idp admin-initiate-auth.

Mais puisque l'utilisateur a un mot de passe temporaire, il sera confronté au NEW_PASSWORD_REQUIRED défi lorsque vous essayez de vous connecter.

Voici comment je l'ai fait:

$ aws cognito-idp admin-create-user  --user-pool-id USERPOOLID  --username [email protected] --desired-delivery-mediums EMAIL --user-attributes Name=email,[email protected]

$ aws cognito-idp initiate-auth --client-id CLIENTID --auth-flow USER_PASSWORD_AUTH --auth-parameters [email protected],PASSWORD="tempPassword"

Maintenant, vous obtenez un NEW_PASSWORD_REQUIRED défi et un jeton de session très long. Utilisez celui-là pour relever le défi:

$ aws cognito-idp admin-respond-to-auth-challenge --user-pool-id USERPOOLID --client-id CLIENTID   --challenge-responses "NEW_PASSWORD=LaLaLaLa1234!!!!,[email protected]" --challenge-name NEW_PASSWORD_REQUIRED --session "YourLongSessionToken"
12
Esben von Buchwald