Aplicação de exemplo para bancos de identidades - Amazon Cognito

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á.

Aplicação de exemplo para bancos de identidades

O caso de uso mais comum dos grupos de identidade do Amazon Cognito é federar usuários de vários sistemas de login e entregar credenciais temporárias de acesso limitado AWS diretamente ao cliente. Isso elimina a necessidade de criar um agente de credenciais para obter permissões para acessar seus AWS recursos. Por exemplo, talvez seja necessário permitir que os usuários façam login com suas contas de rede social e acessem os ativos da aplicação do Amazon S3 para seu aplicativo móvel. Os bancos de identidades também fornecem credenciais aos usuários que fazem login com grupos de usuários.

Neste tutorial, você criará um aplicativo web em que poderá obter credenciais temporárias autenticadas e de convidado nos fluxos de autenticação avançados e básicos com provedores de identidade compatíveis (IdPs) em grupos de identidades. Se você já tem experiência em desenvolvimento web, baixe o aplicativo de exemplo em GitHub.

Baixe o aplicativo de exemplo em GitHub

Esta aplicação de exemplo demonstra os seguintes recursos dos bancos de identidades do Amazon Cognito:

Fluxos de autenticação em bancos de identidades
  • Fluxo de autenticação aprimorado com detalhamento das solicitações de API

  • Fluxo de autenticação básico com detalhamento das solicitações de API

Implementação do acesso de convidado (não autenticado)
  • Forneça AWS service (Serviço da AWS) acesso limitado sem exigir login

Integração com provedores de identidades compatíveis
  • Social IdPs (Facebook, Amazon, Twitter, Apple e Google) para acesso do consumidor

  • Enterprise IdPs (por meio do OpenID Connect ou SAML) para usuários corporativos

  • Grupos de usuários do Amazon Cognito

AWS gerenciamento de credenciais
  • Troca de tokens do provedor de identidades por credenciais temporárias da AWS

  • Usando credenciais temporárias para acessar AWS serviços com segurança

Após configurar a aplicação no servidor web de desenvolvimento e acessá-la em um navegador, você verá as opções a seguir.

Captura de tela da interface web da aplicação de demonstração do banco de identidades do Amazon Cognito mostrando a página principal com opções de método de autenticação e seções de demonstração interativas.

Pré-requisitos

Antes de começar, você precisará configurar os recursos a seguir.

  • Uma AWS conta com acesso ao Amazon Cognito. Se você não tiver uma AWS conta, siga as instruções emComeçando com AWS.

  • Python 3.8 ou posterior instalado na sua máquina de desenvolvimento.

  • GitHub acesso.

  • AWS credenciais configuradas com permissões para fazer solicitações autenticadas ao Amazon Cognito. APIs Essas credenciais são obrigatórias para a autenticação do desenvolvedor.

Para obter mais informações sobre a implementação de AWS credenciais e federação de grupos de identidades em seu SDK específico, consulte. Como obter credenciais

Configuração do provedor de autenticação

Para obter melhores resultados com esse aplicativo, configure e integre um ou mais provedores de identidade terceirizados (IdPs) ou grupos de usuários do Amazon Cognito ao seu pool de identidade do Amazon Cognito. Após concluir os pré-requisitos e antes de executar essa aplicação de demonstração, escolha quais provedores de identidades configurar. O console do Amazon Cognito orienta você no processo de configuração de bancos de identidades e provedores.

nota

Para essa aplicação de demonstração, não é necessário configurar todos os provedores de identidades compatíveis. Você pode começar com um que corresponda ao seu caso de uso. Cada link fornece instruções detalhadas de configuração.

Implantar a aplicação de demonstração

Clone o repositório

  1. Abra uma janela do terminal.

  2. Clone o repositório aws-doc-sdk-examples ou recupere esta pasta no repositório.

    git clone https://github.com/awsdocs/aws-doc-sdk-examples.git
  3. Navegue até o diretório de projeto do .

    cd python/example_code/cognito/scenarios/identity_pools_example_demo/web

Criar um banco de identidades do

Para criar um banco de identidades no Amazon Cognito para sua aplicação, siga as instruções em Visão geral do console de bancos de identidades.

Como configurar um banco de identidades para a aplicação de demonstração
  1. Abra o console do Amazon Cognito.

  2. No menu de navegação à esquerda, selecione Grupos de identidades. Escolha um banco de identidades existente ou crie um.

  3. Em Acesso de usuário, habilite Acesso autenticado e Acesso de convidado. Configure um perfil do IAM novo ou existente e atribua a ele as permissões que você deseja conceder a cada tipo de usuário.

  4. Em Acesso de usuário, configure todos os provedores de identidades que deseja configurar.

  5. Em Propriedades do grupo de identidades, habilite Autenticação básica (clássica).

  6. Mantenha o navegador aberto no console do banco de identidades. Você usará o ID do banco de identidades e outras informações de configuração na configuração da sua aplicação.

Configurar e executar a aplicação

As etapas a seguir guiarão você na configuração inicial da sua aplicação de demonstração.

Como configurar a aplicação de demonstração
  1. Abra uma linha de comando em python/example_code/cognito/scenarios/identity_pools_example_demo/web em seu clone aws-doc-sdk-examples.

  2. Crie um arquivo .env copiando o arquivo de ambiente de exemplo.

    cp .env.example .env
  3. Abra o arquivo .env em um editor de textos. Substitua os valores de exemplo no arquivo pelos seus próprios valores de configuração.

  4. Instale as dependências de backend.

    pip install -r requirements.txt
  5. Inicie o servidor de backend:

    cd backend python oauth_server.py
  6. Abra uma nova janela de terminal, navegue até o diretório do projeto e inicie o servidor de frontend:

    cd frontend python -m http.server 8001
  7. Abra seu navegador e acesse a aplicação em http://localhost:8001. Seu navegador exibirá a interface da aplicação de demonstração, pronta para testar a autenticação de bancos de identidades.

Explorar os métodos de autenticação no banco de identidades

Esta seção orienta você pelos fluxos de autenticação básica e aprimorada usando a aplicação de demonstração de bancos de identidades do Amazon Cognito. Com esta demonstração, você aprenderá como os grupos de identidades funcionam com vários provedores de identidade para fornecer AWS credenciais temporárias aos usuários do seu aplicativo.

Na seção Demonstração interativa da aplicação de exemplo, você primeiro escolherá entre dois tipos de acesso compatíveis com bancos de identidades.

Acesso não autenticado (convidado)

Forneça AWS credenciais aos usuários que ainda não se autenticaram.

Acesso autenticado

