¿Cómo puedo conseguir los tókenes de OIDC o los que emiten los proveedores de identidades de redes sociales después de haber integrado el proveedor de identidades con Amazon Cognito?

7 minutos de lectura
0

Me gustaría conseguir los tókenes de acceso e identidad que emite mi proveedor de identidades (IdP) y que está integrado con los grupos de usuarios de Amazon Cognito.

Descripción breve

En el proceso de autenticación del IdP con OpenID Connect (OIDC), Amazon Cognito intercambia el código de autorización que emite el IdP por los tókenes del IdP. Acto seguido, Amazon Cognito prepara su propio conjunto de tókenes y se los entrega al usuario final una vez que la federación se haya llevado a cabo correctamente. No obstante, este proceso no permite que el usuario o la aplicación vean los tókenes reales por el lado del IdP. Es posible que, en algunos casos de uso, se precisen los tókenes que emite el IDP en la aplicación para obtener la autorización o para resolver problemas. Si desea registrar y almacenar los tókenes de acceso e identidad que emiten los IdP al federarse en grupos de usuarios de Amazon Cognito, siga los pasos que se indican en la sección Resolución.

Importante: En los pasos que se indican en este artículo, se presupone que ya ha integrado el IdP de OIDC o el IdP de redes sociales con los grupos de usuarios de Amazon Cognito. Si no ha integrado ningún IdP en su grupo de usuarios, siga los pasos que se indican para agregar un inicio de sesión al grupo de usuarios a través de un proveedor externo.

Resolución

Cree un atributo personalizado en un grupo de usuarios

Siga los pasos que se indican para crear un atributo personalizado en su grupo de usuarios:

1.    Abra la nueva consola de Amazon Cognito y, después, seleccione la pestaña Sign-Up Experience (Proceso de registro) en su grupo de usuarios.

2.    En la sección Custom Attributes (Atributos personalizados), seleccione el botón Add custom attributes (Agregar atributos personalizados).

3.    Si desea crear un atributo personalizado para un tóken de acceso, indique los siguientes valores y, después, guarde los cambios.

  • Name (Nombre): access_token
  • Type: String (Tipo: Cadena)
  • Max: 2,048 (Máx.: 2048)
  • Mutable: Active esta casilla de verificación

4.    Si desea crear un atributo personalizado para un tóken de identidad, indique los siguientes valores y, después, guarde los cambios.

  • Name (Nombre): id_token
  • Type: String (Tipo: Cadena)
  • Max: 2,048 (Máx.: 2048)
  • Mutable: Active esta casilla de verificación

Configure la asignación de atributos entre Amazon Cognito y su IdP

Siga los pasos que se indican para configurar la asignación de atributos con el IdP:

1.    Abra la nueva consola de Amazon Cognito y, después, seleccione la pestaña Sign-in Experience (Proceso de inicio de sesión) en su grupo de usuarios.

2.    En la sección Federated Identity Provider sign-in (Inicio de sesión con el proveedor de identidades federado), seleccione su IdP de la lista.

3.    Elija la opción Edit (Editar) cerca de la sección Identity provider information (Información sobre el proveedor de identidades). Asegúrese de que los siguientes ámbitos figuren en la secciónAuthorized scopes (Ámbitos autorizados):

  • Ámbitos de ejemplo para Facebook: public_profile, email
  • Ámbitos de ejemplo para Google: profile email openid
  • Ejemplos de ámbitos para Login with Amazon (Inicio de sesión con Amazon): profile postal_code
  • Ejemplos de ámbitos para Sign in with Apple (Inicio de sesión con Apple): email name
  • Ámbitos de ejemplo para todos los demás proveedores de OIDC: profile email openid

4.    Vuelva a la página anterior delproveedor de identidades. Elija Edit (Editar) cerca de la sección Attribute mapping (Asignación de atributos).

5.    En la columna User pool attribute (Atributos del grupo de usuarios), seleccione el atributo personalizado que creó al principio.

6.    En la columna OpenID Connect attribute (atributos de OpenID Connect), seleccione access_token o id_token, según el tipo de tóken que se vaya a asignar (de acceso o de identidad, respectivamente). A continuación, guarde los cambios.

Ejemplos de resultados para la configuración de la asignación de atributos:

