Salta al contenuto

Come posso utilizzare AWS CLI per reimpostare le password degli utenti in Amazon Cognito?

4 minuti di lettura
0

Desidero utilizzare l'Interfaccia della linea di comando AWS (AWS CLI) per aiutare gli utenti a reimpostare o modificare le proprie password in Amazon Cognito.

Risoluzione

Nota: se ricevi errori quando esegui i comandi dell'Interfaccia della linea di comando AWS (AWS CLI), consulta Risoluzione degli errori per AWS CLI. Inoltre, assicurati di utilizzare la versione più recente di AWS CLI. Nei comandi seguenti, sostituisci VALID-ACCESS-TOKEN, USER-POOL-ID, CLIENT-ID, USERNAME, CONFIRMATION-CODE, NEW-PASSWORD e PREVIOUS-PASSWORD con i tuoi valori.

Cambia la password come utente

Nota: per eseguire il comando change-password, l'utente deve disporre di un token di accesso dell'utente che ha effettuato l'accesso. Il token di accesso deve includere l'ambito aws.cognito.signin.user.admin.

Per modificare la password come utente, esegui questo comando change-password:

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

Reimposta la password di un utente come amministratore

Affinché un amministratore possa reimpostare la password di un utente, l'utente deve avere un'e-mail o un numero di telefono verificato nel pool di utenti. Quando l'amministratore esegue il comando admin-reset-user-password, Amazon Cognito invia automaticamente un codice di conferma al metodo di contatto verificato dell'utente.

Esegui questo comando admin-reset-user-password come amministratore per reimpostare la password dell'utente:

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

Nota: quando l'utente tenta di accedere dopo che l'amministratore ha reimpostato la password, riceve l'errore "PasswordResetRequiredException". Quindi Amazon Cognito reindirizza l'utente al flusso password dimenticata.

Dopo che l'amministratore ha eseguito il comando ** admin-reset-user-password**, l'utente esegue questo comando confirm-forgot-password per impostare una nuova password:

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

Se l'utente non dispone di un indirizzo e-mail o di un numero di telefono verificato, l'amministratore riceve l'errore "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".

Per risolvere il problema, l'amministratore esegue questo comando admin-update-user-attributes al fine di verificare le informazioni di contatto dell'utente e impostare gli attributi email_verified o phone_number_verified su true:

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

Dopo aver verificato le informazioni di contatto dell'utente, l'amministratore può eseguire nuovamente il comando admin-reset-user-password. Una volta ricevuto il codice di conferma, l'utente può eseguire il comando confirm-forgot-password per impostare la nuova password.

Se l'utente continua a non ricevere il codice di conferma, consulta Perché Amazon Cognito non invia il codice di verifica tramite e-mail o SMS a seguito della chiamata API ForgotPassword?

Imposta una password permanente o temporanea come amministratore

Per impostare una password permanente per l'utente, l'amministratore esegue questo comando admin-set-user-password:

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

Quindi l'utente può accedere con la nuova password permanente.

Per impostare una password temporanea per l'utente, l'amministratore esegue questo comando admin-set-user-password:

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

Dopo che l'amministratore ha impostato una password temporanea, lo stato dell'utente cambia in FORCE_CHANGE_PASSWORD. Una volta effettuato 'accesso con la password temporanea, l'utente riceve una richiesta NEW_PASSWORD_REQUIRED.

Nota: il token di sessione per completare la richiesta della password ha una durata di 3 minuti. Puoi modificare la durata nell'impostazione della durata del flusso di autenticazione del client di app.

Quindi l'utente esegue questo comando respond-to-auth-challenge per impostare una nuova password:

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"

Importante: se hai configurato il client di app con un segreto del client, l'utente deve includere il parametro secret hash nel comando respond-to-auth-challenge per accedere al pool di utenti. Se l'utente riceve l'errore "Unable to verify secret hash for client", consulta Come posso risolvere gli errori "Unable to verify secret hash for client" ricevuti dall'API dei pool di utenti in Amazon Cognito?

AWS UFFICIALEAggiornata 3 mesi fa