Troque tokens do provedor de identidade por AWS credenciais com um escopo completo de permissões disponíveis. Escolha um provedor de identidades dentre aqueles que você configurou no arquivo .env.

Esta etapa demonstra como obter AWS credenciais temporárias para usuários não autenticados (convidados) por meio do recurso de acesso de convidados do seu grupo de identidades. Na aplicação de demonstração, você testará os fluxos avançado e básico para ver como os bancos de identidades emitem credenciais sem exigir o login do usuário. O acesso de convidado usa a mesma sequência de API do acesso autenticado, mas sem fornecer tokens de provedor de identidade (como OAuth tokens do Google, Facebook ou declarações SAML de provedores corporativos).

Continue a leitura se quiser informações sobre como fornecer acesso limitado à AWS para usuários sem exigir autenticação. Depois de implementar o acesso de convidado, você aprenderá a fornecer AWS credenciais com segurança a usuários anônimos e a entender as diferenças entre os dois fluxos de autenticação.

Importante

O acesso não autenticado pode emitir credenciais para qualquer pessoa com acesso à Internet, por isso é melhor usado para AWS recursos que exigem segurança mínima, como ativos públicos APIs e gráficos. Antes de prosseguir com essa etapa, verifique se você configurou o banco de identidades com o acesso de convidado habilitado e garanta que as políticas do IAM adequadas estejam em vigor para limitar as permissões.

Guest access with enhanced flow

O fluxo aprimorado é uma abordagem simplificada para obter credenciais da AWS para usuários não autenticados com duas solicitações de API.

Como testar o acesso de convidado com o fluxo aprimorado
  1. Na aplicação de demonstração, navegue até a seção Demonstração interativa.

  2. Selecione a guia Acesso de convidado.

  3. Selecione a guia Fluxo aprimorado.

  4. Clique em Testar acesso de convidado.

  5. O aplicativo obtém AWS credenciais temporárias de seus grupos de identidades sem solicitações adicionais de autenticação.

  6. Após a autenticação bem-sucedida, você verá a interface da web exibindo o painel Resultados e terá duas opções para explorá-lo:

    1. Botão Exibir somente credenciais: escolha esse botão se quiser ver diretamente AWS as credenciais temporárias geradas sem os detalhes do fluxo da API.

      { "IdentityId": "us-east-1:a1b2c3d4-5678-90ab-cdef-EXAMPLE11111", "Credentials": { "AccessKeyId": "AKIAIOSFODNN7EXAMPLE", "SecretAccessKey": "wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY", "SessionToken": "IQoJb3JpZ2luX2VjEEXAMPLE......", "Expiration": "2025-08-07T00:58:21-07:00" } }
    2. Exibir botão detalhado do fluxo da API: escolha esse botão se quiser ver as solicitações da step-by-step API.

      • Solicitação de API GetId() com seu identityPoolId. Não são necessários tokens de autenticação para acesso de convidado.

        { "IdentityPoolId": "us-east-1:a1b2c3d4-5678-90ab-cdef-EXAMPLE11111" }

        Se for válido, ele encontrará ou criará e retornará o IdentityID do usuário. Um exemplo de resposta é semelhante a:

        { "IdentityId": "us-east-1:a1b2c3d4-5678-90ab-cdef-EXAMPLE11111" }
      • GetCredentialsForIdentity() com o identityPoolId retornado.

        POST GetCredentialsForIdentity { "IdentityId": "us-east-1:a1b2c3d4-5678-90ab-cdef-EXAMPLE11111" }

        Cognito valida o acesso de convidados, assume a função não autenticada internamente e retorna uma credencial temporária da AWS. AWS STS(Não há autenticação do IAM nessa chamada; a confiança de função deve permitir cognito-identity-amazonzaws.com.)

        { "IdentityId": "us-east-1:a1b2c3d4-5678-90ab-cdef-EXAMPLE11111", "Credentials": { "AccessKeyId": "AKIAIOSFODNN7EXAMPLE", "SecretAccessKey": "wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY", "SessionToken": "IQoJb3JpZ2luX2VjEEXAMPLE......", "Expiration": "2025-08-07T00:58:21-07:00" } }
Guest access with basic flow

O fluxo básico fornece controle granular sobre o processo de autenticação com solicitações de API separadas para recuperação de identidade e geração de credenciais.

Como testar o acesso de convidado com o fluxo básico
  1. Na aplicação de demonstração, navegue até a seção Demonstração interativa.

  2. Selecione a guia Acesso de convidado.

  3. Selecione a guia Fluxo básico.

  4. Clique em Testar acesso de convidado.

  5. O aplicativo obtém AWS credenciais temporárias de seus grupos de identidades sem solicitações adicionais de autenticação.

  6. Após a autenticação bem-sucedida, você verá a interface da web exibindo o painel Resultados e terá duas opções para explorá-lo.

    1. Botão Exibir somente credenciais: escolha esse botão se quiser ver diretamente AWS as credenciais temporárias geradas sem os detalhes do fluxo da API.

      { "IdentityId": "us-east-1:a1b2c3d4-5678-90ab-cdef-EXAMPLE22222", "Credentials": { "AccessKeyId": "AKIAIOSFODNN7EXAMPLE", "SecretAccessKey": "wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY", "SessionToken": "IQoJb3JpZ2luX2VjEEXAMPLE......", "Expiration": "2025-08-12T13:36:17-07:00" } }
    2. Exibir botão detalhado do fluxo da API: escolha esse botão se quiser ver as solicitações da step-by-step API.

      • Solicitação de API GetId() com o ID do banco de identidades. Não são necessários tokens de autenticação para acesso de convidado.

        POST GetId { "IdentityPoolId": "us-east-1:a1b2c3d4-5678-90ab-cdef-EXAMPLE11111" }

        Se for válido, ele encontrará ou criará e retornará o IdentityID do usuário. Um exemplo de resposta é semelhante a:

        { "IdentityId": "us-east-1:a1b2c3d4-5678-90ab-cdef-EXAMPLE22222" }
      • GetOpenIdToken() com o IdentityID retornado e o mesmo mapa Logins.

        POST GetOpenIdToken { "IdentityId": "us-east-1:a1b2c3d4-5678-90ab-cdef-EXAMPLE22222" }

        Resposta:

        { "IdentityId": "us-east-1:a1b2c3d4-5678-90ab-cdef-EXAMPLE22222", "Token": "eyJraWQiOiJFWAMPLE......" }

        O que acontece nessa etapa: o Amazon Cognito emite um token de identidade web do OpenID Connect de curta duração, proveniente de cognito-identity.amazonaws.com, que representa esse IdentityId. O token inclui declarações do OIDC que AWS STS avaliam, incluindo aud (seu ID de grupo de identidade) e amr (autenticado ou não autenticado). A política de confiança do seu perfil do IAM deve exigir essas declarações.

      • AssumeRoleWithWebIdentity()- Seu aplicativo liga AWS STS diretamente para trocar o token OpenID do Amazon Cognito por credenciais temporárias AWS

        POST sts:AssumeRoleWithWebIdentity { "RoleArn": "arn:aws:iam::111122223333:role/Cognito_IdentityPoolUnauth_Role", "WebIdentityToken": "eyJraWQiOiJFWAMPLE......" }

        Resposta:

        { "Credentials": { "AccessKeyId": "AKIAIOSFODNN7EXAMPLE", "SecretAccessKey": "wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY", "SessionToken": "FwoGZXIvYXdzEEXAMPLE......" } }

        O que acontece nessa etapa: após a validação: retorna as credenciais temporárias da AWS

