¿Cómo puedo obtener los tokens de OIDC o identidad social emitidos por un IdP para los grupos de usuarios de Amazon Cognito?
Quiero saber cómo obtener los tokens de acceso e ID emitidos por el proveedor de identidades (IdP) que integré con los grupos de usuarios de Amazon Cognito con fines de autorización o solución de problemas.
Breve descripción
El flujo de autenticación de IdP de OpenID Connect (OIDC) no permite que el usuario o la aplicación visualicen los tokens del lado del IdP. Para fines de autorización o solución de problemas, en algunos casos prácticos se requieren los tokens reales emitidos por el IdP dentro de la aplicación.
Importante: En la siguiente solución se presupone que ha integrado el IdP de OIDC o el IdP social con grupos de usuarios de Amazon Cognito. Si no ha integrado un IdP con su grupo de usuarios, agregue un inicio de sesión del grupo de usuarios a través de un tercero.
Solución
Creación de un atributo personalizado en un grupo de usuarios
Para crear un atributo personalizado en su grupo de usuarios, siga estos pasos:
- Abra la nueva consola de Amazon Cognito y, a continuación, elija la pestaña Experiencia de inscripción en su grupo de usuarios.
- En la sección Atributos personalizados, seleccione Agregar atributos personalizados.
- Para crear un atributo personalizado para un token de acceso, introduzca los siguientes valores:
Nombre: access_token
Tipo: cadena
Máx.: 2048
Mutable: marque esta casilla - Seleccione Guardar.
- Para crear un atributo personalizado para un token de ID, introduzca los siguientes valores:
Nombre: id_token
Tipo: cadena
Máx.: 2048
Mutable: marque esta casilla - Seleccione Guardar.
Configuración de la asignación de atributos entre Amazon Cognito y su IdP
Para configurar la asignación de atributos para los atributos del IdP, siga estos pasos:
- Abra la nueva consola de Amazon Cognito y, a continuación, elija la pestaña Experiencia de inicio de sesión en su grupo de usuarios.
- En la sección Inicio de sesión con el proveedor de identidades federadas, elija su IdP en la lista.
- En la sección Información del proveedor de identidad, seleccione Editar. Asegúrese de que los siguientes ámbitos se encuentren en la sección Ámbitos autorizados:
Facebook: public_profile, email
Google: profile email openid
Inicio de sesión con Amazon: profile postal_code
Inicio de sesión con Apple: email name
Todos los demás proveedores de OIDC: profile email openid - En la página Proveedor de identidades, elija Editar en la sección Asignación de atributos.
- En la columna Atributo de grupo de usuarios, seleccione su atributo personalizado.
- En la columna Atributo de OpenID Connect, seleccione access_token o id_token.
- Seleccione Guardar.
A continuación se muestran los resultados de la configuración de la asignación de atributos:
- Atributo de grupo de usuarios: custom:id_token
- Atributo de OpenID Connect: id_token
- Atributo de grupo de usuarios: custom:access_token
- Atributo de OpenID Connect: access_token
Activación de los permisos de lectura y escritura de atributos en su cliente de la aplicación Amazon Cognito
Cuando un usuario inicia sesión en la aplicación, Amazon Cognito actualiza los atributos asignados. Para que Amazon Cognito actualice los atributos asignados del grupo de usuarios, en el cliente de la aplicación estos atributos se deben haber configurado como aptos para la escritura. Para que Amazon Cognito actualice el token de identificación del usuario, en el cliente de la aplicación los atributos se deben haber configurado como legibles.
Para activar los permisos de lectura y escritura, siga estos pasos:
- Abra la nueva consola de Amazon Cognito y, a continuación, elija la pestaña Integración de aplicaciones en su grupo de usuarios.
- Seleccione el cliente de la aplicación.
- En la sección Permisos de lectura y escritura de atributos, seleccione Editar.
- En la página Editar los permisos de lectura y escritura de atributos, marque las casillas Lectura y Escritura para sus atributos personalizados.
- Seleccione Guardar.
Repita estos pasos para cada cliente de aplicación que utilice el atributo personalizado.
Para obtener más información, consulte Attribute permissions and scopes.
Inicio de sesión con el IdP social o el proveedor de OIDC de terceros
Si realiza una nueva autenticación de IdP a través de la interfaz de usuario alojada de Amazon Cognito, podrá ver los tokens de IdP en los atributos personalizados. Elija un usuario final para ver los tokens de IdP en sus atributos. Si descodifica el token de ID, también verá los atributos personalizados que contienen los tokens de IdP.
Ejemplo de sección de carga útil del token de identificación emitido 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" }
Importante:
- La longitud máxima para cualquier atributo personalizado es de 2048 caracteres. Si un token de IdP supera los 2048 caracteres, se mostrará el siguiente error: «String attributes cannot have a length of more than 2048».
- No puede eliminar ni modificar un atributo personalizado después de crearlo.
- Si el atributo personalizado no se actualiza en inicios de sesión posteriores, compruebe la mutabilidad del atributo personalizado. Este problema podría producirse si desmarca la casilla Mutable durante la creación del atributo. Para obtener más información, consulte Custom attributes.
Nota: Si sigue sin poder obtener un token de IdP, póngase en contacto con su IdP. Compruebe si el IdP admite la transferencia de tokens con atributos a Amazon Cognito. A continuación, póngase en contacto con AWS Support para solucionar otros problemas.
Información relacionada
¿Cómo configuro Auth0 como proveedor de OIDC en un grupo de usuarios de Amazon Cognito?
Contenido relevante
- OFICIAL DE AWSActualizada hace 7 meses
- OFICIAL DE AWSActualizada hace un año
- OFICIAL DE AWSActualizada hace 2 años
- OFICIAL DE AWSActualizada hace un año