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á.
Autenticação com grupos de usuários do Amazon Cognito
O Amazon Cognito inclui vários métodos para autenticar os usuários. Os usuários podem fazer login com WebAuthn senhas e chaves de acesso. O Amazon Cognito pode enviar a eles uma senha de uso único por e-mail ou SMS. Você pode implementar funções do Lambda que orquestram sua própria sequência de desafios e respostas. Esses são fluxos de autenticação. Nos fluxos de autenticação, os usuários fornecem um segredo e o Amazon Cognito verifica o segredo e, em seguida, emite tokens web JSON (JWTs) para os aplicativos processarem com bibliotecas do OIDC. Neste capítulo, falaremos sobre como configurar grupos de usuários e clientes da aplicação para vários fluxos de autenticação em vários ambientes de aplicações. Você aprenderá sobre as opções para o uso das páginas de login hospedadas do login gerenciado e para criar sua própria lógica e front-end em um AWS SDK.
Todos os grupos de usuários, independentemente de você ter um domínio ou não, podem autenticar usuários na API de grupos de usuários. Se adicionar um domínio ao grupo de usuários, você poderá usar os endpoints do grupo de usuários. A API de grupos de usuários é compatível com uma variedade de modelos de autorização e fluxos de solicitações de API.
Para verificar a identidade dos usuários, o Amazon Cognito é compatível com fluxos de autenticação que incorporam tipos de desafio, além de senhas, como senhas de uso único e chaves de acesso enviadas por e-mail e SMS.
Tópicos
Implementar fluxos de autenticação
Se você está implementando o login gerenciado ou um front-end de aplicativo personalizado com um AWS SDK para autenticação, você deve configurar seu cliente de aplicativo para os tipos de autenticação que deseja implementar. As informações a seguir descrevem a configuração dos fluxos de autenticação em seus clientes da aplicação e em sua aplicação.
Coisas a saber sobre a autenticação com grupos de usuários
Considere as informações a seguir no design do modelo de autenticação com grupos de usuários do Amazon Cognito.
- Fluxos de autenticação no login gerenciado e na IU hospedada
-
O login gerenciado tem mais opções de autenticação do que a IU hospedada clássica. Por exemplo, os usuários podem fazer autenticação sem senha e com chave de acesso somente no login gerenciado.
- Fluxos de autenticação personalizados disponíveis somente na autenticação AWS do SDK
-
Não é possível criar fluxos de autenticação personalizados, nem autenticação personalizada com acionadores do Lambda, usando o login gerenciado ou a IU hospedada clássica. A autenticação personalizada está disponível na autenticação com AWS SDKs.
- Login gerenciado para login do provedor de identidades (IdP) externo
-
Você não pode fazer login de usuários por meio de terceiros IdPs na autenticação com AWS SDKs. Você deve implementar o login gerenciado ou a interface de usuário hospedada clássica, redirecionar IdPs e processar o objeto de autenticação resultante com as bibliotecas do OIDC em seu aplicativo. Para obter mais informações sobre o login gerenciado, consulte Login gerenciado do grupo de usuários.
- Efeito da autenticação sem senha em outros recursos do usuário
-
A ativação do login sem senha com senhas de uso único ou chaves de acesso no grupo de usuários e no cliente da aplicação afeta a criação e a migração de usuários. Quando o login sem senha está ativo:
-
Os administradores podem criar usuários sem senhas. O modelo de mensagem de convite padrão é alterado para não incluir mais o espaço reservado para senha
{###}. Para obter mais informações, consulte Como criar contas de usuário como administrador. -
Para SignUpoperações baseadas em SDK, os usuários não precisam fornecer uma senha ao se inscreverem. O login gerenciado e a IU hospedada exigem uma senha na página de cadastro, mesmo que a autenticação sem senha seja permitida. Para obter mais informações, consulte Como cadastrar e confirmar contas de usuários.
-
Os usuários importados de um arquivo CSV podem fazer login imediatamente com opções sem senha, sem a necessidade de redefinição de senha, se seus atributos incluírem um endereço de e-mail ou número de telefone para uma opção de login sem senha disponível. Para obter mais informações, consulte Como importar usuários para grupos de usuários com base em um arquivo CSV.
-
A autenticação sem senha não invoca o acionador do Lambda de migração de usuários.
-
Os usuários que fazem login com um primeiro fator sem senha não podem adicionar um fator de autenticação multifator (MFA) à sessão. Somente fluxos de autenticação baseada em senha são compatíveis com MFA.
-
- A parte confiável da chave de acesso não URLs pode estar na lista pública de sufixos
-
Você pode usar nomes de domínio que você possui, como
www.example.com, como o ID de parte confiável (RP) na configuração da chave de acesso. Essa configuração se destina a oferecer suporte a aplicações personalizadas executadas em domínios que você possui. A lista de sufixos públicos, ou PSL, contém domínios de alto nível protegidos. O Amazon Cognito retorna um erro quando você tenta definir o URL de RP como um domínio na PSL.
Tópicos
Duração do fluxo da sessão de autenticação
Dependendo dos recursos do grupo de usuários, você pode acabar respondendo a vários desafios para InitiateAuth e RespondToAuthChallenge antes da aplicação recuperar tokens do Amazon Cognito. O Amazon Cognito inclui uma string de sessão na resposta a cada solicitação. Para combinar suas solicitações de API em um fluxo de autenticação, inclua a string da sessão da resposta à solicitação anterior em cada solicitação subsequente. Por padrão, os usuários têm três minutos para concluir cada desafio antes que a string da sessão expire. Para ajustar esse período, altere o cliente da aplicação Authentication flow session duration (Duração da sessão do fluxo de autenticação). O procedimento a seguir descreve como alterar essa definição na configuração do cliente da aplicação.
nota
As configurações de duração da sessão do fluxo de autenticação se aplicam à autenticação com a API de grupos de usuários do Amazon Cognito. O login gerenciado define a duração da sessão como 3 minutos para autenticação multifator e 8 minutos para códigos de redefinição de senha.
Para obter mais informações sobre clientes de aplicação, consulte Configurações específicas da aplicação com clientes de aplicação.
Comportamento de bloqueio em tentativas fracassadas de login
Após cinco tentativas de login com falha com a senha do usuário, independentemente de serem solicitadas com operações de API não autenticadas ou autorizadas pelo IAM, o Amazon Cognito bloqueia o usuário por 1 segundo. A duração do bloqueio dobra após cada tentativa adicional fracassada, até um máximo de aproximadamente 15 minutos.
As tentativas feitas durante um período de bloqueio geram uma exceção Password attempts exceeded e não afetam a duração dos períodos de bloqueio subsequentes. Para um número cumulativo de tentativas fracassadas de login n, sem incluir exceções Password attempts exceeded, o Amazon Cognito bloqueia o usuário por 2^(n-5) segundos. Para redefinir o bloqueio como o estado inicial n=0, o usuário deve fazer login com êxito após o término do período de bloqueio ou não iniciar nenhuma tentativa de login por 15 minutos consecutivos a qualquer momento após um bloqueio. Esse comportamento está sujeito a alterações. Esse comportamento não se aplica aos desafios personalizados, a menos que eles também realizem a autenticação baseada em senha.
Um exemplo de sessão de autenticação
O diagrama e o step-by-step guia a seguir ilustram um cenário típico em que um usuário faz login em um aplicativo. A aplicação de exemplo apresenta ao usuário várias opções de login. Ele seleciona uma inserindo suas credenciais, fornece um fator de autenticação adicional e faz login.
Imagine uma aplicação com uma página de login na qual os usuários podem fazer login com nome de usuário e senha, solicitar um código de uso único enviado por e-mail ou escolher uma opção de impressão digital.
-
Solicitação de login: a aplicação mostra uma tela inicial com um botão Fazer login.
-
Solicitar login: o usuário seleciona Fazer login. Com base em um cookie ou cache, a aplicação recupera o nome de usuário ou solicita que ele o insira.
-
Opções de solicitação: a aplicação solicita as opções de login do usuário por meio de uma solicitação de API
InitiateAuthcom o fluxoUSER_AUTH, solicitando os métodos de login disponíveis para o usuário. -
Enviar opções de login: o Amazon Cognito responde com
PASSWORD,EMAIL_OTPeWEB_AUTHN. A resposta inclui um identificador de sessão para você reproduzir na próxima resposta. -
Opções de exibição: a aplicação mostra elementos de IU para que o usuário insira seu nome de usuário e senha, obtenha um código de uso único ou escaneie sua impressão digital.
-
Escolha option/Enter as credenciais: o usuário insere seu nome de usuário e senha.
-
Iniciar autenticação: a aplicação fornece as informações de login do usuário por meio de uma solicitação de API
RespondToAuthChallengeque confirma o login com nome de usuário e senha e fornece o nome de usuário e a senha. -
Validar credenciais: o Amazon Cognito confirma as credenciais do usuário.
-
Desafio adicional: o usuário tem a autenticação multifator configurada com uma aplicação autenticadora. O Amazon Cognito retorna um desafio
SOFTWARE_TOKEN_MFA. -
Solicitação de desafio: a aplicação exibe um formulário solicitando uma senha de uso único com marcação temporal (TOTP) da aplicação autenticadora do usuário.
-
Responder ao desafio: o usuário envia a TOTP.
-
Responder ao desafio: em outra solicitação
RespondToAuthChallenge, a aplicação fornece a TOTP do usuário. -
Validar a resposta ao desafio: o Amazon Cognito confirma o código do usuário e determina que o grupo de usuários está configurado para não emitir desafios adicionais para o usuário atual.
-
Emitir tokens: o Amazon Cognito retorna tokens web JSON de ID, acesso e atualização (). JWTs A autenticação inicial do usuário está concluída.
-
Armazenar tokens: a aplicação armazena em cache os tokens do usuário para poder referenciar os dados do usuário, autorizar o acesso a recursos e atualizar os tokens quando eles expirarem.
-
Renderizar conteúdo autorizado: a aplicação determina o acesso do usuário aos recursos com base em sua identidade e funções e fornece o conteúdo da aplicação.
-
Acessar conteúdo: o usuário está conectado e começa a usar a aplicação.
-
Solicitar conteúdo com token expirado: posteriormente, o usuário solicita um recurso que requer autorização. O token em cache do usuário expirou.
-
Tokens de atualização: a aplicação faz uma solicitação
InitiateAuthcom o token de atualização salvo do usuário. -
Emitir tokens: o Amazon Cognito retorna novo ID e acesso. JWTs A sessão do usuário é atualizada com segurança sem solicitações adicionais de credenciais.
Você pode usar acionadores do AWS Lambda para personalizar a maneira como os usuários se autenticam. Esses triggers emitem e verificam seus próprios desafios como parte do fluxo de autenticação.
Também é possível usar o fluxo de autenticação de administrador para servidores de backend seguros. É possível usar o fluxo de autenticação de migração do usuário para permitir essa migração sem exigir que os usuários redefinam suas senhas.