Usar as credenciais temporárias

Essas credenciais temporárias funcionam como AWS credenciais padrão, mas com permissões limitadas definidas pela função não autenticada do IAM do seu grupo de identidades. Você pode usá-los com qualquer AWS SDK ou AWS CLI. Para obter mais informações sobre a configuração AWS SDKs com credenciais, consulte Provedores de credenciais padronizados no Guia de referência de ferramentas AWS SDKs e ferramentas.

Os exemplos abaixo não constituem uma lista completa, mas mostram maneiras comuns pelas quais o recurso de convidado de um banco de identidades pode melhorar a experiência do usuário.

Os exemplos a seguir configuram provedores de credenciais para acesso limitado ao Amazon S3 como usuário convidado.

Python
# Example: Using credentials with boto3 import boto3 # Configure client with temporary credentials s3_client = boto3.client( 's3', aws_access_key_id='AKIAIOSFODNN7EXAMPLE', aws_secret_access_key='wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY', aws_session_token='IQoJb3JpZ2luX2VjEEXAMPLE......' ) # Make API requests within IAM role permissions response = s3_client.list_objects_v2(Bucket='my-public-bucket') # Access public content for obj in response.get('Contents', []): print(f"File: {obj['Key']}, Size: {obj['Size']} bytes")
JavaScript
// Example: Accessing public content import { S3Client, GetObjectCommand } from "@aws-sdk/client-s3"; const s3Client = new S3Client({ region: "us-east-1", credentials: { accessKeyId: 'AKIAIOSFODNN7EXAMPLE', secretAccessKey: 'wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY', sessionToken: 'IQoJb3JpZ2luX2VjEEXAMPLE......' } }); // Access public images or documents const response = await s3Client.send(new GetObjectCommand({ Bucket: 'my-public-content', Key: 'product-catalog.pdf' }));

Os exemplos a seguir usam o acesso somente leitura ao Amazon DynamoDB como usuário convidado.

Python
# Example: Limited app functionality for trial users import boto3 dynamodb = boto3.client( 'dynamodb', aws_access_key_id='AKIAIOSFODNN7EXAMPLE', aws_secret_access_key='wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY', aws_session_token='IQoJb3JpZ2luX2VjEEXAMPLE......' ) # Allow guest users to view sample data (limited to 5 items) response = dynamodb.scan(TableName='SampleProducts', Limit=5)
JavaScript
// Example: Limited app functionality for trial users import { DynamoDBClient, ScanCommand } from "@aws-sdk/client-dynamodb"; const dynamodbClient = new DynamoDBClient({ region: "us-east-1", credentials: { accessKeyId: 'AKIAIOSFODNN7EXAMPLE', secretAccessKey: 'wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY', sessionToken: 'IQoJb3JpZ2luX2VjEEXAMPLE......' } }); // Allow guest users to view sample data (limited to 5 items) const response = await dynamodbClient.send(new ScanCommand({ TableName: 'SampleProducts', Limit: 5 }));

Esta etapa explora o fluxo geral de uso de provedores de identidades sociais com bancos de identidades do Amazon Cognito. A autenticação social fornece uma experiência de login familiar e, ao mesmo tempo, mantém a segurança por meio do gerenciamento de identidades federadas. Você pode fazer login a partir de um provedor de identidade social (IdP), como Google, Facebook e Amazon, e depois trocar esse token de IdP por credenciais temporárias. AWS A integração do Twitter e da Apple também é compatível com bancos de identidades, mas não é compatível na aplicação de exemplo.

O banco de identidades em si não é um diretório de usuários. Ele não armazena senhas nem campos de perfil. Em vez disso, ela confia no externo IdPs para autenticar o usuário e se concentra em autorizar esse usuário já autenticado a ligar diretamente para os AWS serviços, vendendo credenciais para funções do IAM.

Social identity provider with enhanced flow

Esta seção mostra como você pode usar um provedor de identidades social para conectar um usuário e, usando o fluxo aprimorado, trocar o token do provedor em um banco de identidades do Amazon Cognito por credenciais temporárias para solicitar recursos da AWS .

