Ir para o conteúdo

Como uso a AWS CLI para redefinir senhas de usuários no Amazon Cognito?

4 minuto de leitura
0

Quero usar a AWS Command Line Interface (AWS CLI) para ajudar os usuários a redefinir ou alterar suas senhas no Amazon Cognito.

Resolução

Observação: se você receber erros ao executar comandos da AWS CLI, consulte Solução de problemas da AWS CLI. Além disso, verifique se você está usando a versão mais recente da AWS CLI. Nos comandos a seguir, substitua VALID-ACCESS-TOKEN, USER-POOL-ID, CLIENT-ID, USERNAME, CONFIRMATION-CODE, NEW-PASSWORD e PREVIOUS-PASSWORD por seus valores.

Alterar a senha como usuário

Observação: para executar o comando change-password, o usuário deve ter um token de acesso do usuário conectado. O token de acesso deve incluir o escopo aws.cognito.signin.user.admin.

Para alterar a senha como usuário, execute o seguinte comando change-password:

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

Redefinir uma senha de usuário como administrador

Para que um administrador redefina a senha de um usuário, este deve ter um e-mail ou número de telefone verificado no grupo de usuários. Quando o administrador executa o comando admin-reset-user-password, o Amazon Cognito envia automaticamente um código de confirmação para o método de contato verificado do usuário.

Como administrador, execute o seguinte comando admin-reset-user-password para redefinir a senha do usuário:

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

Observação: quando o usuário tenta fazer login após o administrador redefinir a senha, ele recebe o erro "PasswordResetRequiredException". Em seguida, o Amazon Cognito redireciona o usuário para o fluxo de esquecimento de senha.

Depois que o administrador executa o comando admin-reset-user-password, o usuário executa o seguinte comando confirm-forgot-password para definir uma nova senha:

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

Se o usuário não tiver um endereço de e-mail ou número de telefone verificado, o administrador receberá o erro "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".

Para resolver esse problema, o administrador executa o seguinte comando admin-update-user-attributes para verificar as informações de contato do usuário e definir os atributos email_verified ou phone_number_verified como verdadeiro:

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

Depois que o administrador verificar as informações de contato do usuário, ele poderá executar o comando admin-reset-user-password novamente. Depois que o usuário receber o código de confirmação, ele poderá executar o comando confirm-forgot-password para definir a nova senha.

Se o usuário ainda não receber o código de confirmação, consulte, Por que o Amazon Cognito não envia o código de verificação por e-mail ou mensagem de texto SMS com a chamada de API ForgotPassword?

Definir uma senha permanente ou temporária como administrador

Para definir uma senha permanente para o usuário, o administrador executa o seguinte comando admin-set-user-password:

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

Em seguida, o usuário pode fazer login com a nova senha permanente.

Para definir uma senha temporária para o usuário, o administrador executa o seguinte 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

Depois que o administrador define uma senha temporária, o status do usuário muda para FORCE_CHANGE_PASSWORD. Depois que o usuário faz login com a senha temporária, ele recebe um desafio NEW_PASSWORD_REQUIRED.

Observação: a duração do token de sessão para concluir o desafio de senha é válida por 3 minutos. É possível modificar a duração na configuração de duração do fluxo de autenticação do cliente de aplicação.

Em seguida, o usuário executa o seguinte comando respond-to-auth-challenge para definir uma nova senha:

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 você configurou seu cliente de aplicação com um segredo de cliente, o usuário deverá incluir o parâmetro secret hash no comando respond-to-auth-challenge para acessar o grupo de usuários. Se o usuário receber o erro "Unable to verify secret hash for client", consulte Como soluciono erros “Não foi possível verificar o hash de segredo do cliente” da minha API de grupos de usuários do Amazon Cognito?

AWS OFICIALAtualizada há 5 meses