Como soluciono mensagens de erro de MFA no meu grupo de usuários do Amazon Cognito?
Eu recebo mensagens de erro quando configuro a autenticação multifator (MFA) no meu grupo de usuários do Amazon Cognito.
Resolução
Solucionar erros de MFA em SMS
Erro "InvalidSmsRoleAccessPolicyException"
Esse erro ocorre quando o perfil do AWS Identity and Access Management (AWS IAM) não tem permissão para usar o Amazon SNS para publicar mensagens de texto SMS.
Para solucionar esse problema, conclua as etapas a seguir para adicionar a permissão sns:Publish ao perfil do IAM:
- Abra o console do Amazon Cognito.
- No painel de navegação, selecione Grupos de usuários.
- Selecione seu grupo de usuários.
- No painel de navegação, em Autenticação, clique em Métodos de autenticação.
- Na seção SMS, anote o nome do ARN do perfil do IAM.
- Abra o console do IAM.
- No painel de navegação, selecione Perfis.
- Na barra de pesquisa, insira o nome do seu perfil do IAM e selecione seu perfil do IAM.
- Na seção Políticas de permissão, selecione a política anexada o perfil do IAM.
- Na página Detalhes da política, selecione Editar para adicionar a permissão sns:publish.
- Selecione Avançar.
- Clique em Salvar alterações.
- Verifique se uma política de controle de serviços (SCP) não bloqueia a ação sns:Publish.
Erro "InvalidSmsRoleTrustRelationshipException"
Esse erro ocorre quando o perfil do IAM não tem uma relação de confiança que permite que o Amazon Cognito assuma o perfil. Isso acontece quando o cognito-idp.amazonaws.com não é confiável ou o ID externo na política de confiança do perfil não corresponde ao que está na configuração de SMS do grupo de usuários.
Para solucionar esse problema, configure corretamente a política de confiança para o perfil do IAM. Para obter instruções, consulte Prepare uma função do IAM que o Amazon Cognito possa usar para enviar mensagens SMS com AWS End User Messaging SMS.
Erro "InvalidParameterException"
Esse erro ocorre quando a solicitação da API envia um parâmetro inválido para o Amazon Cognito. Para solucionar esse problema, especifique todos os valores necessários no parâmetro SmsMfaConfiguration da API SetUserPoolMfaConfig.
Solucionar erros de MFA do TOTP
Requisitos:
- Adicione MFA ao seu grupo de usuários antes de configurar o token de software de senha de uso único com marcação temporal (TOTP).
- Se o Amazon Cognito não autenticou seus usuários, eles devem tentar entrar na sua aplicação antes que você possa associar os tokens TOTP a eles.
Observação: provedores de identidade (IdPs) externos gerenciam MFA para usuários federados. O Amazon Cognito não solicita MFA durante a federação de usuários.
Erro "NotAuthorizedException: Access token does not have required scopes"
Esse erro ocorre quando o token de acesso não inclui o escopo aws.cognito.signin.user.admin necessário para chamar a API AssociateSoftwareToken. Quando um usuário usa a API InitiateAuth para fazer login, a API InitiateAuth inclui automaticamente esse escopo no token de acesso.
No entanto, quando um usuário usa a página de login gerenciada para fazer login, verifique se o token de acesso inclui o escopo aws.cognito.signin.user.admin. Para verificar se o token inclui o escopo aws.cognito.signin.user.admin, decodifique a carga útil do token de acesso com Base64. Para obter mais informações, consulte Confirmar a estrutura do JWT.
Se o token não incluir o escopo aws.cognito.signin.user.admin, conclua as etapas a seguir para adicioná-lo:
- Abra o console do Amazon Cognito.
- No painel de navegação, selecione Grupos de usuários.
- Selecione o grupo de usuários que você deseja modificar.
- No painel de navegação, em Aplicações, selecione Clientes de aplicações.
- Selecione o cliente de aplicação que você deseja modificar.
- Clique na guia Páginas de login e, em seguida, selecione Editar.
- Na lista suspensa escopos do OpenID Connect, selecione aws.cognito.signin.user.admin.
- Clique em Salvar alterações.
Erro "NotAuthorizedException: Invalid session for the user, session can only be used once"
Esse erro ocorre quando um usuário tenta usar a reutilização de uma sessão. Se os usuários receberem esse erro no meio de um fluxo de autenticação com MFA do TOTP, eles deverão recomeçar o processo de autenticação desde o início. Para recomeçar a autenticação, use a API InitiateAuth ou a API AdminInitiateAuth.
Erro "NotAuthorizedException: Invalid session for the user, session is expired"
Esse erro ocorre quando a sessão expira. Por padrão, as sessões expiram após 3 minutos.
Para solucionar esse problema, aumente a duração do fluxo da sessão de autenticação no seu cliente de aplicação. É possível aumentar a duração em até 15 minutos.
Erro "CodeMismatchException: Invalid code or auth state for the user"
Esse erro ocorre quando o código TOTP do usuário não é válido, o estado do usuário não suporta a chamada de API ou o código TOTP expirou. Por exemplo, um usuário chama a API RespondToAuthChallenge com um desafio MFA_SETUP e não configurou a MFA do TOTP.
Para solucionar esse problema, realize as etapas a seguir:
- Configure a MFA do TOTP para o usuário.
- Chame a API RespondToAuthChallenge com o desafio MFA_SETUP.
- Verifique se as configurações de hora do dispositivo do usuário correspondem à hora atual para gerar códigos TOTP válidos.
Erro "InvalidParameterException: User does not have delivery config set to turn on SOFTWARE_TOKEN_MFA"
Esse erro ocorre quando você não configurou a MFA do TOTP para seus usuários. Para solucionar o problema, configure a MFA do TOTP antes de chamar a API SetUserMFAPreference ou AdminSetUserMFAPreference.
Erro "SoftwareTokenMFANotFoundException: Software Token MFA has not been enabled by the userPool"
Esse erro ocorre porque você não configurou a MFA do TOTP em seu grupo de usuários. Para solucionar o erro, configure a MFA do TOTP.
Erro "NotAuthorizedException: Invalid session for the use"
Esse erro ocorre pelos seguintes motivos:
- Uma chamada de API inclui uma string de sessão incorreta.
- As chamadas de API não ocorrem na sequência correta.
Para solucionar esse problema, configure as chamadas de API na sequência correta. Por exemplo, para receber a string da sessão na resposta, chame primeiro a API InitiateAuth. Para evitar um erro, verifique se a próxima chamada de API usa a string de sessão retornada em seu parâmetro de solicitação.
Erro "EnableSoftwareTokenMFAException: Code mismatch"
Esse erro ocorre quando o código TOTP que o usuário envia não corresponde ao que o Amazon Cognito espera durante a configuração da MFA do TOTP.
Para solucionar esse problema, execute as seguintes ações:
- Recupere o código secreto da API AssociateSoftwareToken.
- Salve o código secreto na aplicação autenticadora.
- Envie um código TOTP atualizado.
- Use o código secreto que você recuperou da API AssociateSoftwareToken para gerar um código QR. Em seguida, use o exemplo de código a seguir para configurar sua aplicação autenticadora.
Exemplo de código Python para gerar um código QR a partir do código secreto:
import pyotp from qrcode.main import QRCode secret_key = "secret-key-retrieved-from-associate-software-token-api" totp = pyotp.TOTP(secret_key) provisioning_uri = totp.provisioning_uri() qr = QRCode() qr.add_data(provisioning_uri) qr.make() qr.print_ascii()
Solucionar erros de MFA de e-mail
Antes de definir o e-mail como um fator de MFA, você deve configurar o Amazon Simple Email Service (Amazon SES) em seu grupo de usuários para enviar mensagens de e-mail aos seus usuários.
Quando você ativa a MFA e escolhe o e-mail como o segundo fator, o Amazon Cognito envia mensagens de e-mail para um endereço de e-mail não verificado. Depois que os usuários concluem a verificação de MFA por e-mail, o Amazon Cognito define o atributo phone_number_verified como verdadeiro.
Erro "InvalidParameterException: Cannot set EmailMfaConfiguration when user pool EmailConfiguration contains an EmailSendingAccount of COGNITO_DEFAULT"
Esse erro ocorre quando você usa a configuração padrão de e-mail. Para solucionar esse problema, defina as configurações de e-mail do Amazon SES para seu grupo de usuários.
Erro "InvalidParameterException: Cannot set EmailMfaConfiguration when user pool AccountRecoverySetting is not set or contains only verified_email in RecoveryMechanisms"
Esse erro ocorre quando você usa somente e-mail como método de recuperação da conta do usuário. Não é possível usar o mesmo fator na MFA e na recuperação de conta. Para solucionar esse problema, escolha um método de recuperação de conta diferente em vez do e-mail. Para obter instruções, consulte Configurar redefinição e recuperação de senha.
Erro “FeatureUnavailableInTierException”
Esse erro ocorre quando seu grupo de usuários tem o plano de atributos Lite. Somente os planos Essentials e Plus incluem MFA por e-mail. Para solucionar esse problema, mude o plano do seu grupo de usuários para o Essentials ou Plus.
Informações relacionadas
- Tags
- Amazon Cognito
- Idioma
- Português

Conteúdo relevante
- feita há 9 meses
AWS OFICIALAtualizada há 2 meses