Gerenciar respostas de erros - Amazon Cognito

Gerenciar respostas de erros

O Amazon Cognito oferece suporte à personalização de respostas de erro retornadas por grupos de usuários. Respostas de erro personalizadas estão disponíveis para operações relacionadas à autenticação, confirmação e recuperação de senha. Use o PreventUserExistenceErrors de um cliente da aplicação de grupo de usuários para habilitar ou desabilitar erros relacionados à existência do usuário.

Quando você habilita respostas de erro personalizadas, as APIs de autenticação do Amazon Cognito retornarão uma resposta de falha de autenticação genérica. A resposta de erro informa que o nome de usuário ou a senha está incorreta. As APIs de confirmação de conta e recuperação de senha do Amazon Cognito retornarão uma resposta indicando que um código foi enviado para um meio de entrega simulado. A resposta de erro funciona quando o status é ENABLED e o usuário não existe. Abaixo, serão mostrados os comportamentos detalhados das operações do Amazon Cognito quando PreventUserExistenceErrors for definido como ENABLED.

Operações de autenticação do usuário

Você pode usar qualquer método de fluxo de autenticação com as operações a seguir.

  • AdminInitiateAuth

  • AdminRespondToAuthChallenge

  • InitiateAuth

  • RespondToAuthChallenge

Autenticação com base em senha do nome do usuário

Nos fluxos de autenticação para ADMIN_USER_PASSWORD_AUTH e USER_PASSWORD_AUTH, o nome de usuário e a senha retornarão com uma única chamada de InitiateAuth. O Amazon Cognito retorna um erro genérico NotAuthorizedException indicando que o nome de usuário ou a senha está incorreta.

Autenticação baseada em senha remota segura (SRP)

No fluxo de autenticação USER_SRP_AUTH, o Amazon Cognito recebe um nome de usuário e um parâmetro SRP “A” na primeira etapa. Em resposta, o Amazon Cognito retorna o parâmetro SRP “B” e “salt” para o usuário, de acordo com o protocolo SRP. Quando um usuário não é localizado, o Amazon Cognito retorna uma resposta simulada na primeira etapa conforme descrito em RFC 5054. O Amazon Cognito retorna o mesmo “salt” e um ID de usuário interno no formato Universally Unique IDentifier (UUID) para a mesma combinação de nome de usuário e grupo de usuários. Quando a próxima operação de prova de execução de senha RespondToAuthChallenge for executada, o Amazon Cognito retornará um erro genérico NotAuthorizedException indicando que o nome de usuário ou a senha estava incorreta.

nota

Você pode usar UsernamePassword para simular uma resposta genérica se estiver usando aliases baseados em verificação e o formato do nome de usuário imutável não for um UUID.

ForgotPassword

Quando um usuário não é encontrado, está desabilitado ou não tem um mecanismo para recuperar a senha, o Amazon Cognito retorna CodeDeliveryDetails com um meio de entrega simulado para um usuário. O meio de entrega simulado é determinado pelo formato do nome de usuário de entrada e pelas configurações de verificação do grupo de usuários.

ConfirmForgotPassword

O Amazon Cognito retorna o erro CodeMismatchException para usuários que não existem ou estão desabilitados. Se um código não for solicitado ao ser usado o ForgotPassword, o Amazon Cognito retornará o erro ExpiredCodeException.

ResendConfirmationCode

O Amazon Cognito retorna CodeDeliveryDetails para um usuário desabilitado ou um usuário que não existe. O Amazon Cognito envia um código de confirmação para o e-mail ou telefone do usuário existente.

ConfirmSignUp

Retorna ExpiredCodeException se um código tiver expirado. O Amazon Cognito retorna NotAuthorizedException quando um usuário não está autorizado. Se o código não corresponder ao que o servidor espera que o Amazon Cognito retorne CodeMismatchException.

SignUp

A operação SignUp retorna UsernameExistsException quando um nome de usuário já está sendo usado. Para evitar o erro UsernameExistsException para e-mail ou número de telefone durante SignUp, você pode usar um alias baseado em verificação. Para obter mais informações, consulte o Guia de referência da API do Amazon Cognito AliasAttributes. Para obter mais informações sobre aliases, consulte Visão geral de aliases.

Usuários importados

Se PreventUserExistenceErrors estiver habilitado durante a autenticação de usuários importados, um erro genérico NotAuthorizedException é retornado indicando que o nome de usuário ou a senha estava incorreta em vez de retornar PasswordResetRequiredException. Consulte Solicitar que os usuários importados redefinam suas senhas para obter mais informações.

Migrar o acionador do Lambda do usuário

O Amazon Cognito retornará uma resposta simulada para usuários não existentes quando uma resposta vazia tiver sido definida no contexto do evento original pelo acionador do Lambda. Para obter mais informações, consulte Migrar o acionador do Lambda do usuário.

Acionador do Lambda do desafio de autenticação personalizada

Se você usar o Acionador do Lambda do desafio de autenticação personalizada e habilitar respostas de erro, o LambdaChallenge retornará um parâmetro booleano chamado UserNotFound. Em seguida, ele é passado na solicitação de acionadores do Lambda DefineAuthChallenge, VerifyAuthChallenge e CreateAuthChallenge. Você pode usar esse acionador para simular desafios de autenticação personalizados para usuários não existentes. Se você chamar o acionador do Lambda de pré-autenticação para um usuário que não existe, o Amazon Cognito retornará UserNotFound.