Usar o login social com o fluxo aprimorado na aplicação de exemplo
  1. Na aplicação de demonstração, navegue até a seção Demonstração interativa.

  2. Selecione a guia Acesso autenticado.

  3. Selecione a guia Fluxo aprimorado.

  4. Escolha um provedor social compatível que você configurou, por exemplo, Fazer login com o Google, Fazer login com o Facebook ou Fazer login com a Amazon.

  5. Faça login e concorde em compartilhar dados do usuário com a aplicação.

  6. O provedor redireciona de volta para o URI de redirecionamento da aplicação.

  7. O aplicativo envia o token do provedor para seu grupo de identidades e recupera credenciais temporárias AWS

  8. A aplicação exibe o painel Resultados na interface da web.

    Após a autenticação bem-sucedida, você verá a interface da web exibindo o painel Resultados e terá duas opções para explorá-lo:

    1. Botão Exibir somente credenciais: escolha esse botão se quiser ver diretamente AWS as credenciais temporárias geradas sem os detalhes do fluxo da API.

      { "IdentityId": "us-east-1:a1b2c3d4-5678-90ab-cdef-EXAMPLE22222", "Credentials": { "AccessKeyId": "AKIAIOSFODNN7EXAMPLE", "SecretAccessKey": "wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY", "SessionToken": "IQoJb3JpZ2luX2VjEEXAMPLE......", "Expiration": "2025-08-12T13:36:17-07:00" } }
    2. Exibir botão detalhado do fluxo da API: escolha esse botão se quiser ver as solicitações da step-by-step API.

      • A aplicação conecta o usuário com um IdP social e obtém o token do provedor. Os bancos de identidades aceitam estes artefatos dos provedores sociais:

        Provedor de identidades Chave do provedor do Cognito Finalidade
        Google accounts.google.com OAuth 2.0 tokens do Google Sign-In
        Facebook graph.facebook.com Tokens de acesso do login do Facebook
        Amazon www.amazon.com OAuth tokens do Login with Amazon

        Após a autenticação bem-sucedida com o provedor social, seu aplicativo recebe uma OAuth resposta contendo o token de acesso e outros detalhes de autenticação:

        { "access_token": "ya29.A0AS3H6NEXAMPLE......", "expires_in": 3599, "scope": "openid https://www.examplesocial....", "token_type": "Bearer", "id_token": "eyJhbGciOiJSUzI1NiIsEXAMPLE......" }
      • Solicitação de API GetId() com o ID do banco de identidades e um mapa Logins contendo o token do provedor social.

        POST GetId { "IdentityPoolId": "us-east-1:a1b2c3d4-5678-90ab-cdef-EXAMPLE11111", "Logins": { "accounts.google.com": "eyJhbGciOiJSUzI1NiIsEXAMPLE......" } }

        Resposta:

        { "IdentityId": "us-east-1:a1b2c3d4-5678-90ab-cdef-EXAMPLE22222" }
      • GetCredentialsForIdentity() com o IdentityID retornado e o mesmo mapa Logins.

        POST GetCredentialsForIdentity { "IdentityId": "us-east-1:a1b2c3d4-5678-90ab-cdef-EXAMPLE22222", "Logins": { "accounts.google.com": "eyJhbGciOiJSUzI1NiIsEXAMPLE......" } }

        Resposta:

        { "Credentials": { "AccessKeyId": "AKIAIOSFODNN7EXAMPLE", "SecretAccessKey": "wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY", "SessionToken": "IQoJb3JpZ2luX2VjEEXAMPLE......", "Expiration": "2025-08-07T00:58:21-07:00" }, "IdentityId": "us-east-1:a1b2c3d4-5678-90ab-cdef-EXAMPLE22222" }

O que aconteceu: o Amazon Cognito validou o token em relação ao provedor configurado, escolheu uma função do IAM com base na configuração do seu provedor e ligou AWS STS em seu nome. Seu banco de identidades então retornou as credenciais temporárias.

Social identity provider with basic flow

Esta seção mostra como você pode usar um provedor de identidade social para cadastrar um usuário e, usando o fluxo básico, trocar o token do provedor em um pool de identidade do Amazon Cognito por credenciais temporárias para chamar serviços. AWS

Usar o login social com o fluxo básico na aplicação de exemplo
  1. Na aplicação de demonstração, navegue até a seção Demonstração interativa.

  2. Selecione a guia Acesso autenticado.

  3. Selecione a guia Fluxo básico.

  4. Escolha um provedor social compatível que você configurou, por exemplo, Fazer login com o Google, Fazer login com o Facebook ou Fazer login com a Amazon.

  5. Faça login e concorde em compartilhar dados do usuário com a aplicação.

  6. O provedor redireciona de volta para o URI de redirecionamento da aplicação.

  7. O aplicativo envia o token do provedor para seu grupo de identidades e recupera credenciais temporárias AWS

  8. A aplicação exibe o painel Resultados na interface da web.

    Após a autenticação bem-sucedida, você verá a interface da web exibindo o painel Resultados e terá duas opções para explorá-lo:

    1. Botão Exibir somente credenciais: escolha esse botão se quiser ver diretamente AWS as credenciais temporárias geradas sem os detalhes do fluxo da API.

      { "IdentityId": "us-east-1:a1b2c3d4-5678-90ab-cdef-EXAMPLE22222", "Credentials": { "AccessKeyId": "AKIAIOSFODNN7EXAMPLE", "SecretAccessKey": "wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY", "SessionToken": "IQoJb3JpZ2luX2VjEEXAMPLE......", "Expiration": "2025-08-12T13:36:17-07:00" } }
    2. Exibir botão detalhado do fluxo da API: escolha esse botão se quiser ver as solicitações da step-by-step API.

      • A aplicação conecta o usuário com um IdP social e obtém o token do provedor. Os bancos de identidades aceitam estes artefatos dos provedores sociais:

        Provedor de identidades Chave do provedor do Cognito Finalidade
        Google accounts.google.com OAuth 2.0 tokens do Google Sign-In
        Facebook graph.facebook.com Tokens de acesso do login do Facebook
        Amazon www.amazon.com OAuth tokens do Login with Amazon

        Após a autenticação bem-sucedida com o provedor social, seu aplicativo recebe uma OAuth resposta contendo o token de acesso e outros detalhes de autenticação:

        { "access_token": "ya29.A0AS3H6NEXAMPLE......", "expires_in": 3599, "scope": "openid https://www.examplesocial....", "token_type": "Bearer", "id_token": "eyJhbGciOiJSUzI1NiIsEXAMPLE......" }
      • Solicitação de API GetId() com o ID do banco de identidades e um mapa Logins contendo o token do provedor social.

        POST GetId { "IdentityPoolId": "us-east-1:a1b2c3d4-5678-90ab-cdef-EXAMPLE11111", "Logins": { "accounts.google.com": "token..." } }

        Resposta:

        { "IdentityId": "us-east-1:a1b2c3d4-5678-90ab-cdef-EXAMPLE22222" }
      • GetOpenIdToken() com o IdentityID retornado e o mesmo mapa Logins.

        POST GetOpenIdToken { "IdentityId": "us-east-1:a1b2c3d4-5678-90ab-cdef-EXAMPLE22222", "Logins": { "accounts.google.com": "token..." } }

        Resposta:

        { "IdentityId": "us-east-1:a1b2c3d4-5678-90ab-cdef-EXAMPLE22222", "Token": "eyJraWQiOiJFWAMPLE......" }
      • AssumeRoleWithWebIdentity() com o token OpenID

        POST AssumeRoleWithWebIdentity { "RoleArn": "arn:aws:iam::111122223333:role/Cognito_IdentityPoolAuth_Role", "WebIdentityToken": "eyJraWQiOiJFWAMPLE......" }

        Resposta:

        { "Credentials": { "AccessKeyId": "AKIAIOSFODNN7EXAMPLE", "SecretAccessKey": "wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY", "SessionToken": "IQoJb3JpZ2luX2VjEEXAMPLE......", "Expiration": "2025-08-12T14:36:17-07:00" } }

