Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.
Ejemplo de aplicación para grupos de identidades
El caso de uso más común de los grupos de identidades de Amazon Cognito es federar usuarios de varios sistemas de inicio de sesión y entregar credenciales temporales de acceso limitado directamente AWS al cliente. Esto elimina la necesidad de crear un agente de credenciales para obtener permisos de acceso a sus recursos. AWS Por ejemplo, puede que tengas que permitir que los usuarios inicien sesión con sus cuentas de redes sociales y accedan a los activos de la aplicación desde Amazon S3 para tu aplicación móvil. Los grupos de identidades también proporcionan credenciales a los usuarios que inician sesión con grupos de usuarios.
En este tutorial, creará una aplicación web en la que podrá obtener credenciales temporales autenticadas y de invitado en los flujos de autenticación básica y mejorada con proveedores de identidad compatibles (IdPs) en los grupos de identidades. Si ya tiene experiencia en el desarrollo web, descargue la aplicación de ejemplo desde GitHub.
Descarga la aplicación de ejemplo desde GitHub
En este ejemplo de aplicación se muestran las siguientes capacidades de los grupos de identidades de Amazon Cognito:
- Flujos de autenticación en grupos de identidades
-
- Implementación del acceso como invitado (sin autenticar)
-
- Integración con proveedores de identidad compatibles
-
-
Redes sociales IdPs (Facebook, Amazon, Twitter, Apple y Google) para el acceso de los consumidores
-
Enterprise IdPs (a través de OpenID Connect o SAML) para usuarios corporativos
-
Grupo de usuarios de Amazon Cognito
- AWS administración de credenciales
-
Tras configurar la aplicación en el servidor web de desarrollo y acceder a ella desde un navegador, aparecen las siguientes opciones.
Requisitos previos
Antes de empezar, necesitará configurar los siguientes recursos.
-
Una AWS cuenta con acceso a Amazon Cognito. Si no tiene una AWS cuenta, siga las instrucciones que se indican enCómo empezar con AWS.
-
Python 3.8 o posterior instalado en su máquina de desarrollo.
-
GitHub acceso.
-
AWS credenciales configuradas con permisos para realizar solicitudes autenticadas a Amazon APIs Cognito. Estas credenciales son necesarias para la autenticación de los desarrolladores.
Para obtener más información sobre la implementación de la federación de AWS credenciales y grupos de identidades en su SDK específico, consulteObtención de credenciales.
Configuración del proveedor de autenticación
Para obtener los mejores resultados con esta aplicación, configure e integre uno o más proveedores de identidades de terceros (IdPs) o grupos de usuarios de Amazon Cognito con su grupo de identidades de Amazon Cognito. Tras completar los requisitos previos y antes de ejecutar esta aplicación de demostración, elija los proveedores de identidad que desee configurar. La consola de Amazon Cognito le guía por el proceso de configuración de proveedores y grupos de identidades.
- Grupo de usuarios de Amazon Cognito
-
- Proveedores de identidades de redes sociales
-
- Proveedores de OpenID Connect (OIDC)
-
- Proveedores de SAML
-
Para esta aplicación de demostración, no necesitas configurar todos los proveedores de identidad compatibles. Puedes empezar con uno que se adapte a tu caso de uso. Cada enlace proporciona instrucciones de configuración detalladas.
Implemente la aplicación de demostración
Clone el repositorio
-
Abra una ventana de terminal.
-
Clona el aws-doc-sdk-examples repositorio o recupera esta carpeta del repositorio de otro modo.
git clone https://github.com/awsdocs/aws-doc-sdk-examples.git
-
Desplácese hasta el directorio del proyecto .
cd python/example_code/cognito/scenarios/identity_pools_example_demo/web
Creación de un grupo de identidades .
Para crear un grupo de identidades de Amazon Cognito para su aplicación, siga las instrucciones que se indican en. Información general de la consola de grupos de identidades
Para configurar un grupo de identidades para la aplicación de demostración
-
Abra la consola de Amazon Cognito.
-
En el menú de navegación de la izquierda, elija Grupos de identidades. Elija un grupo de identidades existente o cree uno nuevo.
-
En Acceso de usuario, habilite el Acceso autenticado y el Acceso de invitado. Configure una función de IAM nueva o existente y asígnele los permisos que desee conceder a cada tipo de usuario.
-
En Acceso de usuario, configure los proveedores de identidad que desee configurar.
-
En Propiedades del grupo de identidades, habilite la autenticación básica (clásica).
-
Mantén el navegador abierto a la consola de tu grupo de identidades. Utilizará el ID del grupo de identidades y otra información de configuración en la configuración de la aplicación.
Los siguientes pasos le guiarán en la configuración inicial de su aplicación de demostración.
Para configurar la aplicación de demostración
-
Abre una línea de comandos python/example_code/cognito/scenarios/identity_pools_example_demo/web en tu aws-doc-sdk-examples clon.
-
Cree un .env archivo copiando el archivo de entorno de ejemplo.
cp .env.example .env
-
Abra el archivo .env en un editor de texto. Sustituya los valores de ejemplo del archivo por sus propios valores de configuración.
-
Instala las dependencias de backend.
pip install -r requirements.txt
-
Inicie el servidor backend:
cd backend
python oauth_server.py
-
Abra una nueva ventana de terminal, navegue hasta el directorio del proyecto e inicie el servidor frontend:
cd frontend
python -m http.server 8001
-
Abra la aplicación en su navegador en http://localhost:8001. Su navegador mostrará la interfaz de la aplicación de demostración, lista para probar la autenticación de los grupos de identidades.
Explore los métodos de autenticación de su grupo de identidades
Esta sección le guía a través de los flujos de autenticación básicos y mejorados mediante la aplicación de demostración de grupos de identidades de Amazon Cognito. Con esta demostración, aprenderá cómo funcionan los grupos de identidades con varios proveedores de identidades para proporcionar AWS credenciales temporales a los usuarios de su aplicación.
En la sección de demostración interactiva de la aplicación de ejemplo, primero elegirá entre dos tipos de acceso compatibles con los grupos de identidades.
- Acceso no autenticado (invitado)
-
Proporcione AWS credenciales a los usuarios que aún no se hayan autenticado.
- Acceso autenticado
-
Cambie los tokens de los proveedores de identidad por AWS credenciales con una gama completa de permisos disponibles. Elija un proveedor de identidad de entre los que configuró en su .env archivo.
En este paso se muestra cómo obtener AWS credenciales temporales para los usuarios no autenticados (invitados) mediante la función de acceso como invitado de su grupo de identidades. En la aplicación de demostración, probará los flujos básicos y mejorados para ver cómo los grupos de identidades emiten credenciales sin necesidad de que el usuario inicie sesión. El acceso como invitado utiliza la misma secuencia de API que el acceso autenticado, pero sin proporcionar los identificadores de los proveedores de identidad (como los OAuth de Google, Facebook o las confirmaciones de SAML de los proveedores empresariales).
Siga leyendo si busca información sobre cómo proporcionar AWS
acceso limitado a los usuarios sin necesidad de autenticación. Tras implementar el acceso como invitado, aprenderás a proporcionar AWS credenciales de forma segura a los usuarios anónimos y a entender las diferencias entre los dos flujos de autenticación.
El acceso no autenticado puede emitir credenciales a cualquier persona con acceso a Internet, por lo que es mejor utilizarlo para AWS los recursos que requieren una seguridad mínima, como los activos públicos APIs y gráficos. Antes de continuar con este paso, compruebe si ha configurado su grupo de identidades con el acceso como invitado habilitado y asegúrese de que existen las políticas de IAM adecuadas para limitar los permisos.
- Guest access with enhanced flow
-
El flujo mejorado es un enfoque simplificado para obtener AWS
credenciales para los usuarios no autenticados con dos solicitudes de API.
Para probar el acceso de invitados con el flujo mejorado
-
En la aplicación de demostración, vaya a la sección de demostración interactiva
-
Seleccione la pestaña Acceso para invitados.
-
Seleccione la pestaña Flujo mejorado.
-
Selecciona Probar el acceso de invitados.
-
La aplicación obtiene AWS credenciales temporales de tus grupos de identidades sin necesidad de solicitar más autenticación.
-
Una vez que la autenticación se haya realizado correctamente, verá en la interfaz web el panel de resultados y tendrá dos opciones para explorarlos:
-
Botón Ver solo las credenciales: seleccione este botón si desea ver directamente AWS las credenciales temporales generadas sin los detalles del flujo de la 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ón para ver el flujo de API detallado: selecciona este botón si quieres ver las solicitudes de step-by-step API.
-
GetId()Solicitud de API con suidentityPoolId. No se requieren tokens de autenticación para el acceso de invitados
{
"IdentityPoolId": "us-east-1:a1b2c3d4-5678-90ab-cdef-EXAMPLE11111"
}
Si es válido, busca o crea y devuelve el del usuarioIdentityID. Un ejemplo de respuesta tiene el siguiente aspecto:
{
"IdentityId": "us-east-1:a1b2c3d4-5678-90ab-cdef-EXAMPLE11111"
}
-
GetCredentialsForIdentity()con lo devueltoidentityPoolId.
POST GetCredentialsForIdentity
{
"IdentityId": "us-east-1:a1b2c3d4-5678-90ab-cdef-EXAMPLE11111"
}
Cognito valida el acceso de invitado, asume internamente el rol de no autenticado AWS STS y devuelve una credencial de AWS temporal. (No hay autenticación de IAM en esta llamada; la confianza en el rol debe permitirlo). 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
-
El flujo básico proporciona un control pormenorizado del proceso de autenticación con solicitudes de API independientes para la recuperación de la identidad y la generación de credenciales.
Para probar el acceso de los huéspedes con el flujo básico
-
En la aplicación de demostración, vaya a la sección de demostración interactiva
-
Seleccione la pestaña Acceso para invitados.
-
Seleccione la pestaña Flujo básico.
-
Selecciona Probar el acceso de invitados.
-
La aplicación obtiene AWS credenciales temporales de tus grupos de identidades sin necesidad de solicitar más autenticación.
-
Una vez que la autenticación se haya realizado correctamente, verá en la interfaz web el panel de resultados y dispondrá de dos opciones para explorarlos.
-
Botón Ver solo credenciales: seleccione este botón si desea ver directamente las AWS credenciales temporales generadas sin los detalles del flujo de la 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ón para ver el flujo de API detallado: selecciona este botón si quieres ver las solicitudes de step-by-step API.
-
GetId()Solicitud de API con el ID de su grupo de identidades. No se requieren tokens de autenticación para el acceso de invitados.
POST GetId
{
"IdentityPoolId": "us-east-1:a1b2c3d4-5678-90ab-cdef-EXAMPLE11111"
}
Si es válido, busca o crea y devuelve el del usuarioIdentityID. Un ejemplo de respuesta tiene el siguiente aspecto:
{
"IdentityId": "us-east-1:a1b2c3d4-5678-90ab-cdef-EXAMPLE22222"
}
-
GetOpenIdToken()con el Logins mapa devuelto IdentityID y el mismo
POST GetOpenIdToken
{
"IdentityId": "us-east-1:a1b2c3d4-5678-90ab-cdef-EXAMPLE22222"
}
Respuesta:
{
"IdentityId": "us-east-1:a1b2c3d4-5678-90ab-cdef-EXAMPLE22222",
"Token": "eyJraWQiOiJFWAMPLE......"
}
Qué ocurre en este paso: Amazon Cognito emite un token de identidad web OpenID Connect de corta duración desde cognito-identity.amazonaws.com que lo representa. IdentityId El token incluye las afirmaciones de la OIDC que se AWS STS evalúan, como aud (el ID de su conjunto de identidades) y amr (autenticado o no autenticado). La política de confianza de su función de IAM debe exigir esas afirmaciones.
-
AssumeRoleWithWebIdentity()- Tu aplicación llama AWS STS directamente para cambiar el token OpenID de Amazon Cognito por credenciales temporales AWS
POST sts:AssumeRoleWithWebIdentity
{
"RoleArn": "arn:aws:iam::111122223333:role/Cognito_IdentityPoolUnauth_Role",
"WebIdentityToken": "eyJraWQiOiJFWAMPLE......"
}
Respuesta:
{
"Credentials": {
"AccessKeyId": "AKIAIOSFODNN7EXAMPLE",
"SecretAccessKey": "wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY",
"SessionToken": "FwoGZXIvYXdzEEXAMPLE......"
}
}
Qué ocurre en este paso: una vez validadas, devuelve las credenciales temporales AWS
Utilice las credenciales temporales
Estas credenciales temporales funcionan como AWS credenciales estándar, pero con permisos limitados definidos por la función de IAM no autenticada del grupo de identidades. Puede utilizarlas con cualquier AWS SDK o. AWS CLI Para obtener más información sobre la configuración AWS SDKs con credenciales, consulte los proveedores de credenciales estandarizados en la Guía de referencia de herramientas AWS SDKs y herramientas.
Los ejemplos que aparecen a continuación no son una lista completa, pero muestran las formas habituales en las que la función de invitado de un grupo de identidades puede mejorar la experiencia del usuario.
Los siguientes ejemplos configuran los proveedores de credenciales para el acceso limitado a Amazon S3 como usuario invitado.
- 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'
}));
Los ejemplos siguientes utilizan el acceso de solo lectura a Amazon DynamoDB como usuario invitado.
- 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
}));
En este paso, se analiza el flujo general de uso de proveedores de identidades sociales con los grupos de identidades de Amazon Cognito. La autenticación social proporciona una experiencia de inicio de sesión familiar y, al mismo tiempo, mantiene la seguridad mediante la administración de identidades federada. Puedes iniciar sesión desde un proveedor de identidad social (IdP) como Google, Facebook y Amazon, y luego cambiar ese token de IdP por credenciales temporales. AWS Los grupos de identidades también admiten la integración de Twitter y Apple, pero no en la aplicación de ejemplo.
El grupo de identidades en sí no es un directorio de usuarios. No almacena contraseñas ni campos de perfil. Por el contrario, confía en el exterior IdPs para autenticar al usuario y se centra en autorizar a ese usuario ya autenticado a llamar directamente a los AWS
servicios mediante la venta de credenciales para las funciones de IAM.
- Social identity provider with enhanced flow
-
En esta sección, se muestra cómo puede utilizar un proveedor de identidad social para iniciar sesión en un usuario y, mediante el flujo mejorado, cambiar el token del proveedor en un grupo de identidades de Amazon Cognito por credenciales temporales para solicitar AWS
recursos.
Utilice el inicio de sesión por redes sociales con el flujo mejorado de la aplicación de ejemplo
-
En la aplicación de demostración, vaya a la sección de demostración interactiva
-
Elija la pestaña Acceso autenticado.
-
Elija la pestaña Flujo mejorado.
-
Elige un proveedor de redes sociales compatible que hayas configurado, por ejemplo, Iniciar sesión con Google, Iniciar sesión con Facebook o Iniciar sesión con Amazon.
-
Inicia sesión y acepta compartir los datos del usuario con la aplicación.
-
El proveedor redirige de nuevo al URI de redireccionamiento de la aplicación
-
La aplicación envía el token del proveedor a tu grupo de identidades y recupera las credenciales temporales AWS
-
La aplicación muestra el panel de resultados en la interfaz web.
Una vez que la autenticación se haya realizado correctamente, verá en la interfaz web el panel de resultados y tendrá dos opciones para explorarlos:
-
Botón Ver solo las credenciales: seleccione este botón si desea ver directamente AWS las credenciales temporales generadas sin los detalles del flujo de la 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ón para ver el flujo de API detallado: selecciona este botón si quieres ver las solicitudes de step-by-step API.
-
La aplicación inicia sesión en el usuario con un IDP social y obtiene el token del proveedor. Los grupos de identidades aceptan estos artefactos de los proveedores sociales:
| Proveedor de identidades |
Clave de proveedor de Cognito |
Finalidad |
| Google |
accounts.google.com |
OAuth 2.0 fichas de inicio de sesión de Google |
| Facebook |
graph.facebook.com |
Acceda a los tokens desde el inicio de sesión de Facebook |
| Amazon |
www.amazon.com |
OAuth tokens de Login with Amazon |
Tras la autenticación correcta con el proveedor social, tu aplicación recibe una OAuth respuesta que contiene el token de acceso y otros detalles de autenticación:
{
"access_token": "ya29.A0AS3H6NEXAMPLE......",
"expires_in": 3599,
"scope": "openid https://www.examplesocial....",
"token_type": "Bearer",
"id_token": "eyJhbGciOiJSUzI1NiIsEXAMPLE......"
}
-
GetId()Solicitud de API con el ID de tu grupo de identidades y un Logins mapa que contiene el token de tu proveedor de redes sociales
POST GetId
{
"IdentityPoolId": "us-east-1:a1b2c3d4-5678-90ab-cdef-EXAMPLE11111",
"Logins": {
"accounts.google.com": "eyJhbGciOiJSUzI1NiIsEXAMPLE......"
}
}
Respuesta:
{
"IdentityId": "us-east-1:a1b2c3d4-5678-90ab-cdef-EXAMPLE22222"
}
-
GetCredentialsForIdentity()con el Logins mapa devuelto IdentityID y el mismo
POST GetCredentialsForIdentity
{
"IdentityId": "us-east-1:a1b2c3d4-5678-90ab-cdef-EXAMPLE22222",
"Logins": {
"accounts.google.com": "eyJhbGciOiJSUzI1NiIsEXAMPLE......"
}
}
Respuesta:
{
"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"
}
Qué ocurrió: Amazon Cognito validó el token con el proveedor configurado, eligió un rol de IAM en función de la configuración del proveedor y llamó AWS STS en su nombre. A continuación, su grupo de identidades devolvió credenciales temporales.
- Social identity provider with basic flow
-
En esta sección se muestra cómo puede utilizar un proveedor de identidad social para iniciar sesión en un usuario y, mediante el flujo básico, cambiar el token del proveedor en un grupo de identidades de Amazon Cognito por credenciales temporales para llamar AWS a los servicios.
Utilice el inicio de sesión por redes sociales con el flujo básico de la aplicación de ejemplo
-
En la aplicación de demostración, vaya a la sección de demostración interactiva
-
Elija la pestaña Acceso autenticado.
-
Elija la pestaña Flujo básico.
-
Elige un proveedor de redes sociales compatible que hayas configurado, por ejemplo, Iniciar sesión con Google, Iniciar sesión con Facebook o Iniciar sesión con Amazon.
-
Inicia sesión y acepta compartir los datos del usuario con la aplicación.
-
El proveedor redirige de nuevo al URI de redireccionamiento de la aplicación
-
La aplicación envía el token del proveedor a tu grupo de identidades y recupera las credenciales temporales AWS
-
La aplicación muestra el panel de resultados en la interfaz web.
Una vez que la autenticación se haya realizado correctamente, verá en la interfaz web el panel de resultados y tendrá dos opciones para explorarlos:
-
Botón Ver solo las credenciales: seleccione este botón si desea ver directamente AWS las credenciales temporales generadas sin los detalles del flujo de la 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ón para ver el flujo de API detallado: selecciona este botón si quieres ver las solicitudes de step-by-step API.
-
La aplicación inicia sesión en el usuario con un IDP social y obtiene el token del proveedor. Los grupos de identidades aceptan estos artefactos de los proveedores sociales:
| Proveedor de identidades |
Clave de proveedor de Cognito |
Finalidad |
| Google |
accounts.google.com |
OAuth 2.0 fichas de inicio de sesión de Google |
| Facebook |
graph.facebook.com |
Acceda a los tokens desde el inicio de sesión de Facebook |
| Amazon |
www.amazon.com |
OAuth tokens de Login with Amazon |
Tras la autenticación correcta con el proveedor social, tu aplicación recibe una OAuth respuesta que contiene el token de acceso y otros detalles de autenticación:
{
"access_token": "ya29.A0AS3H6NEXAMPLE......",
"expires_in": 3599,
"scope": "openid https://www.examplesocial....",
"token_type": "Bearer",
"id_token": "eyJhbGciOiJSUzI1NiIsEXAMPLE......"
}
-
GetId()Solicitud de API con el ID de tu grupo de identidades y un Logins mapa que contiene el token de tu proveedor de redes sociales
POST GetId
{
"IdentityPoolId": "us-east-1:a1b2c3d4-5678-90ab-cdef-EXAMPLE11111",
"Logins": {
"accounts.google.com": "token..."
}
}
Respuesta:
{
"IdentityId": "us-east-1:a1b2c3d4-5678-90ab-cdef-EXAMPLE22222"
}
-
GetOpenIdToken()con el mismo IdentityID mapa de inicios de sesión devuelto
POST GetOpenIdToken
{
"IdentityId": "us-east-1:a1b2c3d4-5678-90ab-cdef-EXAMPLE22222",
"Logins": {
"accounts.google.com": "token..."
}
}
Respuesta:
{
"IdentityId": "us-east-1:a1b2c3d4-5678-90ab-cdef-EXAMPLE22222",
"Token": "eyJraWQiOiJFWAMPLE......"
}
-
AssumeRoleWithWebIdentity()con el token OpenID
POST AssumeRoleWithWebIdentity
{
"RoleArn": "arn:aws:iam::111122223333:role/Cognito_IdentityPoolAuth_Role",
"WebIdentityToken": "eyJraWQiOiJFWAMPLE......"
}
Respuesta:
{
"Credentials": {
"AccessKeyId": "AKIAIOSFODNN7EXAMPLE",
"SecretAccessKey": "wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY",
"SessionToken": "IQoJb3JpZ2luX2VjEEXAMPLE......",
"Expiration": "2025-08-12T14:36:17-07:00"
}
}
Qué ocurrió: Amazon Cognito validó el token con el proveedor configurado y emitió un token OpenID. La aplicación llamó AWS STS directamente para asumir una función de IAM y recibir credenciales temporales.
Comprenda el acceso social
-
Los usuarios de redes sociales reciben AWS credenciales temporales a través de los grupos de identidades de Amazon Cognito después de autenticarse con su proveedor de redes sociales.
-
Cada usuario autenticado recibe un identificador de identidad único que permanece en todas las sesiones.
-
Estas credenciales están vinculadas a un rol de IAM diseñado específicamente para el acceso autenticado, lo que proporciona permisos más amplios que el acceso como invitado.
-
Los tokens de los proveedores sociales se intercambian por AWS credenciales, manteniendo la identidad y los permisos de los usuarios.
En este paso, se analiza la autenticación de Amazon Cognito con la integración del inicio de sesión gestionado por grupos de usuarios. Al vincular un grupo de usuarios como un IdP a un grupo de identidades, los tokens del grupo de usuarios autorizan a su grupo de identidades a emitir credenciales temporales.
- User pool authentication with enhanced flow
-
El flujo mejorado proporciona un enfoque simplificado para obtener AWS
credenciales a través de grupos de identidades de Amazon Cognito con una sola solicitud de API.
Utilice la autenticación del grupo de usuarios de Amazon Cognito con el flujo mejorado del grupo de identidades
-
En la aplicación de demostración, vaya a la sección de demostración interactiva
-
Elija la pestaña Acceso autenticado.
-
Elija la pestaña Flujo mejorado.
-
Elija Iniciar sesión con los grupos de usuarios de Amazon Cognito
-
Complete el inicio de sesión con su nombre de usuario y contraseña en el inicio de sesión administrado.
-
El grupo de usuarios redirige de nuevo al URI de redireccionamiento de la aplicación con un código de autorización.
-
La aplicación intercambia el código de autorización con tu grupo de usuarios por tokens web JSON.
-
La aplicación intercambia el token de ID con tu grupo de identidades por AWS credenciales temporales
-
La aplicación muestra el panel de resultados en la interfaz web
Tras la autenticación correcta, verá en la interfaz web el panel de resultados y tendrá dos opciones para explorarlos:
-
Botón Ver solo las credenciales: seleccione este botón si desea ver directamente AWS las credenciales temporales generadas sin los detalles del flujo de la 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ón para ver el flujo de API detallado: selecciona este botón si quieres ver las solicitudes de step-by-step API.
-
La aplicación inicia sesión en el usuario con un Amazon Cognito. Tras la autenticación correcta con el grupo de usuarios, la aplicación recibe una respuesta OAuth 2.0 que contiene el token de identificación (JWT). Los grupos de identidades aceptan los tokens de ID de JWT de los grupos de usuarios que utilizan este formato de clave de proveedor:
| Proveedor de identidades |
Clave de proveedor de Cognito |
Finalidad |
| Grupo de usuarios de Amazon Cognito |
cognito-idp.{region}.amazonaws.com/{user-pool-id} |
Tokens de ID de JWT de grupos de usuarios de Amazon Cognito |
Tras la autenticación correcta con el grupo de usuarios, la aplicación recibe una respuesta OAuth 2.0 que contiene el token de identificación (JWT):
{
"id_token": "eyJraWQiOiJFWAMPLE......",
"token_type": "Bearer",
"expires_in": 3600
}
-
GetId()Solicitud de API con tu grupo de usuarios identityPoolId y un Logins mapa que incluye la clave del proveedor del grupo de usuarios asignada al. id_token Amazon Cognito verificó que la firma, el emisor, el vencimiento y la audiencia (aud) del token de ID del grupo de usuarios coinciden con uno de los clientes de aplicaciones IDs que registró para este IdP del grupo de usuarios en el 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......"
}
}
Si es válido, busca o crea y devuelve el del usuario. IdentityID Un ejemplo de respuesta tiene el siguiente aspecto:
{
"IdentityId": "us-east-1:a1b2c3d4-5678-90ab-cdef-EXAMPLE22222"
}
-
GetCredentialsForIdentity()con el devuelto identityPoolId y a=el mismo Logins mapa con el. id_token Amazon Cognito vuelve a validar la firma, el emisor, el vencimiento y la audiencia (aud) del token de ID del grupo de usuarios que coincidieron con uno de los clientes de aplicaciones IDs que registró para el IdP de este grupo de usuarios en el 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......"
}
}
Si es válido, elige un rol de IAM (o es el predeterminado)roles-in-token, llama AWS STS
en su nombre y devuelve las credenciales temporales. AWS
Un ejemplo de respuesta tiene el siguiente aspecto:
{
"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
-
El flujo básico proporciona un control detallado del proceso de autenticación con solicitudes de API independientes para la recuperación de identidades y la generación de credenciales.
Utilice la autenticación del grupo de usuarios de Amazon Cognito con el flujo básico del grupo de identidades
-
En la aplicación de demostración, vaya a la sección de demostración interactiva
-
Elija la pestaña Acceso autenticado.
-
Elija la pestaña Flujo básico.
-
Elija Iniciar sesión con los grupos de usuarios de Amazon Cognito
-
Complete el inicio de sesión con su nombre de usuario y contraseña en el inicio de sesión administrado.
-
El grupo de usuarios redirige de nuevo al URI de redireccionamiento de la aplicación con un código de autorización.
-
La aplicación intercambia el código de autorización con tu grupo de usuarios por tokens web JSON.
-
La aplicación intercambia el token de ID con tu grupo de identidades por AWS credenciales temporales
-
La aplicación muestra el panel de resultados en la interfaz web
Tras la autenticación correcta, verá en la interfaz web el panel de resultados y tendrá dos opciones para explorarlos:
-
Botón Ver solo las credenciales: seleccione este botón si desea ver directamente AWS las credenciales temporales generadas sin los detalles del flujo de la 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ón para ver el flujo de API detallado: selecciona este botón si quieres ver las solicitudes de step-by-step API.
-
La aplicación inicia sesión en el usuario con un grupo de usuarios de Amazon Cognito y obtiene el token de identificación (JWT) como artefacto. Tras la autenticación correcta con el grupo de usuarios, la aplicación recibe una OAuth respuesta que contiene el token de identificación (JWT). Los grupos de identidades utilizan este token para la autenticación:
{
"id_token": "eyJraWQiOiJFWAMPLE......",
"token_type": "Bearer",
"expires_in": 3600
}
-
GetId()Solicitud de API con el ID del grupo de identidades y un Logins mapa que incluye la clave del proveedor del grupo de usuarios y el token de ID como valor. Amazon Cognito verificó que la firma, el vencimiento y la audiencia (aud) del token de ID del grupo de usuarios coincidían con uno de los clientes de aplicaciones IDs que registró para el IDP de este grupo de usuarios en el 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......"
}
}
Si es válido, busca o crea y devuelve el del usuario. IdentityID Un ejemplo de respuesta tiene el siguiente aspecto:
{
"IdentityId": "us-east-1:a1b2c3d4-5678-90ab-cdef-EXAMPLE22222"
}
-
GetOpenIdToken()con el Logins mapa devuelto IdentityID y el mismo
POST GetOpenIdToken
{
"IdentityId": "us-east-1:a1b2c3d4-5678-90ab-cdef-EXAMPLE22222",
"Logins": {
"cognito-idp.us-east-1.amazonaws.com/us-east-1_EXAMPLE123": "eyJraWQiOiJFWAMPLE......"
}
}
Respuesta:
{
"IdentityId": "us-east-1:a1b2c3d4-5678-90ab-cdef-EXAMPLE22222",
"Token": "eyJraWQiOiJFWAMPLE......"
}
Qué ocurre en este paso: Amazon Cognito emite un token de identidad web OpenID Connect de corta duración desde cognito-identity.amazonaws.com que lo representa. IdentityId El token incluye las afirmaciones de la OIDC que se AWS STS evalúan, como aud (el ID de su conjunto de identidades) y amr (autenticado o no autenticado). La política de confianza de su función de IAM debe exigir esas afirmaciones.
-
AssumeRoleWithWebIdentity()- Tu aplicación llama AWS STS directamente para cambiar el token OpenID de Amazon Cognito por credenciales temporales AWS
POST sts:AssumeRoleWithWebIdentity
{
"RoleArn": "arn:aws:iam::111122223333:role/Cognito_IdentityPoolAuth_Role",
"WebIdentityToken": "eyJraWQiOiJFWAMPLE......",
"RoleSessionName": "CognitoIdentityCredentials"
}
Respuesta:
{
"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"
}
}
Qué hizo su aplicación de demostración: su aplicación envió el token OpenID desde GetOpenIdToken() a AWS STS, solicitando credenciales temporales. AWS STS
realizó comprobaciones de validación y emitió credenciales:
-
Los usuarios del grupo de usuarios reciben AWS credenciales temporales a través de los grupos de identidades de Amazon Cognito.
-
Estas credenciales están vinculadas a un rol de IAM especificado en la configuración del grupo de identidades.
-
Los identificadores del grupo de usuarios se intercambian por AWS credenciales a través del grupo de identidades.
En este paso se analiza la autenticación SAML. Los usuarios pueden iniciar sesión con proveedores de identidad empresariales que admitan SAML para acceder AWS a los servicios. El flujo básico con SAML no se admite en la aplicación de ejemplo.
- SAML authentication with enhanced flow
-
En esta sección, se muestra cómo puede usar un proveedor de identidades de SAML para iniciar sesión en un usuario y, mediante el flujo mejorado, intercambiar la afirmación de SAML en un grupo de identidades de Amazon Cognito por credenciales temporales AWS para llamar a los servicios. AWS
Utilice la autenticación SAML con el flujo mejorado del grupo de identidades
-
En la aplicación de demostración, vaya a la sección de demostración interactiva
-
Elija la pestaña Acceso autenticado.
-
Elija la pestaña Flujo mejorado.
-
Selecciona Iniciar sesión con el proveedor de SAML
-
Complete el inicio de sesión con sus credenciales empresariales.
-
El grupo de usuarios redirige de nuevo al URI de redireccionamiento de la aplicación con una afirmación de SAML.
-
La aplicación intercambia el código de autorización con tu grupo de usuarios por tokens web JSON.
-
La aplicación intercambia la respuesta de SAML con tu grupo de identidades por credenciales temporales AWS
-
La aplicación muestra el panel de resultados en la interfaz web
Tras la autenticación correcta, verá en la interfaz web el panel de resultados y tendrá dos opciones para explorarlos:
-
Botón Ver solo las credenciales: seleccione este botón si desea ver directamente AWS las credenciales temporales generadas sin los detalles del flujo de la 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ón para ver el flujo de API detallado: selecciona este botón si quieres ver las solicitudes de step-by-step API.
-
La aplicación inicia sesión en el usuario con un IdP de SAML y obtiene la respuesta de SAML. Los grupos de identidades aceptan las afirmaciones de SAML de los proveedores empresariales que utilizan el ARN del proveedor de SAML como clave:
| Proveedor de identidades |
Clave de proveedor de Cognito |
Finalidad |
| Proveedor SAML |
arn:aws:iam::111122223333:saml-provider/EXAMPLE |
Afirmaciones de SAML de la empresa IdPs |
Tras la autenticación correcta con el proveedor de SAML, tu aplicación recibe una respuesta de SAML mediante HTTP POST en la URL de devolución de llamada:
{
"saml_response": "PD94bWwgdmVyc2lvbj0iMS4wIiBFWAMPLE...",
"provider_arn": "arn:aws:iam::111122223333:saml-provider/EXAMPLE",
"status": "Authentication successful"
}
-
GetId()Solicitud de API con el ID de tu grupo de identidades y un Logins mapa que contiene el ARN y la afirmación de tu proveedor de SAML
POST GetId
{
"AccountId": "111122223333",
"IdentityPoolId": "us-east-1:a1b2c3d4-5678-90ab-cdef-EXAMPLE11111",
"Logins": {
"arn:aws:iam::111122223333:saml-provider/EXAMPLE": "PD94bWwgdmVyc2lvbj0iMS4wIiBFWAMPLE..."
}
}
Respuesta:
{
"IdentityId": "us-east-1:a1b2c3d4-5678-90ab-cdef-EXAMPLE22222"
}
-
GetCredentialsForIdentity()con el mapa devuelto IdentityID y el mismo Logins
POST GetCredentialsForIdentity
{
"IdentityId": "us-east-1:a1b2c3d4-5678-90ab-cdef-EXAMPLE22222",
"Logins": {
"arn:aws:iam::111122223333:saml-provider/EXAMPLE": "PD94bWwgdmVyc2lvbj0iMS4wIiBFWAMPLE..."
}
}
Respuesta:
{
"IdentityId": "us-east-1:a1b2c3d4-5678-90ab-cdef-EXAMPLE22222",
"Credentials": {
"AccessKeyId": "AKIAIOSFODNN7EXAMPLE",
"SecretAccessKey": "wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY",
"SessionToken": "IQoJb3JpZ2luX2VjEEXAMPLE......"
}
}
Qué ocurrió: Amazon Cognito validó la afirmación de SAML comparándola con el proveedor configurado, eligió un rol de IAM en función de los atributos o reglas de SAML y llamó en su nombre. AWS STS
Comprenda el acceso a SAML
-
Los usuarios empresariales reciben AWS credenciales temporales de los grupos de identidades de Amazon Cognito tras autenticarse con su proveedor de SAML.
-
Cada usuario autenticado recibe un identificador de identidad único que permanece en todas las sesiones.
-
Estas credenciales están vinculadas a un rol de IAM diseñado específicamente para el acceso autenticado, lo que proporciona permisos más amplios que el acceso como invitado.
-
Las afirmaciones de SAML se intercambian por AWS credenciales, lo que mantiene la identidad del usuario y los atributos empresariales.
En este paso, se analiza la autenticación OIDC con proveedores de identidad empresariales. Los usuarios pueden iniciar sesión a través del proveedor de identidad empresarial de su organización (como Azure AD, Okta o Google Workspace) para acceder a los servicios. AWS Siga leyendo si busca información sobre cómo integrar la autenticación basada en estándares en sus recursos. AWS Después de implementar la autenticación OIDC, aprenderá a aprovechar las afirmaciones de la OIDC para lograr un control de acceso detallado.
- OIDC authentication with enhanced flow
-
En esta sección se muestra cómo puede utilizar un proveedor de identidades OIDC para iniciar sesión en un usuario y, mediante el flujo mejorado, intercambiar el token OIDC de un grupo de identidades de Amazon Cognito por credenciales temporales para llamar a los servicios. AWS AWS
Utilice el inicio de sesión de OIDC con el flujo mejorado del grupo de identidades
-
En la aplicación de demostración, vaya a la sección de demostración interactiva
-
Elija la pestaña Acceso autenticado.
-
Elija la pestaña Flujo mejorado.
-
Elija Iniciar sesión con el proveedor de OIDC
-
Complete el inicio de sesión con sus credenciales empresariales.
-
El proveedor del OIDC redirige de nuevo a la aplicación con un código de autorización
-
La aplicación intercambia el código de autorización con tu grupo de usuarios por tokens web JSON.
-
La aplicación envía el token OIDC a tu grupo de identidades y recupera las credenciales temporales. AWS
-
La aplicación muestra el panel de resultados en la interfaz web
Tras la autenticación correcta, verá en la interfaz web el panel de resultados y tendrá dos opciones para explorarlos:
-
Botón Ver solo las credenciales: seleccione este botón si desea ver directamente AWS las credenciales temporales generadas sin los detalles del flujo de la 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ón para ver el flujo de API detallado: selecciona este botón si quieres ver las solicitudes de step-by-step API.
-
La aplicación inicia sesión en el usuario con un IdP de OIDC y obtiene el token de identificación. Los grupos de identidades aceptan tokens OIDC de proveedores empresariales:
| Proveedor de identidades |
Clave de proveedor de Cognito |
Finalidad |
| Proveedor OIDC |
example-provider.com/oauth2/default |
Tokens de ID OIDC de empresa IdPs |
Tras la autenticación correcta con el proveedor de OIDC, tu aplicación recibe una respuesta OAuth 2.0 que contiene los siguientes tokens:
{
"token_type": "Bearer",
"expires_in": 3600,
"access_token": "eyJraWQiOiJFWAMPLE......",
"scope": "email openid profile",
"id_token": "eyJraWQiOiJFWAMPLE......"
}
-
GetId()Solicitud de API con tu ID de grupo de identidades y un Logins mapa que contiene tu token de proveedor de OIDC
POST GetId
{
"AccountId": "111122223333",
"IdentityPoolId": "us-east-1:a1b2c3d4-5678-90ab-cdef-EXAMPLE11111",
"Logins": {
"example-provider.com/oauth2/default": "eyJraWQiOiJFWAMPLE......"
}
}
Respuesta:
{
"IdentityId": "us-east-1:a1b2c3d4-5678-90ab-cdef-EXAMPLE22222"
}
-
GetCredentialsForIdentity()con el mismo mapa de IdentityID inicios de sesión devuelto
POST GetCredentialsForIdentity
{
"IdentityId": "us-east-1:a1b2c3d4-5678-90ab-cdef-EXAMPLE22222",
"Logins": {
"example-provider.com/oauth2/default": "eyJraWQiOiJFWAMPLE......"
}
}
Respuesta:
{
"IdentityId": "us-east-1:a1b2c3d4-5678-90ab-cdef-EXAMPLE22222",
"Credentials": {
"AccessKeyId": "AKIAIOSFODNN7EXAMPLE",
"SecretAccessKey": "wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY",
"SessionToken": "IQoJb3JpZ2luX2VjEEXAMPLE......"
}
}
Qué ocurrió: Amazon Cognito validó el token OIDC con el proveedor configurado, eligió un rol de IAM (predeterminado, basado en reclamos o mapeado por reglas) y llamó en su nombre. AWS STS
- OIDC authentication with basic flow
-
En esta sección se muestra cómo puede utilizar un proveedor de identidades OIDC para iniciar sesión en un usuario y, mediante el flujo básico, intercambiar el token OIDC de un grupo de identidades de Amazon Cognito por credenciales temporales para llamar a los servicios. AWS AWS
Utilice el inicio de sesión de OIDC con el flujo básico del grupo de identidades
-
En la aplicación de demostración, vaya a la sección de demostración interactiva
-
Elija la pestaña Acceso autenticado.
-
Elija la pestaña Flujo básico.
-
Seleccione Iniciar sesión con el proveedor de OIDC
-
Complete el inicio de sesión con sus credenciales empresariales.
-
El proveedor del OIDC redirige de nuevo a la aplicación con un código de autorización
-
La aplicación intercambia el código de autorización con tu grupo de usuarios por tokens web JSON.
-
La aplicación envía el token OIDC a tu grupo de identidades y recupera las credenciales temporales. AWS
-
La aplicación muestra el panel de resultados en la interfaz web
Tras la autenticación correcta, verá en la interfaz web el panel de resultados y tendrá dos opciones para explorarlos:
-
Botón Ver solo las credenciales: seleccione este botón si desea ver directamente AWS las credenciales temporales generadas sin los detalles del flujo de la 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ón para ver el flujo de API detallado: selecciona este botón si quieres ver las solicitudes de step-by-step API.
-
La aplicación inicia sesión en el usuario con un IdP de OIDC y obtiene el token de identificación. Los grupos de identidades aceptan tokens OIDC de proveedores empresariales:
| Proveedor de identidades |
Clave de proveedor de Cognito |
Finalidad |
| Proveedor OIDC |
example-provider.com/oauth2/default |
Tokens de ID OIDC de empresa IdPs |
Tras la autenticación correcta con el proveedor de OIDC, tu aplicación recibe una respuesta OAuth 2.0 que contiene los siguientes tokens:
{
"token_type": "Bearer",
"expires_in": 3600,
"access_token": "eyJraWQiOiJFWAMPLE......",
"scope": "openid email profile",
"id_token": "eyJraWQiOiJFWAMPLE......"
}
-
GetId()Solicitud de API con tu ID de grupo de identidades y un Logins mapa que contiene tu token de proveedor de OIDC
POST GetId
{
"IdentityPoolId": "us-east-1:a1b2c3d4-5678-90ab-cdef-EXAMPLE11111",
"Logins": {
"example-provider.com/oauth2/default": "eyJraWQiOiJFWAMPLE......"
}
}
Respuesta:
{
"IdentityId": "us-east-1:a1b2c3d4-5678-90ab-cdef-EXAMPLE22222"
}
-
GetOpenIdToken()con el IdentityID devuelto y el mismo mapa Logins
POST GetOpenIdToken
{
"IdentityId": "us-east-1:a1b2c3d4-5678-90ab-cdef-EXAMPLE22222",
"Logins": {
"example-provider.com/oauth2/default": "eyJraWQiOiJFWAMPLE......"
}
}
Respuesta:
{
"IdentityId": "us-east-1:a1b2c3d4-5678-90ab-cdef-EXAMPLE22222",
"Token": "eyJraWQiOiJFWAMPLE......"
}
-
AssumeRoleWithWebIdentity()con el token OpenID
POST AssumeRoleWithWebIdentity
{
"RoleArn": "arn:aws:iam::111122223333:role/Cognito_IdentityPoolAuth_Role",
"WebIdentityToken": "eyJraWQiOiJFWAMPLE......"
}
Respuesta:
{
"Credentials": {
"AccessKeyId": "AKIAIOSFODNN7EXAMPLE",
"SecretAccessKey": "wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY",
"SessionToken": "FwoGZXIvYXdzEEXAMPLE......",
"Expiration": "2025-08-12T14:36:17-07:00"
}
}
Qué ocurrió: Amazon Cognito validó el token OIDC con el proveedor configurado y devolvió un token OpenID. La aplicación llamó AWS STS directamente para asumir la función de IAM adecuada y recibió credenciales de corta duración.
Comprenda la autenticación OIDC
-
Basado en estándares: el OIDC se basa en la OAuth versión 2.0 y proporciona información de identidad estandarizada.
-
Validación de los identificadores: se puede validar la autenticidad de los identificadores.
-
Acceso basado en reclamos: los reclamos de OIDC se pueden usar para mapear roles y controlar el acceso.
-
Integración empresarial: funciona con los proveedores de identidad empresarial más populares.
Pasos a seguir a continuación
Ahora que ha configurado y explorado la aplicación de demostración, puede:
-
Configurar proveedores de identidad adicionales que aún no haya probado
-
Experimente con la autenticación básica y la mejorada para comprender sus diferencias
-
Personalice la demostración para su propio caso de uso
-
Integre los grupos de identidades de Amazon Cognito en sus propias aplicaciones.