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á.
Como funciona a autenticação com o Amazon Cognito
Quando seu cliente faz login em um grupo de usuários do Amazon Cognito, seu aplicativo recebe tokens web JSON (). JWTs
Quando seu cliente faz login em um grupo de identidades, seja com um token de grupo de usuários ou outro provedor, seu aplicativo recebe AWS credenciais temporárias.
Com o login do grupo de usuários, você pode implementar a autenticação e a autorização inteiramente com um SDK da AWS . Se você não quiser criar seus próprios componentes de interface de usuário (UI), poderá invocar uma interface de usuário da Web pré-criada (login gerenciado) ou a página de login do seu provedor de identidade (IdP) terceirizado.
Este tópico é uma visão geral de algumas maneiras pelas quais seu aplicativo pode interagir com o Amazon Cognito para se autenticar com tokens de ID, autorizar com tokens de acesso e acessar com credenciais do grupo de identidades Serviços da AWS .
Tópicos
Autenticação do grupo de usuários com login gerenciado
O login gerenciado é um site vinculado ao seu pool de usuários e ao cliente do aplicativo. Ele pode realizar operações de login, cadastro e redefinição de senha para seus usuários. Um aplicativo com um componente de login gerenciado para autenticação pode exigir menos esforço do desenvolvedor para ser implementado. Um aplicativo pode ignorar os componentes da interface do usuário para autenticação e invocar páginas da Web de login gerenciado no navegador do usuário.
Os aplicativos coletam os usuários JWTs com um local de redirecionamento da web ou do aplicativo. Os aplicativos que implementam o login gerenciado podem se conectar a grupos de usuários para autenticação como se fossem um IdP do OpenID Connect (OIDC).
A autenticação de login gerenciada se encaixa no modelo em que os aplicativos precisam de um servidor de autorização, mas não precisam de recursos como autenticação personalizada, integração de grupos de identidades ou autoatendimento de atributos de usuário. Para usar algumas dessas opções avançadas, você pode implementá-las com um componente de grupos de usuários de um SDK.
Os modelos gerenciados de login e autenticação de IdP de terceiros, com uma dependência primária da implementação do OIDC, são os melhores para modelos de autorização avançados com escopos 2.0. OAuth
O diagrama a seguir ilustra uma sessão de login típica para autenticação de login gerenciada.

Fluxo de autenticação de login gerenciado
-
Um usuário acessa sua aplicação.
-
Ele seleciona um link “Fazer login”.
-
O aplicativo direciona o usuário para uma solicitação de login nas páginas de login gerenciadas do seu domínio do grupo de usuários.
-
Ele insere nome de usuário e senha.
-
O grupo de usuários valida as credenciais do usuário e determina que o usuário ativou autenticação multifator (MFA).
-
A página de login gerenciado solicita que o usuário insira um código de MFA.
-
O usuário insere seu código de MFA.
-
Seu grupo de usuários redireciona o usuário para a URL do aplicativo.
-
O aplicativo coleta o código de autorização do parâmetro de solicitação de URL que gerenciou o login anexado ao URL de retorno de chamada.
-
A aplicação solicita tokens com o código de autorização.
-
O endpoint do token retorna JWTs ao aplicativo.
-
O aplicativo decodifica, valida e armazena ou armazena em cache os dados do usuário. JWTs
-
A aplicação exibe o componente de controle de acesso solicitado.
-
O usuário visualiza seu conteúdo.
-
Depois, o token de acesso do usuário expira e ele solicita a visualização de um componente de acesso controlado.
-
A aplicação determina que a sessão do usuário deve persistir. Ele solicita novos tokens do endpoint do token usando o token de atualização.
Variantes e personalização
Você pode personalizar a aparência de suas páginas de login gerenciadas com o designer de marca para todo o seu grupo de usuários ou no nível de qualquer cliente de aplicativo. Você também pode configurar aplicações clientes com seus próprios provedores de identidade, escopos, acesso aos atributos do usuário e configuração de segurança avançada.
Recursos relacionados
Autenticação e autorização da API do grupo de usuários com um AWS SDK
AWS desenvolveu componentes para grupos de usuários do Amazon Cognito, ou provedor de identidade do Amazon Cognito, em uma variedade de estruturas de desenvolvedores. Os métodos incorporados a eles SDKs chamam a API de grupos de usuários do Amazon Cognito. O mesmo namespace da API de grupos de usuários tem operações para configuração de grupos de usuários e para autenticação de usuários. Para ter uma visão geral mais completa, consulte Entendendo a autenticação de API, OIDC e páginas de login gerenciadas.
A autenticação de API se ajusta ao modelo em que suas aplicações têm componentes de interface de usuário existentes e dependem principalmente do grupo de usuários como um diretório de usuários. Esse design adiciona o Amazon Cognito como um componente dentro de uma aplicação maior. Ele exige lógica programática para lidar com conjuntos complexos de desafios e respostas.
Essa aplicação não precisa fazer uma implementação completa de terceiros que usam OpenID Connect (OIDC). Em vez disso, ele tem a capacidade de decodificar e usar JWTs. Quando você quiser acessar o conjunto completo de recursos do grupo de usuários para usuários locais, crie a autenticação com o SDK do Amazon Cognito em seu ambiente de desenvolvimento.
A autenticação de API com OAuth escopos personalizados é menos orientada para a autorização de API externa. Para adicionar escopos personalizados a um token de acesso a partir da autenticação da API, modifique o token em runtime com um Acionador do Lambda antes da geração do token.
O diagrama a seguir ilustra uma sessão de login típica para autenticação da API.