O que aconteceu: o Amazon Cognito validou o token em relação ao provedor configurado e emitiu um token OpenID. O aplicativo ligou AWS STS diretamente para assumir uma função do IAM e receber credenciais temporárias.

Noções básicas sobre o acesso social

  • Os usuários sociais recebem AWS credenciais temporárias por meio dos grupos de identidade do Amazon Cognito após se autenticarem com seu provedor social.

  • Cada usuário autenticado recebe um ID de identidade exclusivo que persiste em todas as sessões.

  • Essas credenciais estão vinculadas a um perfil do IAM projetado especificamente para acesso autenticado, fornecendo permissões mais amplas do que o acesso de convidado.

  • Os tokens do provedor social são trocados por AWS credenciais, mantendo a identidade e as permissões do usuário.

Esta etapa explora a autenticação do Amazon Cognito com a integração de login gerenciado de grupos de usuários. Ao vincular um grupo de usuários como um IdP a um banco de identidades, os tokens do grupo de usuários autorizam o banco de identidades a emitir credenciais temporárias.

User pool authentication with enhanced flow

O fluxo aprimorado fornece uma abordagem simplificada para obter credenciais da AWS por meio de bancos de identidades do Amazon Cognito com uma única solicitação de API.

Usar a autenticação do grupo de usuários do Amazon Cognito com o fluxo aprimorado do banco de identidades
  1. Na aplicação de demonstração, navegue até a seção Demonstração interativa.

  2. Selecione a guia Acesso autenticado.

  3. Selecione a guia Fluxo aprimorado.

  4. Selecione Fazer login com grupos de usuários do Amazon Cognito.

  5. Conclua o login com seu nome de usuário e senha no login gerenciado.

  6. O grupo de usuários redireciona de volta ao URI de redirecionamento da aplicação com um código de autorização.

  7. A aplicação troca o código de autorização com o grupo de usuários por tokens web JSON.

  8. O aplicativo troca o token de ID com seu grupo de identidades por AWS credenciais temporárias

  9. A aplicação exibe o painel Resultados na interface da web.

    Após a autenticação bem-sucedida, você verá a interface da web exibindo o painel Resultados e terá duas opções para explorá-lo:

    1. Botão Exibir somente credenciais: escolha esse botão se quiser ver diretamente AWS as credenciais temporárias geradas sem os detalhes do fluxo da API.

      { "IdentityId": "us-east-1:a1b2c3d4-5678-90ab-cdef-EXAMPLE22222", "Credentials": { "AccessKeyId": "AKIAIOSFODNN7EXAMPLE", "SecretAccessKey": "wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY", "SessionToken": "IQoJb3JpZ2luX2VjEEXAMPLE......", "Expiration": "2025-08-12T13:36:17-07:00" } }
    2. Exibir botão detalhado do fluxo da API: escolha esse botão se quiser ver as solicitações da step-by-step API.

      • A aplicação conecta o usuário com o Amazon Cognito. Após a autenticação bem-sucedida com o grupo de usuários, seu aplicativo recebe uma resposta OAuth 2.0 contendo o token de ID (JWT). Os bancos de identidades aceitam tokens de ID JWT dos grupos de usuários usando este formato de chave de provedor:

        Provedor de identidades Chave do provedor do Cognito Finalidade
        Grupo de usuários do Amazon Cognito cognito-idp.{region}.amazonaws.com/{user-pool-id} Tokens de ID JWT dos grupos de usuários do Amazon Cognito

        Após a autenticação bem-sucedida com o grupo de usuários, seu aplicativo recebe uma resposta OAuth 2.0 contendo o token de ID (JWT):

        { "id_token": "eyJraWQiOiJFWAMPLE......", "token_type": "Bearer", "expires_in": 3600 }
      • Solicitação de API GetId() com seu identityPoolId e um mapa Logins que inclui a chave de provedor do grupo de usuários mapeada para id_token. O Amazon Cognito verificou que a assinatura, o emissor, a expiração e o público (aud) do token de ID do grupo de usuários correspondem a um dos clientes do aplicativo que IDs você registrou para esse IdP do grupo de usuários no grupo de identidades.

        POST GetId { "AccountId": "111122223333", "IdentityPoolId": "us-east-1:1ac4a76d-1fef-48aa-83af-4224799c0b5c", "Logins": { "cognito-idp.us-east-1.amazonaws.com/us-east-1_EXAMPLE123": "eyJraWQiOiJFWAMPLE......" } }

        Se for válido, ele encontrará ou criará e retornará o IdentityID do usuário. Um exemplo de resposta é semelhante a:

        { "IdentityId": "us-east-1:a1b2c3d4-5678-90ab-cdef-EXAMPLE22222" }
      • GetCredentialsForIdentity() com o identityPoolId retornado e o mesmo mapa Logins com o id_token. O Amazon Cognito revalida a assinatura, o emissor, a expiração e o público-alvo (aud) do token de ID do grupo de usuários que IDs você registrou para esse IdP do grupo de usuários no grupo de identidades.

        POST GetCredentialsForIdentity { "IdentityId": "us-east-1:a1b2c3d4-5678-90ab-cdef-EXAMPLE22222", "Logins": { "cognito-idp.us-east-1.amazonaws.com/us-east-1_EXAMPLE123": "eyJraWQiOiJFWAMPLE......" } }

        Se válido, ele escolhe uma função do IAM (roles-in-token, regras ou padrão), liga AWS STS em seu nome e retorna AWS credenciais temporárias. Um exemplo de resposta é semelhante a:

        { "IdentityId": "us-east-1:a1b2c3d4-5678-90ab-cdef-EXAMPLE22222", "Credentials": { "AccessKeyId": "ASIAW7TIP7EJEXAMPLE", "SecretAccessKey": "wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY", "SessionToken": "IQoJb3JpZ2luX2VjEEXAMPLE......", "Expiration": "2025-08-12T14:36:17-07:00" } }
User pool authentication with basic flow

O fluxo básico fornece controle granular sobre o processo de autenticação com solicitações de API separadas para recuperação de identidade e geração de credenciais.

