Finalización de las sesiones de usuario con la revocación del token - Amazon Cognito

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.

Finalización de las sesiones de usuario con la revocación del token

Puede revocar los tokens de actualización y las sesiones de los usuarios finales mediante los siguientes métodos. Cuando se revoca un token de actualización, todos los tokens de acceso que este token de actualización haya emitido con anterioridad pierden su validez. Los otros tokens de actualización emitidos al usuario no se ven afectados.

RevokeToken operación

RevokeTokenrevoca todos los tokens de acceso de un token de actualización determinado, incluido el token de acceso inicial al iniciar sesión de forma interactiva. Esta operación no afecta a ninguno de los demás tokens de actualización del usuario ni a los símbolos de ID y acceso secundarios de esos otros tokens de actualización.

Punto de conexión de revocación

El punto de conexión de revocación revoca un token de actualización determinado y todos los identificadores de acceso e ID que generó el token de actualización. Este punto de conexión también revoca el token de acceso inicial del inicio de sesión interactivo. Las solicitudes a este punto de conexión no afectan a ninguno de los demás tokens de actualización del usuario ni a los símbolos de ID y acceso secundarios de esos otros tokens de actualización.

GlobalSignOut operación

GlobalSignOutes una operación de autoservicio que un usuario autoriza con su token de acceso. Esta operación revoca todos los tokens de actualización, ID y acceso del usuario solicitante.

AdminUserGlobalSignOut operación

AdminUserGlobalSignOutes una operación del lado del servidor que un administrador autoriza con credenciales de IAM. Esta operación revoca todos los tokens de actualización, ID y acceso del usuario de destino.

Factores que debe tener en cuenta en la revocación de tokens
  • La solicitud para revocar un token de actualización debe incluir el ID del cliente que se utilizó para obtener el token.

  • El grupo de usuarios JWTs es autónomo y tiene una firma y una hora de caducidad que se asignaron cuando se creó el token. Los tokens revocados no se pueden utilizar con ninguna llamada a la API de Amazon Cognito que requiera un token. Sin embargo, los tokens revocados seguirán siendo válidos si se verifican con cualquier biblioteca JWT que verifique la firma y el vencimiento del token.

  • Cuando se crea un nuevo cliente de grupos de usuarios, la revocación de tokens se habilita de forma predeterminada.

  • Solo puede revocar tokens de actualización en clientes de aplicación con la revocación de tokens habilitada.

  • Después de habilitar la revocación de tokens, se agregan nuevas reclamaciones en los JSON Web Tokens de Amazon Cognito. Las notificaciones origin_jti y jti se agregan a los tokens de acceso e ID. Estas notificaciones aumentan la dimensión de los tokens de acceso e ID del cliente de la aplicación.

  • Cuando inhabilita la revocación de tokens en un cliente de aplicación donde estaba habilitada anteriormente, los tokens revocados no vuelven a activarse.

  • Cuando deshabilita una cuenta de usuario (lo que revoca los tokens de actualización y acceso), los tokens revocados no se activan si vuelve a habilitar la cuenta de usuario.

  • Al crear un nuevo cliente de grupo de usuarios mediante la Consola de administración de AWS, la API o la AWS API AWS CLI, la revocación del token se habilita de forma predeterminada.

Habilitar la revocación de tokens

Antes de poder revocar un token para un cliente actual de grupos de usuarios, debe habilitar la revocación de tokens. Puede habilitar la revocación de tokens para los clientes del grupo de usuarios existentes mediante la API AWS CLI o la AWS API. Para ello, llame al comando de CLI aws cognito-idp describe-user-pool-client o a la operación de la API DescribeUserPoolClient para recuperar la configuración actual del cliente de la aplicación. Luego, llame al comando de CLI aws cognito-idp update-user-pool-client o a la operación de la API UpdateUserPoolClient. Incluye la configuración actual del cliente de la aplicación y establece el parámetro EnableTokenRevocation en true.

Para crear o modificar un cliente de aplicación con la revocación de token habilitada con la API de Amazon Cognito o con AWS un SDK, incluya el siguiente parámetro en CreateUserPoolClientsu solicitud de API UpdateUserPoolCliento en su solicitud.

"EnableTokenRevocation": true

Para configurar la revocación de tokens en la consola de Amazon Cognito, seleccione un cliente de aplicación en el menú Clientes de aplicación de su grupo de usuarios. Seleccione el botón Editar en la Información del cliente de aplicación y active o desactive la revocación de tokens en Configuración avanzada.

Revocación de un token

Puede revocar un token de actualización mediante una solicitud de RevokeTokenAPI, por ejemplo, con el comando aws cognito-idp revoke-token CLI. También puede revocar los tokens mediante Revocación de puntos de conexión. Este punto de enlace se encuentra disponible después de agregar un dominio a su grupo de usuarios. Puede utilizar el punto de conexión de revocación en un dominio alojado en Amazon Cognito o en su propio dominio personalizado.

A continuación, se muestra el cuerpo de una solicitud de la API de RevokeToken de ejemplo.

{ "ClientId": "1example23456789", "ClientSecret": "abcdef123456789ghijklexample", "Token": "eyJjdHkiOiJKV1QiEXAMPLE" }

A continuación, se muestra un ejemplo de solicitud cURL al punto de conexión /oauth2/revoke de un grupo de usuarios con un dominio personalizado.

curl --location 'auth.mydomain.com/oauth2/revoke' \ --header 'Content-Type: application/x-www-form-urlencoded' \ --header 'Authorization: Basic Base64Encode(client_id:client_secret)' \ --data-urlencode 'token=abcdef123456789ghijklexample' \ --data-urlencode 'client_id=1example23456789'

La operación RevokeToken y el punto de conexión /oauth2/revoke no requieren ninguna autorización adicional a menos que el cliente de la aplicación tenga un secreto de cliente.