Fluxo de autenticação da API
-
Um usuário acessa sua aplicação.
-
Ele seleciona um link “Fazer login”.
-
Ele insere nome de usuário e senha.
-
O aplicativo invoca o método que faz uma solicitação de InitiateAuthAPI. A solicitação passa as credenciais do usuário para um grupo de usuários.
-
O grupo de usuários valida as credenciais do usuário e determina que o usuário ativou autenticação multifator (MFA).
-
O grupo de usuários responde com um desafio que solicita um código de MFA.
-
A aplicação gera um prompt que coleta o código MFA do usuário.
-
O aplicativo invoca o método que faz uma solicitação de RespondToAuthChallengeAPI. A solicitação passa o código MFA do usuário.
-
O grupo de usuários valida o código MFA do usuário.
-
O grupo de usuários responde com o do JWTs usuário.
-
O aplicativo decodifica, valida e armazena ou armazena em cache os dados do usuário. JWTs
-
A aplicação exibe o componente de controle de acesso solicitado.
-
O usuário visualiza seu conteúdo.
-
Depois, o token de acesso do usuário expira e ele solicita a visualização de um componente de acesso controlado.
-
A aplicação determina que a sessão do usuário deve persistir. Ele invoca o InitiateAuthmétodo novamente com o token de atualização e recupera novos tokens.
Variantes e personalização
Você pode ampliar esse fluxo com desafios adicionais, por exemplo, seus próprios desafios de autenticação personalizados. Você pode restringir automaticamente o acesso de usuários cujas senhas foram comprometidas ou cujas características de login inesperadas indiquem uma tentativa de login mal-intencionada. Esse fluxo é praticamente o mesmo para operações de cadastro, atualização de atributos de usuário e redefinição de senhas. A maioria desses fluxos tem operações de API públicas (do lado do cliente) e confidenciais (do lado do servidor) duplicadas.
Recursos relacionados
Autenticação do grupo de usuários com um provedor de identidades de terceiros
O login com um provedor de identidade externo (IdP), ou autenticação federada, é um modelo semelhante ao login gerenciado. Sua aplicação é uma parte dependente do OIDC em seu grupo de usuários, enquanto o grupo de usuários serve de passagem para um IdP. O IdP pode ser um diretório de usuários consumidores, como Facebook ou Google, ou pode ser um diretório corporativo SAML 2.0 ou OIDC, como o Azure.
Em vez do login gerenciado no navegador do usuário, seu aplicativo invoca um endpoint de redirecionamento no servidor de autorização do grupo de usuários. Do ponto de vista do usuário, ele escolhe o botão de login na aplicação. Em seguida, o IdP solicita que ele faça login. Assim como na autenticação de login gerenciada, um aplicativo coleta JWTs em um local de redirecionamento no aplicativo.
A autenticação com um IdP de terceiros se enquadra em um modelo em que os usuários podem não querer criar uma senha ao se inscreverem na sua aplicação. A autenticação de terceiros pode ser adicionada com pouco esforço a um aplicativo que implementou a autenticação de login gerenciada. Na verdade, o login gerenciado e o login de terceiros IdPs produzem um resultado de autenticação consistente a partir de pequenas variações no que você invoca nos navegadores dos usuários.
Assim como a autenticação de login gerenciada, a autenticação federada é melhor para modelos de autorização avançados com OAuth escopos 2.0.
O diagrama a seguir ilustra uma sessão de login típica para autenticação federada.

