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á.
Gerenciamento de identidade do cliente
O gerenciamento de identidade e acesso do cliente (CIAM) é uma tecnologia que permite às organizações gerenciar as identidades dos clientes. Ele fornece segurança e uma experiência de usuário aprimorada para se inscrever, fazer login e acessar aplicativos de consumo, portais da web ou serviços digitais oferecidos por uma organização. O CIAM ajuda você a identificar seus clientes, criar experiências personalizadas e determinar o acesso correto de que eles precisam para aplicativos e serviços voltados para o cliente. Uma solução CIAM também pode ajudar uma organização a cumprir os requisitos de conformidade em todos os padrões e estruturas regulatórias do setor. Para obter mais informações, consulte O que é o CIAM?
O Amazon Cognito é um serviço de identidade para aplicativos web e móveis que fornece recursos de CIAM para empresas de qualquer escala. O Amazon Cognito inclui um diretório de usuários, um servidor de autenticação e um serviço de autorização para tokens de acesso OAuth 2.0 e também pode fornecer credenciais temporárias da AWS. Você pode usar o Amazon Cognito para autenticar e autorizar usuários a partir do diretório de usuários incorporado, de um provedor de identidade federado, como seu diretório corporativo, ou de provedores de identidade social, como Google e Facebook.
Os dois componentes principais do Amazon Cognito são os grupos de usuários e os grupos de identidades. Os grupos de usuários são diretórios de usuários que fornecem opções de inscrição e login para seus usuários de aplicativos móveis e da web. Os grupos de identidades fornecem credenciais temporárias da AWS para conceder aos seus usuários acesso a outros serviços da AWS.
Quando usar o Amazon Cognito
O Amazon Cognito é uma boa opção quando você precisa de uma solução de gerenciamento de usuários segura e econômica para seus aplicativos web e móveis. Aqui estão alguns cenários em que você pode decidir usar o Amazon Cognito:
-
Autenticação. Se você estiver criando protótipos de um aplicativo ou quiser implementar rapidamente a funcionalidade de login do usuário, poderá usar os grupos de usuários e a interface de usuário hospedada do Amazon Cognito para acelerar o desenvolvimento. Você pode se concentrar nos principais recursos do seu aplicativo, enquanto o Amazon Cognito gerencia o cadastro, o login e a segurança dos usuários.
O Amazon Cognito oferece suporte a vários métodos de autenticação, incluindo nomes de usuário e senhas, provedores de identidade social e provedores de identidade corporativa por meio do SAML e do OpenID Connect (OIDC).
-
Gerenciamento de usuários. O Amazon Cognito oferece suporte ao gerenciamento de usuários, incluindo registro de usuários, verificação e recuperação de contas. Os usuários podem se inscrever e entrar com seu provedor de identidade preferido, e você pode personalizar o processo de registro de acordo com os requisitos do seu aplicativo.
-
Acesso seguro aos recursos da AWS. O Amazon Cognito se integra ao IAM para fornecer controle de acesso refinado aos recursos da AWS. Você pode definir funções e políticas do IAM para controlar o acesso aos serviços da AWS com base na identidade do usuário e na associação ao grupo.
-
Identidade federada. O Amazon Cognito oferece suporte à identidade federada, que permite que um usuário faça login usando suas identidades sociais ou corporativas existentes. Isso elimina a necessidade de os usuários criarem novas credenciais para seu aplicativo, aprimorando a experiência do usuário e reduzindo o atrito durante o processo de inscrição.
-
Aplicativos móveis e web. O Amazon Cognito é adequado tanto para aplicativos móveis quanto para aplicativos web. Ele fornece SDKs várias plataformas e facilita a integração da autenticação e do controle de acesso ao código do aplicativo. Ele suporta acesso e sincronização off-line para aplicativos móveis, para que os usuários possam acessar seus dados mesmo quando estiverem off-line.
-
Escalabilidade. O Amazon Cognito é um serviço altamente disponível e totalmente gerenciado que pode ser escalado para milhões de usuários. Ele processa mais de 100 bilhões de autenticações por mês.
-
Segurança. O Amazon Cognito tem vários recursos de segurança integrados, como criptografia de dados confidenciais, autenticação multifatorial (MFA) e proteção contra ataques comuns na web, como cross-site scripting (XSS) e falsificação de solicitações entre sites (CSRF). O Amazon Cognito também fornece recursos de segurança avançados, como autenticação adaptativa, verificação do uso de credenciais comprometidas e personalização do token de acesso.
-
Integração com os serviços existentes da AWS. O Amazon Cognito se integra perfeitamente aos serviços da AWS. Isso pode simplificar o desenvolvimento e agilizar o gerenciamento de usuários para funcionalidades que dependem dos recursos da AWS.
O diagrama a seguir ilustra alguns desses cenários.