User pool attribute (Atributo de grupo de usuarios): custom:id_token
OpenID Connect attribute (Atributo de OpenID Connect): id_token

User pool attribute(Atributo de grupo de usuarios): custom:access_token
OpenID Connect attribute (Atributo de OpenID Connect): access_token

Active los permisos de lectura y escritura para los atributos en su cliente de aplicaciones de Amazon Cognito

Cuando un usuario inicia sesión en la aplicación, Amazon Cognito se encarga de actualizar los atributos asignados. Para que Amazon Cognito actualice los atributos asignados del grupo de usuarios, se deben poder escribir en la configuración del cliente de la aplicación. Para que Amazon Cognito pueda actualizar el tóken de identidad del usuario, los atributos deben poder leerse en la configuración del cliente de la aplicación.

1.    Abra la nueva consola de Amazon Cognito y, después, seleccione la pestaña App integration (Integración con aplicaciones) en su grupo de usuarios.

2.    Seleccione el cliente de su aplicación en la lista de clientes para aplicaciones.

3.    En la sección Attribute read and write permissions (Permisos de lectura y escritura de los atributos), seleccione Edit (Editar).

4.    En la página Edit attribute read and write permissions (Editar permisos de lectura y escritura de los atributos), active las casillas read (lectura) y write (escritura) para los atributos personalizados.

5.    Guarde los cambios.

Repita los mismos pasos para cada cliente de la aplicación que use el atributo personalizado.

Si desea obtener más información, consulte User pool attributes (Atributos del grupo de usuarios) y vaya a la pestañaAttribute permissions and scopes (Permisos y ámbitos de los atributos).

Inicie sesión con el proveedor externo de OIDC o con el IdP de redes sociales

Al realizar una nueva autenticación de IdP mediante la interfaz de usuario alojada en Amazon Cognito, podrá ver los identificadores del IdP en los atributos personalizados. Elija a un usuario adecuado para ver los identificadores del IdP en sus atributos. Asimismo, la decodificación del tóken de identidad le proporciona los atributos personalizados que contienen los identificadores del IdP.

Ejemplo de sección de carga del tóken de identificación que se emite para el usuario final:

{
    "custom:access_token": "ya29.a0AeTM1ic9iv_FqpDQeIN......w1OPKdFEbR_Tea",
    "iss": "https://cognito-idp.example_region.amazonaws.com/example_user_pool_id",
    "custom:id_token": "eyJhbGciOiJSUzI1NiIsImtpZCI6IjhjMjdkYjRkMTN............saDMuZ29vZ2xldXNlcmNv"
}

Cuando vaya a crear atributos personalizados, tenga en cuenta los siguientes aspectos:

  • La longitud máxima de cualquier atributo personalizado es de 2048 caracteres. Cuando un tóken de IdP supera los 2048 caracteres, se muestra el siguiente error: “String attributes cannot have a length of more than 2048” (Los atributos de cadena no pueden tener una longitud superior a 2048).
  • No se puede eliminar ni modificar un atributo personalizado después de haberlo creado.
  • Si el atributo personalizado no se actualiza durante los inicios de sesión posteriores, compruebe la mutabilidad del atributo personalizado. Es previsible que se dé este problema si desactiva la casilla Mutable al crear el atributo. Si desea obtener más información, consulte User pool attributes (Atributos del grupo de usuarios) y vaya a la pestaña Custom attributes (Atributos personalizados).

Nota: Si sigue sin poder obtener un tóken de IdP tras seguir los pasos anteriores, contacte con su IdP. Pregúntele si el IdP admite la transferencia a Amazon Cognito de los tókenes que se incluyen en los atributos. Cuando lo haya confirmado, puede contactar con AWS Support para que le sigan ayudando a resolver el problema.


Información relacionada

¿Cómo puedo configurar Auth0 como proveedor de OIDC en un grupo de usuarios de Amazon Cognito?

¿Cómo puedo configurar LinkedIn como proveedor de identidades de redes sociales en un grupo de usuarios de Amazon Cognito?

¿Cómo puedo configurar Okta como proveedor de identidades de OpenID Connect en un grupo de usuarios de Amazon Cognito?

¿Cómo puedo configurar Google como proveedor de identidades federado en un grupo de usuarios de Amazon Cognito?

OFICIAL DE AWS
OFICIAL DE AWSActualizada hace un año