Direkt zum Inhalt

Wie verwende ich die AWS CLI, um Benutzerpasswörter in Amazon Cognito zurückzusetzen?

Lesedauer: 4 Minute
0

Ich möchte die AWS Command Line Interface (AWS CLI) verwenden, um Benutzern zu helfen, ihre Passwörter in Amazon Cognito zurückzusetzen oder zu ändern.

Behebung

Hinweis: Wenn du beim Ausführen von AWS CLI-Befehlen Fehlermeldungen erhältst, findest du weitere Informationen dazu unter Problembehandlung bei der AWS CLI. Stelle außerdem sicher, dass du die neueste Version der AWS CLI verwendest. Ersetze in den folgenden Befehlen VALID-ACCESS-TOKEN, USER-POOL-ID, CLIENT-ID, USERNAME, CONFIRMATION-CODE, NEW-PASSWORD und PREVIOUS-PASSWORD durch deine Werte.

Passwort als Benutzer ändern

Hinweis: Um den Befehl change-password auszuführen, muss der Benutzer über ein Zugriffstoken eines angemeldeten Benutzers verfügen. Das Zugriffstoken muss den Bereich aws.cognito.signin.user.admin enthalten.

Um das Passwort als Benutzer zu ändern, führe den folgenden change-password-Befehl aus:

aws cognito-idp change-password --previous-password PREVIOUS-PASSWORD --proposed-password NEW-PASSWORD --access-token VALID-ACCESS-TOKEN

Benutzerpasswort als Administrator zurücksetzen

Damit ein Administrator das Passwort eines Benutzers zurücksetzen kann, muss der Benutzer eine verifizierte E-Mail-Adresse oder Telefonnummer im Benutzerpool haben. Wenn der Administrator den Befehl admin-reset-user-password ausführt, sendet Amazon Cognito automatisch einen Bestätigungscode an die verifizierte Kontaktmethode des Benutzers.

Führe als Administrator den folgenden admin-reset-user-password-Befehl aus, um das Passwort des Benutzers zurückzusetzen:

aws cognito-idp admin-reset-user-password --user-pool-id USER-POOL-ID --username USERNAME

Hinweis: Wenn der Benutzer versucht, sich anzumelden, nachdem der Administrator das Passwort zurückgesetzt hat, erhält der Benutzer den Fehler „PasswordResetRequiredException“. Anschließend leitet Amazon Cognito den Benutzer zum Ablauf für vergessene Passwörter weiter.

Nachdem der Administrator den Befehl admin-reset-user-password ausgeführt hat, führt der Benutzer den folgenden confirm-forgot-password-Befehl aus, um ein neues Passwort festzulegen:

aws cognito-idp confirm-forgot-password --client-id CLIENT-ID --username USERNAME --confirmation-code CONFIRMATION-CODE --password NEW-PASSWORD

Wenn der Benutzer keine verifizierte E-Mail-Adresse oder Telefonnummer hat, erhält der Administrator die Fehlermeldung „An error occurred (InvalidParameterException) when calling the AdminResetUserPassword operation: Cannot reset password for the user as there is no registered/verified email or phone_number“.

Um dieses Problem zu beheben, führt der Administrator den folgenden admin-update-user-attributes-Befehl aus, um die Kontaktinformationen des Benutzers zu überprüfen und die Attribute email_verified oder phone_number_verified auf true zu setzen:

aws cognito-idp admin-update-user-attributes --user-pool-id USER-POOL-ID --username USERNAME --user-attributes Name="email_verified",Value="true"

Nachdem der Administrator die Kontaktinformationen des Benutzers überprüft hat, kann der Administrator den Befehl admin-reset-user-password erneut ausführen. Nachdem der Benutzer den Bestätigungscode erhalten hat, kann der Benutzer den folgenden confirm-forgot-password-Befehl ausführen, um das neue Passwort festzulegen.

Wenn der Benutzer den Bestätigungscode immer noch nicht erhält, findest du weitere Informationen unter Warum sendet Amazon Cognito den Verifizierungscode nicht per E-Mail oder SMS-Textnachricht mit dem ForgotPassword-API-Aufruf?

Als Administrator ein temporäres oder permanentes Passwort festlegen

Um ein permanentes Passwort für den Benutzer festzulegen, führt der Administrator den folgenden admin-set-user-password-Befehl aus:

aws cognito-idp admin-set-user-password --user-pool-id USER-POOL-ID --username USERNAME --password NEW-PASSWORD --permanent

Anschließend kann sich der Benutzer mit dem neuen permanenten Passwort anmelden.

Um ein temporäres Passwort für den Benutzer festzulegen, führt der Administrator den folgenden admin-set-user-password-Befehl aus:

aws cognito-idp admin-set-user-password --user-pool-id USER-POOL-ID --username USERNAME --password TEMPORARY-NEW-PASSWORD --no-permanent

Nachdem der Administrator ein temporäres Passwort festgelegt hat, ändert sich der Status des Benutzers in FORCE_CHANGE_PASSWORD. Nachdem sich der Benutzer mit dem temporären Passwort angemeldet hat, erhält er die Aufforderung NEW_PASSWORD_REQUIRED.

Hinweis: Die Dauer des Sitzungstokens zum Abschließen der Passwortabfrage ist 3 Minuten lang gültig. Du kannst die Dauer in der Einstellung für die Dauer des Authentifizierungsflusses deines App-Clients ändern.

Anschließend führt der Benutzer den folgenden respond-to-auth-challenge-Befehl aus, um ein neues Passwort festzulegen:

aws cognito-idp respond-to-auth-challenge --client-id CLIENT-ID --challenge-name NEW_PASSWORD_REQUIRED --challenge-responses USERNAME=example_username,NEW_PASSWORD="example_new_password" --session "example_session_token"

Wichtig: Wenn du deinen App-Client mit einem geheimen Client-Schlüssel konfiguriert hast, muss der Benutzer den Parameter geheimer Hash in den Befehl respond-to-auth-challenge einfügen, um auf den Benutzerpool zuzugreifen. Wenn der Benutzer die Fehlermeldung „Unable to verify secret hash for client“ erhält, findest du weitere Informationen unter Wie behebe ich die Fehler „Unable to verify secret hash for client“ in meiner Amazon Cognito-Benutzerpool-API?

AWS OFFICIALAktualisiert vor 4 Monaten