Usar a autenticação do grupo de usuários do Amazon Cognito com o fluxo básico do banco de identidades
  1. Na aplicação de demonstração, navegue até a seção Demonstração interativa.

  2. Selecione a guia Acesso autenticado.

  3. Selecione a guia Fluxo básico.

  4. Selecione Fazer login com grupos de usuários do Amazon Cognito.

  5. Conclua o login com seu nome de usuário e senha no login gerenciado.

  6. O grupo de usuários redireciona de volta ao URI de redirecionamento da aplicação com um código de autorização.

  7. A aplicação troca o código de autorização com o grupo de usuários por tokens web JSON.

  8. O aplicativo troca o token de ID com seu grupo de identidades por AWS credenciais temporárias

  9. A aplicação exibe o painel Resultados na interface da web.

    Após a autenticação bem-sucedida, você verá a interface da web exibindo o painel Resultados e terá duas opções para explorá-lo:

    1. Botão Exibir somente credenciais: escolha esse botão se quiser ver diretamente AWS as credenciais temporárias geradas sem os detalhes do fluxo da API.

      { "IdentityId": "us-east-1:a1b2c3d4-5678-90ab-cdef-EXAMPLE22222", "Credentials": { "AccessKeyId": "AKIAIOSFODNN7EXAMPLE", "SecretAccessKey": "wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY", "SessionToken": "IQoJb3JpZ2luX2VjEEXAMPLE......", "Expiration": "2025-08-12T13:36:17-07:00" } }
    2. Exibir botão detalhado do fluxo da API: escolha esse botão se quiser ver as solicitações da step-by-step API.

      • A aplicação conecta o usuário com um grupo de usuários do Amazon Cognito e obtém o token de ID (JWT) como artefato. Após a autenticação bem-sucedida com o grupo de usuários, seu aplicativo recebe uma OAuth resposta contendo o token de ID (JWT). Os bancos de identidades usam esse token para autenticação:

        { "id_token": "eyJraWQiOiJFWAMPLE......", "token_type": "Bearer", "expires_in": 3600 }
      • Solicitação de API GetId() com o ID do banco de identidades e um mapa Logins que inclui a chave do provedor do grupo de usuários e o token de ID como valor. O Amazon Cognito verificou que a assinatura, a expiração e o público (aud) do token de ID do grupo de usuários correspondem a um dos clientes do aplicativo IDs que você registrou para esse IdP do grupo de usuários no grupo de identidades.

        POST GetId { "AccountId": "111122223333", "IdentityPoolId": "us-east-1:1ac4a76d-1fef-48aa-83af-4224799c0b5c", "Logins": { "cognito-idp.us-east-1.amazonaws.com/us-east-1_EXAMPLE123": "eyJraWQiOiJFWAMPLE......" } }

        Se for válido, ele encontrará ou criará e retornará o IdentityID do usuário. Um exemplo de resposta é semelhante a:

        { "IdentityId": "us-east-1:a1b2c3d4-5678-90ab-cdef-EXAMPLE22222" }
      • GetOpenIdToken() com o IdentityID retornado e o mesmo mapa Logins.

        POST GetOpenIdToken { "IdentityId": "us-east-1:a1b2c3d4-5678-90ab-cdef-EXAMPLE22222", "Logins": { "cognito-idp.us-east-1.amazonaws.com/us-east-1_EXAMPLE123": "eyJraWQiOiJFWAMPLE......" } }

        Resposta:

        { "IdentityId": "us-east-1:a1b2c3d4-5678-90ab-cdef-EXAMPLE22222", "Token": "eyJraWQiOiJFWAMPLE......" }

        O que acontece nessa etapa: o Amazon Cognito emite um token de identidade web do OpenID Connect de curta duração, proveniente de cognito-identity.amazonaws.com, que representa esse IdentityId. O token inclui declarações do OIDC que AWS STS avaliam, incluindo aud (seu ID de grupo de identidade) e amr (autenticado ou não autenticado). A política de confiança do seu perfil do IAM deve exigir essas declarações.

      • AssumeRoleWithWebIdentity()- Seu aplicativo liga AWS STS diretamente para trocar o token OpenID do Amazon Cognito por credenciais temporárias AWS

        POST sts:AssumeRoleWithWebIdentity { "RoleArn": "arn:aws:iam::111122223333:role/Cognito_IdentityPoolAuth_Role", "WebIdentityToken": "eyJraWQiOiJFWAMPLE......", "RoleSessionName": "CognitoIdentityCredentials" }

        Resposta:

        { "Credentials": { "AccessKeyId": "AKIAIOSFODNN7EXAMPLE", "SecretAccessKey": "wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY", "SessionToken": "FwoGZXIvYXdzEEXAMPLE......", "Expiration": "2025-08-12T14:36:17-07:00" }, "AssumedRoleUser": { "AssumedRoleId": "AROAW7TIP7EJYEXAMPLE:CognitoIdentityCredentials", "Arn": "arn:aws:sts::111122223333:assumed-role/Cognito_IdentityPoolAuth_Role/CognitoIdentityCredentials" } }

        O que a aplicação de demonstração fez: sua aplicação enviou o token OpenID de GetOpenIdToken() para AWS STS, solicitando credenciais temporárias. O AWS STS realizou verificações de validação e emitiu credenciais:

  • Os usuários do grupo de usuários recebem AWS credenciais temporárias por meio dos grupos de identidade do Amazon Cognito.

  • Essas credenciais estão vinculadas a um perfil do IAM especificada na configuração do banco de identidades.

  • Os tokens de ID do grupo de usuários são trocados por AWS credenciais por meio do pool de identidades.

Esta etapa explora a autenticação SAML. Os usuários podem entrar com provedores de identidade corporativa que oferecem suporte ao SAML para acessar AWS os serviços. O fluxo básico com SAML não é compatível na aplicação de exemplo.

SAML authentication with enhanced flow

Esta seção mostra como você pode usar um provedor de identidade SAML para cadastrar um usuário e, usando o fluxo aprimorado, trocar a declaração de SAML em um pool de identidade do Amazon Cognito por credenciais temporárias AWS para chamar serviços. AWS

