En utilisant AWS re:Post, vous acceptez les AWS re:Post Conditions d’utilisation

Comment récupérer un mot de passe utilisateur dans Amazon Cognito ?

Lecture de 3 minute(s)
0

Je souhaite récupérer le mot de passe d'un utilisateur dans Amazon Cognito.

Résolution

Il existe deux méthodes pour récupérer le mot de passe d'un utilisateur dans Amazon Cognito :

  • Avec un e-mail ou un numéro de téléphone vérifié.
  • Avec un mot de passe utilisateur via l'administrateur.

Vérification par e-mail ou numéro de téléphone

Vous pouvez utiliser la commande d'API ForgotPassword pour récupérer un mot de passe utilisateur. La commande d'API ForgotPassword envoie un code de récupération à un e-mail ou un numéro de téléphone vérifié. Le code de récupération est valide pendant une heure. Utilisez ensuite la commande d'API ConfirmForgotPassword pour saisir un code de confirmation qui réinitialise le mot de passe.

Remarque : en cas d'erreurs lors de l'exécution de commandes depuis l'interface de la ligne de commande AWS (AWS CLI), vérifiez que vous utilisez la version la plus récente d'AWS CLI.

Commandes d'AWS CLI :

ForgotPassword

aws cognito-idp forgot-password --client-id 38fjsnc484p94kpqsnet7mpld0 --username jane@example.com

Sortie :

{
  "CodeDeliveryDetails": {
    "Destination": "j***@e***.com",
    "DeliveryMedium": "EMAIL",
    "AttributeName": "email"
  }
}

ConfirmForgotPassword

aws cognito-idp confirm-forgot-password --client-id 3n4b5urk1ft4fl3mg5e62d9ado --username=diego@example.com --password PASSWORD --confirmation-code CONF_CODE

Remarque : vous devez transmettre --secret-hash dans la commande CLI si vous répondez aux deux exigences suivantes :

  • Vos commandes AWS CLI possèdent le paramètre --client-id.
  • Le client d'application est configuré avec un secret.

Pour calculer le hachage secret d'un client d'application, reportez-vous à la section [Comment résoudre les erreurs « Impossible de vérifier le hachage secret pour le client

» depuis l'API de mon groupe d'utilisateurs Amazon Cognito ?](https://repost.aws/fr/knowledge-center/cognito-unable-to-verify-secret-hash)

Réinitialisation par l'administrateur

Remarque : si vous n'êtes pas l'administrateur, prenez contact avec lui pour effectuer les actions suivantes.

Lorsque vous appelez la commande d'API AdminResetUserPassword, le mot de passe actuel n'est plus valide et vous devez le modifier. Si un utilisateur essaie de se connecter après l'appel de la commande API, l'application effectue les opérations suivantes :

  • Récupère PasswordResetRequiredException.
  • Invite l'utilisateur à réinitialiser le mot de passe à l'aide du flux de mot de passe oublié.

Appeler l'API entraîne également l'envoi d'un message à l'utilisateur comprenant un code qui lui permet de modifier son mot de passe si :

  • La vérification par téléphone a été configurée dans le groupe d'utilisateurs, et
  • S'il existe un numéro de téléphone ou un e-mail vérifié pour l'utilisateur.

Commandes d'AWS CLI :

AdminResetUserPassword

aws cognito-idp admin-reset-user-password --user-pool-id us-west-2_aaaaaaaaa --username diego@example.com

ConfirmForgotPassword

aws cognito-idp confirm-forgot-password --client-id 3n4b5urk1ft4fl3mg5e62d9ado --username diego@example.com --password PASSWORD --confirmation-code CONF_CODE

AdminSetUserPassword

En tant qu'administrateur, vous pouvez également utiliser la commande d'API AdminSetUserPassword pour appeler le mot de passe de l'utilisateur dans un groupe d'utilisateurs. Le mot de passe peut être temporaire ou permanent. S'il est temporaire, le statut de l'utilisateur passe à FORCE_CHANGE_PASSWORD. Lorsque vous vous connectez, la réponse InitiateAuth/AdminInitiateAuth contient le défi NEW_PASSWORD_REQUIRED. Si vous ne vous connectez pas avant son expiration, vous ne pouvez pas vous connecter et vous devez réinitialiser le mot de passe. Une fois que vous avez défini un nouveau mot de passe, ou si le mot de passe est permanent, le statut de l'utilisateur est défini sur CONFIRMED (CONFIRMÉ).

aws cognito-idp admin-set-user-password --user-pool-id us-west-2_aaaaaaaaa --username diego@example.com --password Hello@123 --permanent

AWS OFFICIEL
AWS OFFICIELA mis à jour il y a 2 ans