As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.
Solucionar problemas do Amazon Cognito
Este capítulo fornece soluções para problemas comuns que você pode encontrar ao trabalhar com o Amazon Cognito. As implementações do Amazon Cognito podem enfrentar vários desafios em fluxos de autenticação, configurações de grupos de usuários e configurações de federação de identidades. Se estiver desenvolvendo uma nova aplicação ou mantendo uma existente, este guia de solução de problemas ajudará você a identificar e resolver problemas comuns rapidamente.
Erros de configuração de domínios personalizados
Ao configurar nomes de domínios personalizados no Amazon Cognito, você poderá receber mensagens de erro. Os erros comuns incluem problemas de validação, problemas de certificado ou conflitos de domínio.
Custom domain is not a valid
subdomain
Esse erro indica um problema com a resolução de DNS para o domínio principal. O Amazon Cognito não é compatível com domínios de primeiro nível e exige que o domínio principal tenha um registro DNS A para validação.
- Problema
-
Esse erro indica um problema com a resolução de DNS para o domínio principal. O Amazon Cognito não é compatível com domínios de primeiro nível e exige que o domínio principal tenha um registro DNS A para validação.
- Solução
-
-
Criar um registro A para o domínio principal: você deve criar um registro A na configuração de DNS para o domínio principal do seu domínio personalizado.
-
Exemplo: se seu domínio personalizado for
auth.xyz.yourdomain.com, o domínio principal seráxyz.yourdomain.com. Se você quiser configurarxyz.yourdomain.comcomo um domínio personalizado, o principal seráyourdomain.com. -
O domínio principal deverá apontar para um endereço IP válido. Se não apontar para um endereço IP real, você poderá usar um endereço IP fictício, como
8.8.8.8.
-
-
Verificar a propagação de DNS (opcional, mas recomendado): para garantir que seu provedor de DNS tenha propagado a alteração, você pode executar um comando
dig.-
Se estiver usando
auth.xyz.yourdomain.comcomo domínio personalizado:dig A xyz.yourdomain.com +short -
Se estiver usando
xyz.yourdomain.comcomo domínio personalizado:dig A yourdomain.com +short -
O comando deverá retornar o endereço IP que você configurou. Se não retornar, espere até que a alteração tenha se propagado totalmente.
-
-
Remover o registro A do domínio principal: após criar com sucesso o domínio personalizado no Amazon Cognito, você poderá remover o registro A criado para o domínio principal, caso seja fictício.
-
Para obter mais informações, consulte Usar o próprio domínio para a IU hospedada.
Domain already associated
with another user pool
Os nomes de domínio personalizados devem ser exclusivos em todas Contas da AWS as regiões.
- Problema
-
Os nomes de domínio personalizados devem ser exclusivos em todas Contas da AWS as regiões.
- Solução
-
-
Para usar o nome de domínio para um novo grupo de usuários, é necessário excluir o domínio personalizado do grupo de usuários ao qual ele está associado atualmente.
-
Aguardar após a exclusão: leva algum tempo para o domínio personalizado ser totalmente excluído do primeiro grupo de usuários. Criar um novo domínio personalizado com o mesmo nome imediatamente após a exclusão ainda pode resultar nesse erro. Aguarde alguns minutos antes de tentar novamente.
-
One or more of the CNAMEs that
you provided are already associated with a different resource
Quando você cria um domínio personalizado, o Amazon Cognito cria uma distribuição AWS gerenciada pela Amazon CloudFront . Um nome de domínio só pode ser usado com uma CloudFront distribuição da Amazon. Esse erro ocorre se o nome de domínio já estiver em uso como um domínio alternativo para outra CloudFront distribuição da Amazon.
- Problema
-
Quando você cria um domínio personalizado, o Amazon Cognito cria uma distribuição AWS gerenciada pela Amazon CloudFront. Um nome de domínio só pode ser usado com uma CloudFront distribuição da Amazon. Esse erro ocorre se o nome de domínio já estiver em uso como um domínio alternativo para outra CloudFront distribuição da Amazon.
- Solução
-
-
Opção 1: use um nome de domínio diferente para seu domínio personalizado do Amazon Cognito.
-
Opção 2: Se você usar o nome de domínio do Amazon Cognito, não o use com outra distribuição da Amazon CloudFront .
-
The specified SSL certificate
doesn't exist
O Amazon Cognito usa a Amazon CloudFront, que exige que o certificado AWS Certificate Manager (ACM) esteja no us-east-1 (Norte da Virgínia) Região da AWS, independentemente da região do grupo de usuários.
- Problema
-
O Amazon Cognito usa a Amazon CloudFront, que exige que o certificado AWS Certificate Manager (ACM) esteja no
us-east-1(Norte da Virgínia) Região da AWS, independentemente da região do grupo de usuários. - Solução
-
-
Verificar a região do certificado: confirme se o certificado do ACM está na região
us-east-1. -
Verificar a validade do certificado: verifique se o certificado selecionado não está expirado.
-
Certificados importados: se você importou o certificado para o ACM, verifique se:
-
Ele foi emitido por uma autoridade de certificação pública.
-
Ele inclui a cadeia de certificados correta.
-
-
AWS KMS Verificação de política: uma
denydeclaração explícita em uma política AWS Key Management Service (AWS KMS) para o usuário ou função do IAM que está criando o domínio pode causar esse erro. Especificamente, verifique se há negações explícitas nas açõeskms:DescribeKey,kms:CreateGrantekms:*.
-
Erro Invalid refresh token
- Problema
-
Você recebe um erro
Invalid refresh tokenao tentar usar um token de atualização para obter novos tokens de acesso e ID do seu grupo de usuários do Amazon Cognito usando a operação de APIAdminInitiateAuthouInitiateAuth. - Solução
-
Implemente as seguintes etapas de solução de problemas com base na configuração do grupo de usuários e no uso da API:
-
Garantir um ID do cliente da aplicação consistente: ao chamar a API
AdminInitiateAuthouInitiateAuthpara atualização de token, você deve usar o mesmo ID do cliente da aplicação usado durante a autenticação inicial que gerou o token de atualização. -
Confirme o dispositivo: se você tiver o rastreamento de dispositivos ativado em seu grupo de usuários, mas o dispositivo do usuário não tiver sido confirmado, você deve primeiro chamar a ConfirmDeviceAPI. Depois que o usuário confirmar o dispositivo, você poderá trocar o token de atualização.
-
Incluir a chave do dispositivo na solicitação de atualização: se o monitoramento de dispositivos estiver habilitado, inclua a chave exclusiva do dispositivo como um
AuthParameterao usar o fluxoREFRESH_TOKEN_AUTH:{ "AuthFlow": "REFRESH_TOKEN_AUTH", "AuthParameters": { "REFRESH_TOKEN": "example_refresh_token", "SECRET_HASH": "example_secret_hash", // Required if your app client uses a client secret "DEVICE_KEY": "example_device_key" } } -
Usar
USER_SRP_AUTHpara monitoramento de dispositivos: se você estiver usando o monitoramento de dispositivos, o fluxo de autenticação inicial deverá serUSER_SRP_AUTH.
-
Para obter mais informações, consulte Trabalhar com dispositivos de usuários no grupo de usuários.
Erros de resposta SAML inválida na federação
Os usuários recebem várias Invalid SAML response e erros semelhantes ao tentarem se federar no Amazon Cognito usando o SAML 2.0. Esses erros podem ocorrer devido a problemas de mapeamento de atributos, problemas de certificado ou incompatibilidades de configuração.
Invalid user attributes:
Required attribute
- Problema
-
Um usuário não tem um valor para um atributo obrigatório no grupo de usuários, ou o IdP está tentando remover ou atualizar um atributo imutável.
- Solução
-
-
Verifique os Atributos obrigatórios definidos na configuração do grupo de usuários.
-
Usando ferramentas de captura de rede em seu navegador, recupere a resposta SAML. Talvez seja necessário realizar a decodificação de URL e base64. Verifique se o atributo está presente na declaração SAML.
-
Faça login no provedor de identidades e analise os atributos que ele está enviando para o Amazon Cognito. Verifique se o IdP está configurado para enviar o atributo obrigatório usando o nome correto.
-
Para atributos imutáveis, execute o seguinte AWS CLI comando para identificá-los:.
aws cognito-idp describe-user-pool --user-pool-id USER-POOL-ID --query 'UserPool.SchemaAttributes[?Mutable==`false`].Name' -
Nos mapeamentos de atributos SAML do IdP, exclua qualquer mapeamento que tenha como alvo um atributo imutável do Amazon Cognito. Como alternativa, atualize o atributo de destino para um atributo diferente e mutável.
-
Invalid SAML response received:
SAML Response signature is invalid
- Problema
-
O IdP atualizou seu certificado de assinatura SAML, causando uma incompatibilidade entre o certificado na resposta SAML e o arquivo de metadados armazenado no Amazon Cognito.
- Solução
-
-
Baixe o arquivo de metadados mais recente do seu IdP.
-
No console do Amazon Cognito, navegue até Provedores sociais e externos do grupo de usuários, edite o provedor SAML e substitua o arquivo de metadados existente pelo arquivo recém-baixado.
-
Audience restriction ou Application with identifier not found
- Problema
-
Um ID de entidade incorreto está configurado no IdP ou a declaração usa o nome de recurso uniforme (URN) de outro grupo de usuários.
- Solução
-
-
Obtenha o ID do grupo de usuários do Amazon Cognito na seção Visão geral no console.
-
No console de gerenciamento do IdP, atualize o ID da entidade na aplicação SAML para o grupo de usuários. Configure o ID da entidade para corresponder ao formato
urn:amazon:cognito:sp:. SubstituaUSER_POOL_IDUSER_POOL_IDpelo ID do grupo de usuários da etapa anterior.
-
An error was encountered with the
requested page
- Problema
-
O URL do Assertion Consumer Service (ACS) registrado com o IdP está configurado incorretamente ou o IdP não está enviando a resposta SAML usando a associação POST obrigatória.
- Solução
-
-
No console de gerenciamento do IdP, atualize a aplicação com o formato de URL do ACS correto, garantindo que ele use a vinculação
HTTP POST. -
Formato de domínio padrão:
https://cognito-idp.Region.amazonaws.com/your user pool ID/saml2/idpresponse -
Formato de domínio personalizado:
https://auth.example.com/saml2/idpresponse
-
Invalid relayState from identity
provider
- Problema
-
O parâmetro
RelayStateestá ausente ou é inválido, ou o URL é incompatível entre o IdP e o Amazon Cognito. - Solução
-
-
Para fluxos iniciados pelo provedor de serviços (iniciados pelo SP): sempre inicie a autenticação no endpoint
/oauth2/authorizedo grupo de usuários. As declarações SAML que não retornam parâmetrosRelayStateda visita inicial do usuário ao Amazon Cognito não são solicitações válidas iniciadas pelo SP. -
Para fluxos iniciados pelo provedor de identidades (iniciados pelo IdP): o IdP deve incluir o parâmetro
RelayStatecom a declaração SAML no endpoint/saml2/idpresponse, usando o formato obrigatório:redirect_uri=REDIRECT_URI&state=STATE.
-
Para obter mais informações, consulte Como usar provedores de identidade SAML com um grupo de usuários.
Usuários de login gerenciado não podem selecionar um fator de MFA
- Problema
-
Os usuários não conseguem escolher seu método preferencial de MFA ao fazer login por meio do login gerenciado, ou não estão sendo solicitados a usar o método de MFA esperado.
- Solução
-
O Amazon Cognito segue uma lógica específica para determinar quais fatores de MFA estão disponíveis para os usuários com base nas configurações do grupo de usuários, nos atributos do usuário e na configuração de recuperação da conta. Por exemplo, os usuários não podem usar a MFA por e-mail se o e-mail estiver configurado como o método principal de recuperação da conta.
Para substituir a seleção padrão do fator de MFA, você pode implementar uma dessas abordagens:
-
Para aplicativos públicos: use SetUserMFAPreferencecom um token de acesso válido para permitir que os usuários definam suas próprias preferências de MFA
-
Para aplicativos gerenciados pelo administrador: use AdminSetUserMFAPreferencecom AWS credenciais para configurar as preferências de MFA do usuário
Ambas as operações permitem que você habilite ou desabilite os métodos de MFA por SMS, e-mail e TOTP para usuários individuais e defina um método como preferencial.
-
Para obter mais informações, consulte Adicionar MFA a um grupo de usuários.
Usuários sem senha e com chave de acesso não conseguem usar a MFA
- Problema
-
Os usuários que fazem login com métodos de autenticação sem senha ou com chaves de acesso não conseguem adicionar ou usar a autenticação multifator.
- Solução
-
Essa é uma limitação pretendida. É possível configurar o grupo de usuários de modo que os usuários disponham de MFA ou façam login com fatores sem senha, mas não ambos. A MFA está disponível somente para fluxos de autenticação baseada em senha.
Para mais informações, consulte Autenticação com grupo de usuários.
Não é possível receber o código de redefinição de senha por e-mail/SMS
- Problema
-
Os usuários não recebem códigos de verificação durante o fluxo de trabalho de esquecimento de senha por e-mail ou SMS.
- Solução
-
Há vários motivos pelos quais os códigos de verificação podem não ser recebidos. Para solucionar esse problema, siga esta lista de verificação:
-
Verifique as pastas de spam e lixo eletrônico do usuário.
-
Confirme se o usuário existe no grupo de usuários.
-
Verifique se o status do usuário não é
FORCE_CHANGE_PASSWORD. Se esse for o caso, o usuário foi criado por um administrador e o Amazon Cognito solicitará que ele defina uma senha quando fizer login com a senha temporária. -
Verifique se o usuário tem um atributo de e-mail ou telefone verificado.
-
Verifique o limite de gastos da sua conta para mensagens SMS.
-
Verifique a cota de envio de mensagens do Amazon Simple Email Service (Amazon SES).
-
Verifique se o SMS e o Amazon SES (se o grupo de usuários estiver configurado para Enviar e-mail com o Amazon SES) foram retirados do sandbox. Se eles não tiverem sido retirados do sandbox, endereços de e-mail ou números de telefone que não foram verificados pelo Amazon SES ou não AWS End User Messaging SMS poderão receber códigos de redefinição de senha.
-
Se o usuário tiver um fator de MFA ativo, verifique se ele não está tentando gerar uma mensagem para o mesmo fator. Por exemplo, usuários com MFA por e-mail ativa não podem enviar códigos de redefinição de senha por e-mail.
-
Para obter mais informações, consulte Configurações de e-mail para grupos de usuários do Amazon Cognito e Configurações de mensagens SMS para grupos de usuários do Amazon Cognito.
A redefinição de senha falha com atributos de recuperação não verificados: Could not reset password for the account, please contact support or try again
- Problema
-
Os usuários recebem esse erro ao tentar redefinir a senha devido a métodos de recuperação não verificados ou conflitos de configuração de MFA. O erro ocorre quando o atributo de e-mail ou número de telefone do usuário não é verificado ou quando suas configurações de MFA impedem o uso do método de recuperação configurado.
- Solução
-
Analise a configuração de recuperação da conta do seu grupo de usuários e o status de verificação do usuário afetado:
-
Verifique as configurações de recuperação: em seu grupo de usuários, navegue até Entrar > Recuperação de conta de usuário. Verifique se a recuperação da conta de autoatendimento está ativada e revise a configuração do método de entrega da mensagem de recuperação.
-
Verifique a verificação do atributo do usuário: verifique se o usuário tem um endereço de e-mail ou número de telefone verificado que corresponda à configuração do seu método de recuperação. No console, acesse o perfil do usuário, selecione Atributos do usuário > Editar e marque o atributo apropriado como verificado.
-
Resolver conflitos de MFA: usuários cujo método preferido de MFA é e-mail não podem receber códigos de redefinição de senha por e-mail, e usuários com MFA por SMS não podem receber códigos por SMS. Atualize seu método de entrega de mensagens de recuperação para fornecer opções alternativas, como SMS, se disponível, caso contrário, e-mail ou e-mail, se disponível, caso contrário, SMS.
-
Verificação administrativa: use a operação da API AdminUpdateUserAttributespara verificar programaticamente os atributos do usuário quando o acesso ao console não estiver disponível.
-
Para obter mais informações, consulte Senhas, recuperação de contas e políticas de senha.
Erros do SECRET_HASH
- Problema
-
Solicitações de API de autenticação para clientes da aplicação com segredos do cliente retornam erros como
An error occurred (NotAuthorizedException) when calling the ForgotPassword operation: Client 1example23456789 is configured with secret but SECRET_HASH was not received. - Solução
-
Sua aplicação deve calcular o
SECRET_HASHpara o usuário atual, o cliente da aplicação e o segredo do cliente. O método de cálculo é:Base64 ( HMAC_SHA256 ( "client secret", "Username" + "Client Id" ) )Para obter o segredo do cliente:
-
Abra o console do Amazon Cognito e navegue até o cliente da aplicação pelo menu Clientes da aplicação. Na seção Informações do cliente de aplicação, localize Segredo do cliente. Selecione Mostrar segredo do cliente e o segredo do cliente da aplicação será exibido.
-
Gere uma DescribeUserPoolClientsolicitação. O segredo do cliente estará incluído na resposta.
-
Para obter mais informações, consulte Computar valores de hash de segredo.
O console do Amazon Cognito escolhe uma configuração padrão para um novo grupo de usuários
- Problema
-
Quando você configura um novo grupo de usuários no console, o Amazon Cognito escolhe várias configurações padrão para você. Algumas configurações não podem ser alteradas depois que o grupo de usuários é criado. Como você pode fazer escolhas informadas e entender o que o Amazon Cognito selecionou automaticamente?
- Solução
-
A nova configuração do grupo de usuários no console do Amazon Cognito foi projetada para testes e prototipagem rápidos. O console apresenta somente as opções de configuração mais críticas, aquelas que não podem ser alteradas após a criação do grupo de usuários. Todas as outras configurações que o Amazon Cognito configura automaticamente podem ser modificadas posteriormente.
Recomendamos a seguinte abordagem:
-
Use o console para criar grupos de usuários de teste enquanto refina sua implementação.
-
Após determinar a configuração de produção, aplique essas configurações aos grupos de usuários de teste.
-
Use operações DescribeUserPoolde DescribeUserPoolClientAPI para gerar modelos JSON de sua configuração testada.
-
Use esses modelos com ferramentas de implantação como CDK, API REST ou CloudFormation para criar seus recursos de produção. AWS SDKs
-
Para obter mais informações, consulte Conceitos básicos dos grupos de usuários.
Recursos adicionais para solução de problemas
Para obter orientações adicionais sobre soluções de problemas e soluções fornecidas pela comunidade, você também pode explorar os seguintes recursos externos:
-
AWS re:post Comunidade do Amazon Cognito
— Procure perguntas e soluções da comunidade -
AWS Centro de conhecimento > Artigos do Amazon Cognito - Artigos
de solução de problemas selecionados