Fluxo de autenticação federada
-
Um usuário acessa sua aplicação.
-
Ele seleciona um link “Fazer login”.
-
A aplicação direciona o usuário para um prompt de login usando seu IdP.
-
Ele insere nome de usuário e senha.
-
O IdP valida as credenciais do usuário e determina que o usuário ativou autenticação multifator (MFA).
-
O IdP solicita que o usuário insira um código de MFA.
-
O usuário insere seu código de MFA.
-
O IdP redireciona o usuário para o grupo de usuários com uma resposta SAML ou um código de autorização.
-
Se o usuário tiver passado um código de autorização, o grupo de usuários fará uma troca silenciosa do código por tokens IdP. O grupo de usuários valida os tokens IdP e redireciona o usuário para a aplicação com um novo código de autorização.
-
A aplicação coleta o código de autorização do parâmetro de solicitação de URL que o grupo de usuários anexou ao URL de retorno de chamada.
-
A aplicação solicita tokens com o código de autorização.
-
O endpoint do token retorna JWTs ao aplicativo.
-
O aplicativo decodifica, valida e armazena ou armazena em cache os dados do usuário. JWTs
-
A aplicação exibe o componente de controle de acesso solicitado.
-
O usuário visualiza seu conteúdo.
-
Depois, o token de acesso do usuário expira e ele solicita a visualização de um componente de acesso controlado.
-
A aplicação determina que a sessão do usuário deve persistir. Ele solicita novos tokens do endpoint do token usando o token de atualização.
Variantes e personalização
Você pode iniciar a autenticação federada no login gerenciado, onde os usuários podem escolher em uma lista das IdPs que você atribuiu ao seu cliente de aplicativo. O login gerenciado também pode solicitar um endereço de e-mail e encaminhar automaticamente a solicitação de um usuário para o IdP SAML correspondente. A autenticação com um provedor de identidade terceirizado não exige a interação do usuário com o login gerenciado. Sua aplicação pode adicionar um parâmetro de solicitação à solicitação do servidor de autorização do usuário e fazer com que o usuário seja redirecionado silenciosamente para a página de login do IdP.
Recursos relacionados
Autenticação do banco de identidades
Um banco de identidades é um componente da aplicação que é diferente de um grupo de usuários em função, namespace de API e modelo de SDK. Onde os grupos de usuários oferecem autenticação e autorização baseadas em tokens, os grupos de identidades oferecem autorização para AWS Identity and Access Management (IAM).
Você pode atribuir um conjunto de grupos IdPs de identidades e fazer login de usuários com eles. Os grupos de usuários são estreitamente integrados como grupos de identidades IdPs e oferecem aos grupos de identidades o máximo de opções para controle de acesso. Ao mesmo tempo, há uma ampla variedade de opções de autenticação para bancos de identidades. Os grupos de usuários unem fontes de identidade SAML, OIDC, sociais, de desenvolvedores e convidados como rotas para AWS credenciais temporárias de grupos de identidades.
A autenticação com um banco de identidades é externa. Ela segue um dos fluxos do grupo de usuários ilustrados anteriormente ou um fluxo que você desenvolve de forma independente com outro IdP. Depois que a aplicação ativa faz a autenticação inicial, ela passa a prova para um banco de identidades e recebe uma sessão temporária em troca.
A autenticação com um grupo de identidades se encaixa em um modelo em que você impõe o controle de acesso aos ativos e dados do aplicativo Serviços da AWS com a autorização do IAM. Assim como acontece com a autenticação de API em grupos de usuários, um aplicativo bem-sucedido inclui AWS SDKs cada um dos serviços que você deseja acessar para o benefício de seus usuários. AWS SDKs aplique as credenciais da autenticação do grupo de identidades como assinaturas às solicitações de API.
O diagrama a seguir ilustra uma sessão de login típica para autenticação do banco de identidades com o uso de um IdP.

Fluxo de autenticação do grupo de identidades
-
Um usuário acessa sua aplicação.
-
Ele seleciona um link “Fazer login”.
-
A aplicação direciona o usuário para um prompt de login usando seu IdP.
-
Ele insere nome de usuário e senha.
-
O IdP valida as credenciais do usuário.
-
O IdP redireciona o usuário para a aplicação com uma resposta SAML ou um código de autorização.
-
Se o usuário tiver passado um código de autorização, a aplicação fará uma troca do código por tokens IdP.
-
O aplicativo decodifica, valida e armazena ou armazena em cache a declaração do JWTs usuário.
-
O aplicativo invoca o método que faz uma solicitação de GetIdAPI. Ele passa o token ou a declaração do usuário e solicita um ID da identidade.
-
O banco de identidades valida o token ou a declaração de acordo com os provedores de identidade configurados.
-
O banco de identidades retorna um ID de identidade.
-
O aplicativo invoca o método que faz uma solicitação de GetCredentialsForIdentityAPI. Ele passa o token ou as declarações do usuário e solicita um perfil do IAM.
-
O banco de identidades gera um novo JWT. O novo JWT contém declarações que solicitam um perfil do IAM. O banco de identidades determina o perfil com base na solicitação do usuário e nos critérios de seleção de função na configuração do banco de identidades para o IdP.
-
AWS Security Token Service (AWS STS) responde à AssumeRoleWithWebIdentitysolicitação do grupo de identidades. A resposta contém credenciais de API para uma sessão temporária com um perfil do IAM.
-
A aplicação armazena as credenciais da sessão.
-
O usuário realiza uma ação na aplicação que requer recursos com acesso protegido na AWS.
-
O aplicativo aplica as credenciais temporárias como assinaturas às solicitações de API para o necessário. Serviços da AWS
-
O IAM avalia as políticas associadas ao perfil nas credenciais. Ele as compara com a solicitação.
-
O AWS service (Serviço da AWS) retorna os dados solicitados.
-
A aplicação renderiza os dados na interface do usuário.
-
O usuário visualiza os dados.
Variantes e personalização
Para visualizar a autenticação com um grupo de usuários, insira uma das visões gerais anteriores do grupo de usuários após a etapa de Emitir token/declaração. A autenticação do desenvolvedor substitui todas as etapas anteriores a Solicitar identidade por uma solicitação assinada pelas credenciais do desenvolvedor. A autenticação de convidados também vai direto para Solicitar identidade, não valida a autenticação e retorna as credenciais para um perfil do IAM de acesso limitado.