-
O aplicativo se autentica com grupos de usuários do Amazon Cognito e recebe tokens.
-
O aplicativo usa grupos de identidade do Amazon Cognito para trocar tokens por credenciais da AWS.
-
O aplicativo acessa os serviços da AWS com credenciais.
Recomendamos que você use o Amazon Cognito sempre que precisar adicionar recursos de autenticação, autorização e gerenciamento de usuários aos seus aplicativos web ou móveis, especialmente quando você tem vários provedores de identidade, exige acesso seguro aos recursos da AWS e tem requisitos de escalabilidade.
Considerações sobre design
-
Crie um grupo de usuários ou grupo de identidades do Amazon Cognito com base em seus requisitos.
-
Não atualize o perfil do usuário com muita frequência (por exemplo, a cada solicitação de login). Se for necessária uma atualização, armazene os atributos atualizados em um banco de dados externo, como o Amazon DynamoDB.
-
Não use o gerenciamento de identidade da força de trabalho do Amazon Cognito.
-
Seu aplicativo deve sempre validar JSON Web Tokens (JWTs) antes de confiar neles, verificando sua assinatura e validade. Essa validação deve ser feita no lado do cliente sem enviar chamadas de API para o grupo de usuários. Depois que o token for verificado, você poderá confiar nas declarações do token e usá-las em vez de fazer chamadas adicionais à API getUser. Para obter mais informações, consulte Verificação de um token web JSON na documentação do Amazon Cognito. Você também pode usar bibliotecas JWT adicionais
para verificação de tokens. -
Ative os recursos avançados de segurança do Amazon Cognito somente se você não estiver usando um
CUSTOM_AUTH
fluxo, gatilhos do AWS Lambda para desafios de autenticação personalizados ou login federado. Para considerações e limitações sobre recursos avançados de segurança, consulte a documentação do Amazon Cognito. -
Habilite o AWS WAF para proteger grupos de usuários do Amazon Cognito usando regras baseadas em taxas e combinando vários parâmetros de solicitação. Para obter mais informações, consulte a postagem do blog da AWS Proteja seu grupo de usuários do Amazon Cognito com o AWS WAF
. -
Se você quiser uma camada extra de proteção, use um CloudFront proxy da Amazon para processamento e validação adicionais das solicitações recebidas, conforme explicado na postagem do blog da AWS Proteja clientes públicos para o Amazon Cognito usando um proxy da Amazon CloudFront
. -
Todas as chamadas de API após o login do usuário devem ser feitas a partir de serviços de back-end. Por exemplo, use o AWS WAF para negar chamadas para
UpdateUserAttribute
, mas, em vez disso, chameAdminUpdateUserAttribute
do back-end do aplicativo para atualizar o atributo do usuário. -
Ao criar um grupo de usuários, você escolhe como os usuários farão login, por exemplo, com um nome de usuário, endereço de e-mail ou número de telefone. Essa configuração não pode ser alterada após a criação do grupo de usuários. Da mesma forma, os atributos personalizados não podem ser alterados ou removidos após serem adicionados ao grupo de usuários.
-
Recomendamos que você habilite a autenticação multifator (MFA) em seu grupo de usuários.
-
No momento, o Amazon Cognito não fornece funções integradas de backup ou exportação. Para fazer backup ou exportar os dados dos seus usuários, você pode usar a arquitetura de referência de exportação de perfis do Amazon Cognito
. -
Use funções do IAM para acesso geral aos recursos da AWS. Para requisitos de autorização detalhados, use Amazon Verified Permissions. Esse serviço de gerenciamento de permissões se integra de forma nativa ao Amazon Cognito
. Você também pode usar a personalização do token de acesso para enriquecer as declarações específicas do aplicativo a fim de determinar o nível de acesso e o conteúdo disponível para o usuário. Se seu aplicativo usa o Amazon API Gateway como ponto de entrada, use o recurso Amazon Cognito para proteger o Amazon API Gateway usando Amazon Verified Permissions. Esse serviço gerencia e avalia políticas de segurança granulares que fazem referência a atributos e grupos de usuários. Você pode garantir que somente usuários em grupos autorizados do Amazon Cognito tenham acesso aos do aplicativo. APIs Para obter mais informações, consulte o artigo Protect API Gateway with Amazon Verified Permissions no site da comunidade AWS. -
Use SDKs a AWS para acessar dados do usuário a partir do back-end chamando e recuperando atributos, status e informações do grupo do usuário. Você pode armazenar dados de aplicativos personalizados nos atributos de usuário do Amazon Cognito e mantê-los sincronizados entre dispositivos.
As seções a seguir discutem três padrões para integrar o Amazon Cognito com outros serviços da AWS: Application Load Balancers, Amazon API Gateway e Amazon Service. OpenSearch
Integração com um Application Load Balancer
Você pode configurar um Application Load Balancer com o Amazon Cognito para autenticar os usuários do aplicativo, conforme ilustrado no diagrama a seguir.

