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á.
Exemplo de aplicativo para grupos 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 mídia social e acessem ativos de aplicativos do Amazon S3 para seu aplicativo móvel. Os grupos 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
Este exemplo de aplicativo demonstra os seguintes recursos dos grupos de identidade do Amazon Cognito:
- Fluxos de autenticação em grupos de identidades
-
- Implementando o acesso de convidado (não autenticado)
-
- Integração com provedores de identidade 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
-
Depois de configurar o aplicativo em seu servidor web de desenvolvimento e acessá-lo em um navegador, você verá as seguintes opções.
Pré-requisitos
Antes de começar, você precisará configurar os seguintes recursos.
-
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 em 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 necessá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. Depois de concluir os pré-requisitos e antes de executar esse aplicativo de demonstração, escolha quais provedores de identidade configurar. O console do Amazon Cognito orienta você no processo de configuração de grupos de identidade e provedores.
- Grupos de usuários do Amazon Cognito
-
- Provedores de identidade social
-
- Provedores OpenID Connect (OIDC)
-
- Provedores SAML
-
Para esse aplicativo de demonstração, você não precisa configurar todos os provedores de identidade compatíveis. Você pode começar com um que corresponda ao seu caso de uso. Cada link fornece instruções detalhadas de configuração.
Implemente o aplicativo de demonstração
Clone o repositório
-
Abra uma janela do terminal.
-
Clone o aws-doc-sdk-examples repositório ou recupere essa 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 pool de identidade do Amazon Cognito para seu aplicativo, siga as instruções em. Visão geral do console de bancos de identidades
Para configurar um pool de identidades para o aplicativo de demonstração
-
Abra o console do Amazon Cognito.
-
No menu de navegação à esquerda, escolha Pools de identidades. Escolha um grupo de identidades existente ou crie um novo.
-
Em Acesso do usuário, habilite o acesso autenticado e o acesso de convidado. Configure uma função do IAM nova ou existente e atribua a ela as permissões que você deseja conceder a cada tipo de usuário.
-
Em Acesso do usuário, configure todos os provedores de identidade que você deseja configurar.
-
Em Propriedades do pool de identidades, ative a autenticação básica (clássica).
-
Mantenha seu navegador aberto no console do seu pool de identidades. Você usará o ID do grupo de identidades e outras informações de configuração na configuração do seu aplicativo.
As etapas a seguir orientam você na configuração inicial do seu aplicativo de demonstração.
Para configurar o aplicativo de demonstração
-
Abra uma linha de comando python/example_code/cognito/scenarios/identity_pools_example_demo/web em seu aws-doc-sdk-examples clone.
-
Crie um .env arquivo 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 dependências de back-end.
pip install -r requirements.txt
-
Inicie o servidor de back-end:
cd backend
python oauth_server.py
-
Abra uma nova janela de terminal, navegue até o diretório do projeto e inicie o servidor front-end:
cd frontend
python -m http.server 8001
-
Abra seu navegador no aplicativo em http://localhost:8001. Seu navegador exibirá a interface do aplicativo de demonstração, pronta para testar a autenticação de grupos de identidades.
Explore os métodos de autenticação em seu pool de identidades
Esta seção orienta você pelos fluxos de autenticação básicos e aprimorados usando o aplicativo de demonstração de grupos de identidade 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 de demonstração interativa do aplicativo de exemplo, primeiro você escolherá entre dois tipos de acesso suportados pelos grupos 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 identidade dentre aqueles que você configurou em seu .env arquivo.
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. No aplicativo de demonstração, você testará fluxos avançados e básicos para ver como os grupos 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 lendo se estiver procurando informações sobre como fornecer AWS
acesso limitado aos 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.
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 seu grupo de identidades com o acesso de convidado ativado e garanta que as políticas adequadas do IAM estejam em vigor para limitar as permissões.
- Guest access with enhanced flow
-
O fluxo aprimorado é uma abordagem simplificada para obter AWS
credenciais para usuários não autenticados com duas solicitações de API.
Para testar o acesso de convidados com o fluxo aprimorado
-
No aplicativo de demonstração, navegue até a seção Demonstração interativa
-
Escolha a guia Acesso de convidado.
-
Escolha a guia Fluxo aprimorado.
-
Escolha Testar acesso de convidado.
-
O aplicativo obtém AWS credenciais temporárias de seus grupos 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á-las:
-
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"
}
}
-
Exibir botão detalhado do fluxo da API: escolha esse botão se quiser ver as solicitações da step-by-step API.
-
GetId()Solicitação de API com seuidentityPoolId. Não são necessários tokens de autenticação para acesso de convidados
{
"IdentityPoolId": "us-east-1:a1b2c3d4-5678-90ab-cdef-EXAMPLE11111"
}
Se válido, ele encontra ou cria e retorna o do usuárioIdentityID. Um exemplo de resposta se parece com isso:
{
"IdentityId": "us-east-1:a1b2c3d4-5678-90ab-cdef-EXAMPLE11111"
}
-
GetCredentialsForIdentity()com os devolvidosidentityPoolId.
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 nesta chamada; a confiança na função deve permitircognito-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.
Para testar o acesso de convidados com o fluxo básico
-
No aplicativo de demonstração, navegue até a seção Demonstração interativa
-
Escolha a guia Acesso de convidado.
-
Escolha a guia Fluxo básico.
-
Escolha Testar acesso de convidado.
-
O aplicativo obtém AWS credenciais temporárias de seus grupos 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á-las.
-
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"
}
}
-
Exibir botão detalhado do fluxo da API: escolha esse botão se quiser ver as solicitações da step-by-step API.
-
GetId()Solicitação de API com seu ID do grupo de identidades. Não são necessários tokens de autenticação para o acesso de convidados.
POST GetId
{
"IdentityPoolId": "us-east-1:a1b2c3d4-5678-90ab-cdef-EXAMPLE11111"
}
Se válido, ele encontra ou cria e retorna o do usuárioIdentityID. Um exemplo de resposta se parece com isso:
{
"IdentityId": "us-east-1:a1b2c3d4-5678-90ab-cdef-EXAMPLE22222"
}
-
GetOpenIdToken()com o Logins mapa devolvido IdentityID e o mesmo
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 nesta etapa: o Amazon Cognito emite um token de identidade web OpenID Connect de curta duração de cognito-identity.amazonaws.com que representa isso. 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 da sua função 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 nesta etapa: Uma vez validado: retorna as credenciais temporárias AWS
Use 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 são uma lista completa, mas mostram maneiras comuns pelas quais o recurso de convidado de um grupo 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 de 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 identidade social com grupos de identidade 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 federado de identidades. 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 é suportada por grupos de identidades, mas não é suportada no aplicativo de exemplo.
O pool de identidades em si não é um diretório de usuários. Ele não armazena senhas ou 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 identidade social para cadastrar um usuário e, usando o fluxo aprimorado, trocar o token do provedor em um pool de identidade do Amazon Cognito por credenciais temporárias para solicitar recursos. AWS
Use o login social com o fluxo aprimorado no aplicativo de exemplo
-
No aplicativo de demonstração, navegue até a seção Demonstração interativa
-
Escolha a guia Acesso autenticado.
-
Escolha a guia Fluxo aprimorado.
-
Escolha um provedor social compatível que você configurou, por exemplo, Faça login com o Google, Faça login com o Facebook ou Faça login com a Amazon.
-
Faça login e concorde em compartilhar os dados do usuário com o aplicativo.
-
O provedor redireciona de volta para o URI de redirecionamento do aplicativo
-
O aplicativo envia o token do provedor para seu grupo de identidades e recupera credenciais temporárias AWS
-
O aplicativo 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á-las:
-
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"
}
}
-
Exibir botão detalhado do fluxo da API: escolha esse botão se quiser ver as solicitações da step-by-step API.
-
O aplicativo faz login do usuário com um IdP social e obtém o token do provedor. Os grupos de identidade aceitam esses artefatos de provedores sociais:
| Provedor de identidades |
Chave do provedor Cognito |
Finalidade |
| Google |
accounts.google.com |
OAuth 2.0 tokens do Google Sign-In |
| Facebook |
graph.facebook.com |
Acesse tokens a partir 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......"
}
-
GetId()Solicitação de API com seu ID do grupo de identidade e um Logins mapa contendo seu token de 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 Logins mapa devolvido IdentityID e o mesmo
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 grupo 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
Use o login social com o fluxo básico no aplicativo de exemplo
-
No aplicativo de demonstração, navegue até a seção Demonstração interativa
-
Escolha a guia Acesso autenticado.
-
Escolha a guia Fluxo básico.
-
Escolha um provedor social compatível que você configurou, por exemplo, Faça login com o Google, Faça login com o Facebook ou Faça login com a Amazon.
-
Faça login e concorde em compartilhar os dados do usuário com o aplicativo.
-
O provedor redireciona de volta para o URI de redirecionamento do aplicativo
-
O aplicativo envia o token do provedor para seu grupo de identidades e recupera credenciais temporárias AWS
-
O aplicativo 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á-las:
-
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"
}
}
-
Exibir botão detalhado do fluxo da API: escolha esse botão se quiser ver as solicitações da step-by-step API.
-
O aplicativo faz login do usuário com um IdP social e obtém o token do provedor. Os grupos de identidade aceitam esses artefatos de provedores sociais:
| Provedor de identidades |
Chave do provedor Cognito |
Finalidade |
| Google |
accounts.google.com |
OAuth 2.0 tokens do Google Sign-In |
| Facebook |
graph.facebook.com |
Acesse tokens a partir 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......"
}
-
GetId()Solicitação de API com seu ID do grupo de identidade e um Logins mapa contendo seu token de 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 mesmo IdentityID mapa de Logins retornado
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.
Entenda 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 uma função do IAM projetada especificamente para acesso autenticado, fornecendo permissões mais amplas do que o acesso de convidados.
-
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 por grupos de usuários. Quando você vincula um grupo de usuários como IdP a um grupo de identidades, os tokens do grupo de usuários autorizam seu grupo de identidades a emitir credenciais temporárias.
- User pool authentication with enhanced flow
-
O fluxo aprimorado fornece uma abordagem simplificada para obter AWS
credenciais por meio de grupos de identidade do Amazon Cognito com uma única solicitação de API.
Use a autenticação do grupo de usuários do Amazon Cognito com o fluxo aprimorado do grupo de identidades
-
No aplicativo de demonstração, navegue até a seção Demonstração interativa
-
Escolha a guia Acesso autenticado.
-
Escolha a guia Fluxo aprimorado.
-
Escolha 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 para o URI de redirecionamento do seu aplicativo com um código de autorização.
-
O aplicativo troca o código de autorização com seu grupo de usuários por tokens web JSON.
-
O aplicativo troca o token de ID com seu grupo de identidades por AWS credenciais temporárias
-
O aplicativo 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á-las:
-
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"
}
}
-
Exibir botão detalhado do fluxo da API: escolha esse botão se quiser ver as solicitações da step-by-step API.
-
O aplicativo faz login do usuário com um 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 grupos 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 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
}
-
GetId()Solicitação de API com sua identityPoolId e um Logins mapa que inclui sua chave de provedor de pool de usuários mapeada para o. 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 válido, ele encontra ou cria e retorna o do usuárioIdentityID. Um exemplo de resposta se parece com isso:
{
"IdentityId": "us-east-1:a1b2c3d4-5678-90ab-cdef-EXAMPLE22222"
}
-
GetCredentialsForIdentity()com o retornado identityPoolId e a=o mesmo Logins mapa 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 se parece com isso:
{
"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.
Use a autenticação do grupo de usuários do Amazon Cognito com o fluxo básico do grupo de identidades
-
No aplicativo de demonstração, navegue até a seção Demonstração interativa
-
Escolha a guia Acesso autenticado.
-
Escolha a guia Fluxo básico.
-
Escolha 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 para o URI de redirecionamento do seu aplicativo com um código de autorização.
-
O aplicativo troca o código de autorização com seu grupo de usuários por tokens web JSON.
-
O aplicativo troca o token de ID com seu grupo de identidades por AWS credenciais temporárias
-
O aplicativo 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á-las:
-
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"
}
}
-
Exibir botão detalhado do fluxo da API: escolha esse botão se quiser ver as solicitações da step-by-step API.
-
O aplicativo faz login do 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 grupos de identidades usam esse token para autenticação:
{
"id_token": "eyJraWQiOiJFWAMPLE......",
"token_type": "Bearer",
"expires_in": 3600
}
-
GetId()Solicitação de API com o ID do grupo de identidades e um Logins mapa 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 válido, ele encontra ou cria e retorna o do usuárioIdentityID. Um exemplo de resposta se parece com isso:
{
"IdentityId": "us-east-1:a1b2c3d4-5678-90ab-cdef-EXAMPLE22222"
}
-
GetOpenIdToken()com o Logins mapa devolvido IdentityID e o mesmo
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 nesta etapa: o Amazon Cognito emite um token de identidade web OpenID Connect de curta duração de cognito-identity.amazonaws.com que representa isso. 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 da sua função 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 seu aplicativo de demonstração fez: Seu aplicativo enviou o token OpenID de GetOpenIdToken() para AWS STS, solicitando credenciais temporárias. 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 uma função do IAM especificada na configuração do seu grupo 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 é suportado no aplicativo 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
Use a autenticação SAML com o fluxo aprimorado do pool de identidades
-
No aplicativo de demonstração, navegue até a seção Demonstração interativa
-
Escolha a guia Acesso autenticado.
-
Escolha a guia Fluxo aprimorado.
-
Escolha 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 do seu aplicativo com uma declaração SAML.
-
O aplicativo troca o código de autorização com seu grupo de usuários por tokens web JSON.
-
O aplicativo troca a resposta SAML com seu grupo de identidades por credenciais temporárias AWS
-
O aplicativo 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á-las:
-
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"
}
}
-
Exibir botão detalhado do fluxo da API: escolha esse botão se quiser ver as solicitações da step-by-step API.
-
O aplicativo faz login do usuário com um SAML IdP e obtém a resposta SAML. Os grupos de identidades aceitam declarações SAML de provedores corporativos usando o ARN do provedor SAML como chave:
| Provedor de identidades |
Chave do provedor 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 de SAML, seu aplicativo recebe uma resposta SAML via HTTP POST para sua URL de retorno de chamada:
{
"saml_response": "PD94bWwgdmVyc2lvbj0iMS4wIiBFWAMPLE...",
"provider_arn": "arn:aws:iam::111122223333:saml-provider/EXAMPLE",
"status": "Authentication successful"
}
-
GetId()Solicitação de API com seu ID do grupo de identidades e um Logins mapa contendo o ARN e a declaração do seu 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 Logins mapa devolvido IdentityID e o mesmo
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
Entenda o acesso ao 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 uma função do IAM projetada especificamente para acesso autenticado, fornecendo permissões mais amplas do que o acesso de convidados.
-
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 identidade corporativa. 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 lendo se estiver procurando informações sobre como integrar a autenticação baseada em padrões com seus recursos. AWS Depois de implementar a autenticação do OIDC, você aprenderá como aproveitar as declarações do OIDC para um controle de acesso refinado.
- OIDC authentication with enhanced flow
-
Esta seção mostra como você pode usar um provedor de identidade OIDC para cadastrar um usuário e, usando o fluxo aprimorado, trocar o token OIDC em um pool de identidade do Amazon Cognito por credenciais temporárias para chamar serviços. AWS AWS
Use o login do OIDC com o fluxo aprimorado do pool de identidades
-
No aplicativo de demonstração, navegue até a seção Demonstração interativa
-
Escolha a guia Acesso autenticado.
-
Escolha a guia Fluxo aprimorado.
-
Escolha Entrar com o provedor OIDC
-
Conclua o login com suas credenciais corporativas.
-
O provedor do OIDC redireciona de volta para o aplicativo com um código de autorização
-
O aplicativo troca o código de autorização com seu grupo de usuários por tokens web JSON.
-
O aplicativo envia o token OIDC para seu grupo de identidades e recupera credenciais temporárias. AWS
-
O aplicativo 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á-las:
-
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"
}
}
-
Exibir botão detalhado do fluxo da API: escolha esse botão se quiser ver as solicitações da step-by-step API.
-
O aplicativo faz login no usuário com um IdP do OIDC e obtém o token de ID. Os grupos de identidades aceitam tokens OIDC de provedores corporativos:
| Provedor de identidades |
Chave do provedor 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 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......"
}
-
GetId()Solicitação de API com seu ID do grupo de identidade e um Logins mapa contendo seu token de 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 mesmo IdentityID mapa de Logins retornado
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 OIDC para cadastrar um usuário e, usando o fluxo básico, trocar o token OIDC em um pool de identidade do Amazon Cognito por credenciais temporárias para chamar serviços. AWS AWS
Use o login do OIDC com o fluxo básico do pool de identidades
-
No aplicativo de demonstração, navegue até a seção Demonstração interativa
-
Escolha a guia Acesso autenticado.
-
Escolha a guia Fluxo básico.
-
Escolha Entrar com o provedor OIDC
-
Conclua o login com suas credenciais corporativas.
-
O provedor do OIDC redireciona de volta para o aplicativo com um código de autorização
-
O aplicativo troca o código de autorização com seu grupo de usuários por tokens web JSON.
-
O aplicativo envia o token OIDC para seu grupo de identidades e recupera credenciais temporárias. AWS
-
O aplicativo 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á-las:
-
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"
}
}
-
Exibir botão detalhado do fluxo da API: escolha esse botão se quiser ver as solicitações da step-by-step API.
-
O aplicativo faz login no usuário com um IdP do OIDC e obtém o token de ID. Os grupos de identidades aceitam tokens OIDC de provedores corporativos:
| Provedor de identidades |
Chave do provedor 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 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......"
}
-
GetId()Solicitação de API com seu ID do grupo de identidade e um Logins mapa contendo seu token de 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.
Entenda a autenticação OIDC
-
Baseado em padrões: o OIDC é baseado em OAuth 2.0 e fornece informações de identidade padronizadas.
-
Validação do token: os tokens de ID podem ser validados quanto à autenticidade.
-
Acesso baseado em declarações: as declarações do OIDC podem ser usadas para mapeamento de funções e controle de acesso.
-
Integração corporativa: funciona com provedores de identidade corporativa populares.
Próximas etapas
Agora que você configurou e explorou o aplicativo de demonstração, você pode:
-
Configure provedores de identidade adicionais que você ainda não testou
-
Experimente a autenticação avançada e básica para entender suas diferenças
-
Personalize a demonstração para seu próprio caso de uso
-
Integre os pools de identidade do Amazon Cognito em seus próprios aplicativos.