Usar a autenticação SAML com o fluxo aprimorado do banco de identidades
  1. Na aplicação de demonstração, navegue até a seção Demonstração interativa.

  2. Selecione a guia Acesso autenticado.

  3. Selecione a guia Fluxo aprimorado.

  4. Selecione Fazer login com o provedor SAML.

  5. Conclua o login com suas credenciais corporativas.

  6. O grupo de usuários redireciona de volta para o URI de redirecionamento da aplicação com uma declaração SAML.

  7. A aplicação troca o código de autorização com o grupo de usuários por tokens web JSON.

  8. O aplicativo troca a resposta SAML com seu grupo de identidades por credenciais temporárias AWS

  9. A aplicação exibe o painel Resultados na interface da web.

    Após a autenticação bem-sucedida, você verá a interface da web exibindo o painel Resultados e terá duas opções para explorá-lo:

    1. Botão Exibir somente credenciais: escolha esse botão se quiser ver diretamente AWS as credenciais temporárias geradas sem os detalhes do fluxo da API.

      { "IdentityId": "us-east-1:a1b2c3d4-5678-90ab-cdef-EXAMPLE22222", "Credentials": { "AccessKeyId": "AKIAIOSFODNN7EXAMPLE", "SecretAccessKey": "wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY", "SessionToken": "IQoJb3JpZ2luX2VjEEXAMPLE......", "Expiration": "2025-08-12T13:36:17-07:00" } }
    2. Exibir botão detalhado do fluxo da API: escolha esse botão se quiser ver as solicitações da step-by-step API.

      • A aplicação conecta o usuário com um IdP SAML e obtém a resposta SAML. Os bancos de identidades aceitam declarações SAML de provedores corporativos usando o ARN do provedor SAML como chave:

        Provedor de identidades Chave do provedor do Cognito Finalidade
        Provedor SAML arn:aws:iam::111122223333:saml-provider/EXAMPLE Declarações de SAML da empresa IdPs

        Após a autenticação bem-sucedida com o provedor SAML, a aplicação recebe uma resposta SAML via HTTP POST para o URL de retorno de chamada:

        { "saml_response": "PD94bWwgdmVyc2lvbj0iMS4wIiBFWAMPLE...", "provider_arn": "arn:aws:iam::111122223333:saml-provider/EXAMPLE", "status": "Authentication successful" }
      • Solicitação de API GetId() com o ID do banco de identidades e um mapa Logins contendo o ARN e a declaração do provedor SAML.

        POST GetId { "AccountId": "111122223333", "IdentityPoolId": "us-east-1:a1b2c3d4-5678-90ab-cdef-EXAMPLE11111", "Logins": { "arn:aws:iam::111122223333:saml-provider/EXAMPLE": "PD94bWwgdmVyc2lvbj0iMS4wIiBFWAMPLE..." } }

        Resposta:

        { "IdentityId": "us-east-1:a1b2c3d4-5678-90ab-cdef-EXAMPLE22222" }
      • GetCredentialsForIdentity() com o IdentityID retornado e o mesmo mapa Logins.

        POST GetCredentialsForIdentity { "IdentityId": "us-east-1:a1b2c3d4-5678-90ab-cdef-EXAMPLE22222", "Logins": { "arn:aws:iam::111122223333:saml-provider/EXAMPLE": "PD94bWwgdmVyc2lvbj0iMS4wIiBFWAMPLE..." } }

        Resposta:

        { "IdentityId": "us-east-1:a1b2c3d4-5678-90ab-cdef-EXAMPLE22222", "Credentials": { "AccessKeyId": "AKIAIOSFODNN7EXAMPLE", "SecretAccessKey": "wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY", "SessionToken": "IQoJb3JpZ2luX2VjEEXAMPLE......" } }

O que aconteceu: o Amazon Cognito validou a declaração do SAML em relação ao provedor configurado, escolheu uma função do IAM com base nos atributos ou regras do SAML e ligou em seu nome. AWS STS

Noções básicas sobre o acesso SAML

  • Os usuários corporativos recebem AWS credenciais temporárias dos grupos de identidade do Amazon Cognito após se autenticarem com seu provedor de SAML.

  • Cada usuário autenticado recebe um ID de identidade exclusivo que persiste em todas as sessões.

  • Essas credenciais estão vinculadas a um perfil do IAM projetado especificamente para acesso autenticado, fornecendo permissões mais amplas do que o acesso de convidado.

  • As asserções do SAML são trocadas por AWS credenciais, mantendo a identidade do usuário e os atributos da empresa.

Esta etapa explora a autenticação OIDC com provedores de identidades corporativos. Os usuários podem fazer login por meio do provedor de identidade corporativa da organização (como Azure AD, Okta ou Google Workspace) para acessar AWS os serviços. Continue a leitura se quiser informações sobre como integrar a autenticação baseada em padrões aos recursos da AWS . Após implementar a autenticação OIDC, você aprenderá como aproveitar as declarações OIDC para um controle de acesso refinado.

OIDC authentication with enhanced flow

Esta seção mostra como você pode usar um provedor de identidade do OIDC para cadastrar um usuário e, usando o fluxo aprimorado, trocar o token do OIDC em um pool de identidade do Amazon Cognito por credenciais temporárias para chamar serviços. AWS AWS

Usar o login OIDC com o fluxo aprimorado do banco de identidades
  1. Na aplicação de demonstração, navegue até a seção Demonstração interativa.

  2. Selecione a guia Acesso autenticado.

  3. Selecione a guia Fluxo aprimorado.

  4. Selecione Fazer login com o provedor OIDC.

  5. Conclua o login com suas credenciais corporativas.

  6. O provedor OIDC redireciona de volta à aplicação com um código de autorização.

  7. A aplicação troca o código de autorização com o grupo de usuários por tokens web JSON.

  8. O aplicativo envia o token OIDC para seu grupo de identidades e recupera credenciais temporárias. AWS

  9. A aplicação exibe o painel Resultados na interface da web.

    Após a autenticação bem-sucedida, você verá a interface da web exibindo o painel Resultados e terá duas opções para explorá-lo:

    1. Botão Exibir somente credenciais: escolha esse botão se quiser ver diretamente AWS as credenciais temporárias geradas sem os detalhes do fluxo da API.

      { "IdentityId": "us-east-1:a1b2c3d4-5678-90ab-cdef-EXAMPLE22222", "Credentials": { "AccessKeyId": "AKIAIOSFODNN7EXAMPLE", "SecretAccessKey": "wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY", "SessionToken": "IQoJb3JpZ2luX2VjEEXAMPLE......", "Expiration": "2025-08-12T13:36:17-07:00" } }
    2. Exibir botão detalhado do fluxo da API: escolha esse botão se quiser ver as solicitações da step-by-step API.

      • A aplicação conecta o usuário com um IdP OIDC e obtém o token de ID. Os bancos de identidades aceitam tokens OIDC de provedores corporativos:

        Provedor de identidades Chave do provedor do Cognito Finalidade
        Provedor OIDC example-provider.com/oauth2/default Tokens de ID OIDC da empresa IdPs

        Após a autenticação bem-sucedida com o provedor do OIDC, seu aplicativo recebe uma resposta OAuth 2.0 contendo os tokens:

        { "token_type": "Bearer", "expires_in": 3600, "access_token": "eyJraWQiOiJFWAMPLE......", "scope": "email openid profile", "id_token": "eyJraWQiOiJFWAMPLE......" }
      • Solicitação de API GetId() com o ID do banco de identidades e um mapa Logins contendo o token do provedor OIDC.

        POST GetId { "AccountId": "111122223333", "IdentityPoolId": "us-east-1:a1b2c3d4-5678-90ab-cdef-EXAMPLE11111", "Logins": { "example-provider.com/oauth2/default": "eyJraWQiOiJFWAMPLE......" } }

        Resposta:

        { "IdentityId": "us-east-1:a1b2c3d4-5678-90ab-cdef-EXAMPLE22222" }
      • GetCredentialsForIdentity() com o IdentityID retornado e o mesmo mapa Logins.

        POST GetCredentialsForIdentity { "IdentityId": "us-east-1:a1b2c3d4-5678-90ab-cdef-EXAMPLE22222", "Logins": { "example-provider.com/oauth2/default": "eyJraWQiOiJFWAMPLE......" } }

        Resposta:

        { "IdentityId": "us-east-1:a1b2c3d4-5678-90ab-cdef-EXAMPLE22222", "Credentials": { "AccessKeyId": "AKIAIOSFODNN7EXAMPLE", "SecretAccessKey": "wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY", "SessionToken": "IQoJb3JpZ2luX2VjEEXAMPLE......" } }