Ao configurar a regra padrão do ouvinte HTTPS, você pode transferir a identificação do usuário para o Application Load Balancer e criar um processo de autenticação automática. Para obter detalhes, consulte Como faço para configurar um Application Load Balancer para autenticar usuários por meio de um grupo de usuários do Amazon Cognito no Centro
Integração com o Amazon API Gateway
O Amazon API Gateway é um serviço de gateway de API totalmente gerenciado e baseado em nuvem que facilita a criação, publicação e gerenciamento APIs em grande escala. É um ponto de entrada para o tráfego de usuários nos serviços de back-end. Você pode integrar o Amazon Cognito ao API Gateway para implementar autenticação e controle de acesso, seja para protegê-los contra uso indevido ou para qualquer outro caso de uso comercial ou de segurança. APIs Você pode implementar a autenticação e o controle de acesso para proteger o API Gateway APIs usando um autorizador do Amazon Cognito, Amazon Verified Permissions ou um autorizador Lambda. A tabela a seguir descreve como essas três abordagens oferecem suporte à autorização.
Tipo de autorizador | Autorização suportada |
---|---|
Autorizador do Amazon Cognito |
Token de acesso: escopos Token de ID: validade |
Permissões verificadas — Autorizador Lambda |
As permissões verificadas realizam a validação do token (assinatura, expiração) para o token configurado. Token de acesso: qualquer atributo simples, atributos complexos, escopos ou grupos. Token de ID: qualquer atributo simples, atributos complexos, escopos ou grupos. As políticas também podem usar dados contextuais para autorização de confiança zero (por exemplo, endereço IP, contexto de solicitação ou impressão digital do dispositivo). |
Autorizador Lambda personalizado |
Você pode implementar um esquema personalizado de validação e autorização de tokens. |
Autorizador do Amazon Cognito
Você pode integrar o Amazon Cognito com o API Gateway para implementar autenticação e controle de acesso, conforme ilustrado no diagrama a seguir. O autorizador do Amazon Cognito valida o JSON Web Token (JWT) gerado pelo Amazon Cognito e autoriza solicitações com base em escopos personalizados no token de acesso ou em um token de ID válido. Para saber mais sobre a implementação, consulte Como configuro um grupo de usuários do Amazon Cognito como autorizador em uma API REST do API Gateway

Permissões verificadas — Autorizador Lambda
Você pode usar o Amazon Verified Permissions para integrar o Amazon Cognito ou seu próprio provedor de identidade com o API Gateway para autenticação e controle de acesso refinado. As permissões verificadas oferecem suporte à validação de ID e token de acesso do Amazon Cognito ou de qualquer provedor do OpenID Connect (OIDC) e podem autorizar o acesso com base em atributos de token simples, atributos complexos de token (como matrizes ou estruturas JSON), escopos e associações de grupos. Para começar a proteger o API Gateway REST APIs usando permissões verificadas, consulte a postagem no blog de segurança da AWS Autorize o API Gateway usando APIs Amazon Verified Permissions with Amazon Cognito ou traga seu próprio provedor de identidade

Autorizador do Lambda
Você pode usar um autorizador do AWS Lambda para implementar um esquema de autorização personalizado. Seu esquema pode usar parâmetros de solicitação para determinar a identidade do chamador ou usar uma estratégia de autenticação do token do portador, como SAML OAuth . Essa opção oferece a máxima flexibilidade, mas exige que você codifique a lógica para proteger seu APIs. Para obter mais informações, consulte Usar autorizadores Lambda do API Gateway na documentação do API Gateway.
Integração com o Amazon OpenSearch Service
Você pode usar o Amazon Cognito para proteger domínios do Amazon OpenSearch Service. Por exemplo, se um usuário precisar acessar os OpenSearch painéis pela Internet, conforme ilustrado no diagrama a seguir. Nesse cenário, o Amazon Cognito pode fornecer permissões de acesso, incluindo permissões refinadas, mapeando grupos e usuários do Amazon Cognito para permissões internas do Serviço. OpenSearch Para obter mais informações, consulte Configuração da autenticação do Amazon Cognito OpenSearch para painéis na OpenSearch documentação do Serviço.
