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 bancos de identidades do Amazon Cognito é federar usuários de vários sistemas de login e fornecer credenciais temporárias da AWS e com acesso limitado diretamente ao cliente. Isso elimina a necessidade de criar um agente de credenciais para obter permissões para acessar os recursos da AWS. 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á uma aplicação web na qual poderá obter credenciais temporárias autenticadas e de convidado nos fluxos de autenticação avançados e básicos com provedores de identidades (IdPs) compatíveis em bancos de identidades. Se você já tem experiência em desenvolvimento web, baixe a aplicação de exemplo no GitHub.
Baixe a aplicação de exemplo no 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
-
- Implementação do acesso de convidado (não autenticado)
-
- Integração com provedores de identidades compatíveis
-
-
IdPs sociais (Facebook, Amazon, Twitter, Apple e Google) para acesso do consumidor
-
IdPs corporativos (por meio do OpenID Connect ou SAML) para usuários corporativos
-
Grupos de usuários do Amazon Cognito
- Gerenciamento de credenciais da AWS
-
Após configurar a aplicação no servidor web de desenvolvimento e acessá-la em um navegador, você verá as opções a seguir.
Pré-requisitos
Antes de começar, você precisará configurar os recursos a seguir.
-
Uma conta da AWS com acesso ao Amazon Cognito. Se você não tem uma conta da AWS, siga as instruções em Começando com AWS.
-
Python 3.8 ou posterior instalado na sua máquina de desenvolvimento.
-
Acesso ao GitHub.
-
Credenciais da AWS configuradas com permissões para fazer solicitações autenticadas às APIs do Amazon Cognito. Essas credenciais são obrigatórias para a autenticação do desenvolvedor.
Para obter mais informações sobre a implementação de credenciais da AWS e federação de bancos de identidades em seu SDK específico, consulte Como obter credenciais.
Configuração do provedor de autenticação
Para obter melhores resultados com essa aplicação, configure e integre um ou mais provedores de identidade (IdPs) de terceiros ou grupos de usuários do Amazon Cognito ao seu banco de identidades 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.
- Grupos de usuários do Amazon Cognito
-
- Provedores de identidade social
-
- Provedores OpenID Connect (OIDC)
-
- Provedores SAML
-
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
-
Abra uma janela do terminal.
-
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
-
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
-
Abra o console do Amazon Cognito.
-
No menu de navegação à esquerda, selecione Grupos de identidades. Escolha um banco de identidades existente ou crie um.
-
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.
-
Em Acesso de usuário, configure todos os provedores de identidades que deseja configurar.
-
Em Propriedades do grupo de identidades, habilite Autenticação básica (clássica).
-
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.
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
-
Abra uma linha de comando em python/example_code/cognito/scenarios/identity_pools_example_demo/web em seu clone aws-doc-sdk-examples.
-
Crie um arquivo .env copiando o arquivo de ambiente de exemplo.
cp .env.example .env
-
Abra o arquivo .env em um editor de textos. Substitua os valores de exemplo no arquivo pelos seus próprios valores de configuração.
-
Instale as dependências de backend.
pip install -r requirements.txt
-
Inicie o servidor de backend:
cd backend
python oauth_server.py
-
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
-
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 essa demonstração, você aprenderá como os bancos de identidades funcionam com vários provedores de identidades para fornecer credenciais temporárias da AWS aos usuários da sua aplicação.
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 credenciais da AWS aos usuários que ainda não se autenticaram.
- Acesso autenticado
-
Troque tokens do provedor de identidades por credenciais da AWS 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 credenciais temporárias da AWS para usuários não autenticados (convidados) por meio do recurso de acesso de convidado do banco 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 do provedor de identidades (como tokens OAuth 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. Após implementar o acesso de convidado, você aprenderá a fornecer credenciais da AWS com segurança a usuários anônimos e a entender as diferenças entre os dois fluxos de autenticação.
O acesso não autenticado pode emitir credenciais para qualquer pessoa com acesso à Internet, portanto, é mais adequado para recursos da AWS que exigem segurança mínima, como APIs públicas e ativos 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
-
Na aplicação de demonstração, navegue até a seção Demonstração interativa.
-
Selecione a guia Acesso de convidado.
-
Selecione a guia Fluxo aprimorado.
-
Clique em Testar acesso de convidado.
-
A aplicação obtém credenciais temporárias da AWS de seus bancos de identidades sem solicitações adicionais de autenticação.
-
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:
-
Botão Exibir somente credenciais: clique neste botão se quiser ver diretamente as credenciais temporárias da AWS 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"
}
}
-
Botão Exibir fluxo detalhado da API: clique neste botão se quiser ver as solicitações de API passo a passo.
-
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"
}
O Cognito valida o acesso de convidado, assume a função não autenticada internamente com o AWS STS e retorna uma credencial temporária da AWS. (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
-
Na aplicação de demonstração, navegue até a seção Demonstração interativa.
-
Selecione a guia Acesso de convidado.
-
Selecione a guia Fluxo básico.
-
Clique em Testar acesso de convidado.
-
A aplicação obtém credenciais temporárias da AWS de seus bancos de identidades sem solicitações adicionais de autenticação.
-
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.
-
Botão Exibir somente credenciais: clique neste botão se quiser ver diretamente as credenciais temporárias da AWS 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"
}
}
-
Botão Exibir fluxo detalhado da API: clique neste botão se quiser ver as solicitações de API passo a passo.
-
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 OIDC que o AWS STS avalia, incluindo aud (ID do banco de identidades) e amr (autenticado ou não autenticado). A política de confiança do seu perfil do IAM deve exigir essas declarações.
-
AssumeRoleWithWebIdentity(): sua aplicação chama o AWS STS diretamente para trocar o token OpenID do Amazon Cognito por credenciais temporárias da 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 credenciais padrão da AWS, mas com permissões limitadas definidas pelo perfil do IAM não autenticado do seu banco de identidades. Você pode usá-los com qualquer AWS SDK ou AWS CLI. Para obter mais informações sobre como configurar SDKs da AWS com credenciais, consulte Provedores de credenciais padronizados no Guia de referência de SDKs e ferramentas da AWS.
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 por meio de um provedor de identidades (IdP) social, como Google, Facebook e Amazon, e depois trocar esse token de IdP por credenciais temporárias da 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, ele confia em IdPs externos para autenticar o usuário e se concentra em autorizar esse usuário já autenticado a chamar diretamente os serviços da AWS, fornecendo credenciais para perfis 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
-
Na aplicação de demonstração, navegue até a seção Demonstração interativa.
-
Selecione a guia Acesso autenticado.
-
Selecione a guia Fluxo aprimorado.
-
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.
-
Faça login e concorde em compartilhar dados do usuário com a aplicação.
-
O provedor redireciona de volta para o URI de redirecionamento da aplicação.
-
A aplicação envia o token do provedor para o banco de identidades e recupera credenciais temporárias da AWS.
-
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:
-
Botão Exibir somente credenciais: clique neste botão se quiser ver diretamente as credenciais temporárias da AWS 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"
}
}
-
Botão Exibir fluxo detalhado da API: clique neste botão se quiser ver as solicitações de API passo a passo.
-
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 |
Tokens OAuth 2.0 do login do Google |
| Facebook |
graph.facebook.com |
Tokens de acesso do login do Facebook |
| Amazon |
www.amazon.com |
Tokens OAuth do login com a Amazon |
Após a autenticação bem-sucedida com o provedor social, sua aplicação recebe uma resposta OAuth 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 um perfil do IAM com base na configuração do provedor e chamou o 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 identidades social para conectar um usuário e, usando o fluxo básico, trocar o token do provedor em um banco de identidades do Amazon Cognito por credenciais temporárias para chamar serviços da AWS.
Usar o login social com o fluxo básico na aplicação de exemplo
-
Na aplicação de demonstração, navegue até a seção Demonstração interativa.
-
Selecione a guia Acesso autenticado.
-
Selecione a guia Fluxo básico.
-
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.
-
Faça login e concorde em compartilhar dados do usuário com a aplicação.
-
O provedor redireciona de volta para o URI de redirecionamento da aplicação.
-
A aplicação envia o token do provedor para o banco de identidades e recupera credenciais temporárias da AWS.
-
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:
-
Botão Exibir somente credenciais: clique neste botão se quiser ver diretamente as credenciais temporárias da AWS 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"
}
}
-
Botão Exibir fluxo detalhado da API: clique neste botão se quiser ver as solicitações de API passo a passo.
-
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 |
Tokens OAuth 2.0 do login do Google |
| Facebook |
graph.facebook.com |
Tokens de acesso do login do Facebook |
| Amazon |
www.amazon.com |
Tokens OAuth do login com a Amazon |
Após a autenticação bem-sucedida com o provedor social, sua aplicação recebe uma resposta OAuth 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. A aplicação chamou o AWS STS diretamente para assumir um perfil do IAM e receber credenciais temporárias.
Noções básicas sobre o acesso social
-
Os usuários sociais recebem credenciais temporárias da AWS por meio dos bancos de identidades 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 credenciais da AWS, 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
-
Na aplicação de demonstração, navegue até a seção Demonstração interativa.
-
Selecione a guia Acesso autenticado.
-
Selecione a guia Fluxo aprimorado.
-
Selecione Fazer login com grupos de usuários do Amazon Cognito.
-
Conclua o login com seu nome de usuário e senha no login gerenciado.
-
O grupo de usuários redireciona de volta ao URI de redirecionamento da aplicação com um código de autorização.
-
A aplicação troca o código de autorização com o grupo de usuários por tokens web JSON.
-
A aplicação troca o token de ID com o banco de identidades por credenciais temporárias da AWS.
-
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:
-
Botão Exibir somente credenciais: clique neste botão se quiser ver diretamente as credenciais temporárias da AWS 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"
}
}
-
Botão Exibir fluxo detalhado da API: clique neste botão se quiser ver as solicitações de API passo a passo.
-
A aplicação conecta o usuário com o Amazon Cognito. Após a autenticação bem-sucedida com o grupo de usuários, a aplicação 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, a aplicação 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-alvo (aud) do token de ID do grupo de usuários correspondem a um dos IDs do cliente da aplicação que você registrou para esse IdP de grupo de usuários no banco 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 correspondem a um dos IDs do cliente da aplicação que você registrou para esse IdP de grupo de usuários no banco 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 for válido, ele escolherá um perfil do IAM (perfis no token, regras ou padrão), chamará o AWS STS em seu nome e retornará credenciais temporárias da AWS. 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
-
Na aplicação de demonstração, navegue até a seção Demonstração interativa.
-
Selecione a guia Acesso autenticado.
-
Selecione a guia Fluxo básico.
-
Selecione Fazer login com grupos de usuários do Amazon Cognito.
-
Conclua o login com seu nome de usuário e senha no login gerenciado.
-
O grupo de usuários redireciona de volta ao URI de redirecionamento da aplicação com um código de autorização.
-
A aplicação troca o código de autorização com o grupo de usuários por tokens web JSON.
-
A aplicação troca o token de ID com o banco de identidades por credenciais temporárias da AWS.
-
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:
-
Botão Exibir somente credenciais: clique neste botão se quiser ver diretamente as credenciais temporárias da AWS 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"
}
}
-
Botão Exibir fluxo detalhado da API: clique neste botão se quiser ver as solicitações de API passo a passo.
-
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, a aplicação recebe uma resposta OAuth 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-alvo (aud) do token de ID do grupo de usuários correspondem a um dos IDs do cliente da aplicação que você registrou para esse IdP do grupo de usuários no banco 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 OIDC que o AWS STS avalia, incluindo aud (ID do banco de identidades) e amr (autenticado ou não autenticado). A política de confiança do seu perfil do IAM deve exigir essas declarações.
-
AssumeRoleWithWebIdentity(): sua aplicação chama o AWS STS diretamente para trocar o token OpenID do Amazon Cognito por credenciais temporárias da 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 credenciais temporárias da AWS por meio dos bancos de identidades do Amazon Cognito.
-
Essas credenciais estão vinculadas a um perfil do IAM especificada na configuração do banco de identidades.
-
Tokens de ID do grupo de usuários são trocados por credenciais da AWS por meio do banco de identidades.
Esta etapa explora a autenticação SAML. Os usuários podem fazer login com provedores de identidades corporativos compatíveis com SAML para acessar os serviços da AWS. 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 identidades SAML para conectar um usuário e, usando o fluxo aprimorado, trocar a declaração SAML em um banco de identidades do Amazon Cognito por credenciais temporárias da AWS para chamar serviços da AWS.
Usar a autenticação SAML com o fluxo aprimorado do banco de identidades
-
Na aplicação de demonstração, navegue até a seção Demonstração interativa.
-
Selecione a guia Acesso autenticado.
-
Selecione a guia Fluxo aprimorado.
-
Selecione Fazer login com o provedor SAML.
-
Conclua o login com suas credenciais corporativas.
-
O grupo de usuários redireciona de volta para o URI de redirecionamento da aplicação com uma declaração SAML.
-
A aplicação troca o código de autorização com o grupo de usuários por tokens web JSON.
-
A aplicação troca a resposta SAML com o banco de identidades por credenciais temporárias da AWS.
-
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:
-
Botão Exibir somente credenciais: clique neste botão se quiser ver diretamente as credenciais temporárias da AWS 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"
}
}
-
Botão Exibir fluxo detalhado da API: clique neste botão se quiser ver as solicitações de API passo a passo.
-
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 SAML de IdPs corporativos |
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 SAML em relação ao provedor configurado, escolheu um perfil do IAM com base em regras ou atributos SAML e chamou o AWS STS em seu nome.
Noções básicas sobre o acesso SAML
-
Os usuários corporativos recebem credenciais temporárias da AWS dos bancos de identidades do Amazon Cognito após se autenticarem com seu provedor 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 declarações SAML são trocadas por credenciais da AWS, mantendo a identidade do usuário e os atributos corporativos.
Esta etapa explora a autenticação OIDC com provedores de identidades corporativos. Os usuários podem fazer login por meio do provedor de identidades corporativo da organização (como Azure AD, Okta ou Google Workspace) para acessar os serviços da AWS. 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 identidades OIDC para conectar um usuário e, usando o fluxo aprimorado, trocar o token OIDC em um banco de identidades do Amazon Cognito por credenciais temporárias da AWS para chamar serviços da AWS.
Usar o login OIDC com o fluxo aprimorado do banco de identidades
-
Na aplicação de demonstração, navegue até a seção Demonstração interativa.
-
Selecione a guia Acesso autenticado.
-
Selecione a guia Fluxo aprimorado.
-
Selecione Fazer login com o provedor OIDC.
-
Conclua o login com suas credenciais corporativas.
-
O provedor OIDC redireciona de volta à aplicação com um código de autorização.
-
A aplicação troca o código de autorização com o grupo de usuários por tokens web JSON.
-
A aplicação envia o token OIDC para o banco de identidades e recupera credenciais temporárias da AWS.
-
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:
-
Botão Exibir somente credenciais: clique neste botão se quiser ver diretamente as credenciais temporárias da AWS 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"
}
}
-
Botão Exibir fluxo detalhado da API: clique neste botão se quiser ver as solicitações de API passo a passo.
-
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 de IdPs corporativos |
Após a autenticação bem-sucedida com o provedor OIDC, a aplicação 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 um perfil do IAM (padrão, baseado em declarações ou mapeado por regras) e chamou o AWS STS em seu nome.
- OIDC authentication with basic flow
-
Esta seção mostra como você pode usar um provedor de identidades do OIDC para conectar um usuário e, usando o fluxo básico, trocar o token OIDC em um banco de identidades do Amazon Cognito por credenciais temporárias da AWS para chamar serviços da AWS.
Usar o login OIDC com o fluxo básico do banco de identidades
-
Na aplicação de demonstração, navegue até a seção Demonstração interativa.
-
Selecione a guia Acesso autenticado.
-
Selecione a guia Fluxo básico.
-
Selecione Fazer login com o provedor OIDC.
-
Conclua o login com suas credenciais corporativas.
-
O provedor OIDC redireciona de volta à aplicação com um código de autorização.
-
A aplicação troca o código de autorização com o grupo de usuários por tokens web JSON.
-
A aplicação envia o token OIDC para o banco de identidades e recupera credenciais temporárias da AWS.
-
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:
-
Botão Exibir somente credenciais: clique neste botão se quiser ver diretamente as credenciais temporárias da AWS 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"
}
}
-
Botão Exibir fluxo detalhado da API: clique neste botão se quiser ver as solicitações de API passo a passo.
-
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 de IdPs corporativos |
Após a autenticação bem-sucedida com o provedor OIDC, a aplicação 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. A aplicação chamou o AWS STS diretamente para assumir o perfil do IAM apropriado e recebeu credenciais de curta duração.
Noções básicas sobre a autenticação OIDC
-
Baseada em padrões: o OIDC é baseado no 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.