O que aconteceu: o Amazon Cognito validou o token OIDC em relação ao provedor configurado, escolheu uma função do IAM (padrão, baseada em declarações ou mapeada por regras) e ligou em seu nome. AWS STS

OIDC authentication with basic flow

Esta seção mostra como você pode usar um provedor de identidade do OIDC para cadastrar um usuário e, usando o fluxo básico, trocar o token do OIDC em um pool de identidade do Amazon Cognito por credenciais temporárias para chamar serviços. AWS AWS

Usar o login OIDC com o fluxo básico do banco de identidades
  1. Na aplicação de demonstração, navegue até a seção Demonstração interativa.

  2. Selecione a guia Acesso autenticado.

  3. Selecione a guia Fluxo básico.

  4. Selecione Fazer login com o provedor OIDC.

  5. Conclua o login com suas credenciais corporativas.

  6. O provedor OIDC redireciona de volta à aplicação com um código de autorização.

  7. A aplicação troca o código de autorização com o grupo de usuários por tokens web JSON.

  8. O aplicativo envia o token OIDC para seu grupo de identidades e recupera credenciais temporárias. AWS

  9. A aplicação exibe o painel Resultados na interface da web.

    Após a autenticação bem-sucedida, você verá a interface da web exibindo o painel Resultados e terá duas opções para explorá-lo:

    1. Botão Exibir somente credenciais: escolha esse botão se quiser ver diretamente AWS as credenciais temporárias geradas sem os detalhes do fluxo da API.

      { "IdentityId": "us-east-1:a1b2c3d4-5678-90ab-cdef-EXAMPLE22222", "Credentials": { "AccessKeyId": "AKIAIOSFODNN7EXAMPLE", "SecretAccessKey": "wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY", "SessionToken": "IQoJb3JpZ2luX2VjEEXAMPLE......", "Expiration": "2025-08-12T13:36:17-07:00" } }
    2. Exibir botão detalhado do fluxo da API: escolha esse botão se quiser ver as solicitações da step-by-step API.

      • A aplicação conecta o usuário com um IdP OIDC e obtém o token de ID. Os bancos de identidades aceitam tokens OIDC de provedores corporativos:

        Provedor de identidades Chave do provedor do Cognito Finalidade
        Provedor OIDC example-provider.com/oauth2/default Tokens de ID OIDC da empresa IdPs

        Após a autenticação bem-sucedida com o provedor do OIDC, seu aplicativo recebe uma resposta OAuth 2.0 contendo os tokens:

        { "token_type": "Bearer", "expires_in": 3600, "access_token": "eyJraWQiOiJFWAMPLE......", "scope": "openid email profile", "id_token": "eyJraWQiOiJFWAMPLE......" }
      • Solicitação de API GetId() com o ID do banco de identidades e um mapa Logins contendo o token do provedor OIDC.

        POST GetId { "IdentityPoolId": "us-east-1:a1b2c3d4-5678-90ab-cdef-EXAMPLE11111", "Logins": { "example-provider.com/oauth2/default": "eyJraWQiOiJFWAMPLE......" } }

        Resposta:

        { "IdentityId": "us-east-1:a1b2c3d4-5678-90ab-cdef-EXAMPLE22222" }
      • GetOpenIdToken() com o IdentityID retornado e o mesmo mapa Logins.

        POST GetOpenIdToken { "IdentityId": "us-east-1:a1b2c3d4-5678-90ab-cdef-EXAMPLE22222", "Logins": { "example-provider.com/oauth2/default": "eyJraWQiOiJFWAMPLE......" } }

        Resposta:

        { "IdentityId": "us-east-1:a1b2c3d4-5678-90ab-cdef-EXAMPLE22222", "Token": "eyJraWQiOiJFWAMPLE......" }
      • AssumeRoleWithWebIdentity() com o token OpenID

        POST AssumeRoleWithWebIdentity { "RoleArn": "arn:aws:iam::111122223333:role/Cognito_IdentityPoolAuth_Role", "WebIdentityToken": "eyJraWQiOiJFWAMPLE......" }

        Resposta:

        { "Credentials": { "AccessKeyId": "AKIAIOSFODNN7EXAMPLE", "SecretAccessKey": "wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY", "SessionToken": "FwoGZXIvYXdzEEXAMPLE......", "Expiration": "2025-08-12T14:36:17-07:00" } }

O que aconteceu: o Amazon Cognito validou o token OIDC em relação ao provedor configurado e retornou um token OpenID. O aplicativo ligou AWS STS diretamente para assumir a função apropriada do IAM e recebeu credenciais de curta duração.

Noções básicas sobre a autenticação OIDC

  • Baseado em padrões: o OIDC é baseado em OAuth 2.0 e fornece informações de identidade padronizadas.

  • Validação de tokens: os tokens de ID podem ser validados quanto à autenticidade.

  • Acesso baseado em declarações: as declarações OIDC podem ser usadas para mapeamento de perfis e controle de acesso.

  • Integração corporativa: funciona com provedores de identidades corporativos populares.

Próximas etapas

Agora que você configurou e explorou a aplicação de demonstração, você pode:

  • Configurar provedores de identidades adicionais que você ainda não testou.

  • Experimentar a autenticação avançada e básica para entender suas diferenças.

  • Personalizar a demonstração para seu próprio caso de uso.

  • Integrar os bancos de identidades do Amazon Cognito em suas próprias aplicações.