¿Cómo puedo revocar los tokens de actualización emitidos por Amazon Cognito?

4 minutos de lectura
0

Quiero usar API o puntos de conexión para revocar los tokens de actualización generados por Amazon Cognito.

Solución

Puede utilizar API y puntos de conexión para revocar los tokens de actualización generados por Amazon Cognito.

Nota: Puede revocar los tokens de actualización en tiempo real para que estos tokens de actualización no puedan generar tokens de acceso.

Requisitos previos para revocar los tokens de actualización

Activa la revocación de tokens para que un cliente de aplicación revoque los tokens de actualización emitidos por ese cliente. El parámetro EnableTokenRevocation está activado de forma predeterminada al crear un nuevo cliente de grupo de usuarios de Amazon Cognito. Antes de poder revocar un token para un cliente de grupo de usuarios existente, active la revocación del token dentro de la operación de la API UpdateUserPoolClient. Incluya la configuración actual del cliente de la aplicación y establezca el parámetro EnableTokenRevocation en true.

Al activar la configuración de revocación de tokens, las afirmaciones origin_jti y jti se añaden a los tokens de acceso e identificación.

  • La afirmación jti proporciona un identificador único para los JSON Web Tokens (JWT).
  • La afirmación jti se utiliza para evitar que se repitan los JWT.
  • El valor jti es una cadena que distingue mayúsculas de minúsculas.
  • Cuando se usa el flujo de autenticación REFRESH_TOKEN para generar nuevos tokens de acceso e identificación, los nuevos tokens de acceso e identificación tienen la misma afirmación de origen_jti. Las afirmaciones de jti son diferentes.

Para obtener más información, consulte Activar la revocación de tokens y Usar tokens con grupos de usuarios.

Resultados esperados de revocar los tokens de actualización

Para obtener información sobre qué esperar al revocar los tokens de actualización, como el efecto en los tokens de acceso y los JWT, consulte Revocar tokens y RevokeToken.

Nota: Para obtener más información sobre los JWT, consulte Verificación de un JSON Web Token.

Uso de la llamada a la API RevokeToken para revocar los tokens de actualización

Para llamar a la API RevokeToken, se necesitan los siguientes parámetros: el token de actualización que se va a revocar, el ID del cliente de la aplicación y el secreto del cliente.

Nota: El secreto del cliente solo es necesario cuando el ID del cliente tiene un secreto.

Sintaxis de la solicitud:

{
  "ClientId": "string",
  "ClientSecret": "string",
  "Token": "string"
}

Ejemplo de comando de la Interfaz de la línea de comandos de AWS (AWS CLI):

Nota: Reemplace el token <value> por la información de su token. Reemplace el client-id <value> por su ID de cliente. Reemplace el client-secret <value> por su secreto de cliente de la aplicación.

aws cognito-idp revoke-token
--token <value>
--client-id <value>
--client-secret <value>

Nota: Si recibe errores al ejecutar los comandos de la AWS CLI, asegúrese de utilizar la versión más reciente.

Ejemplo de comando cURL:

Nota: Reemplace**<region>** por su región de AWS. Reemplace <refresh token> por la información de su token. Reemplace <client-id> por su ID de cliente.

awscurl \
-v \
-X POST \
--service cognito-idp \
--region <region> \
-H 'X-Amz-Target: AWSCognitoIdentityProviderService.RevokeToken' \
-H 'Content-Type: application/x-amz-json-1.1' \
-d '{"ClientId": "<client-id>", "Token": "<refresh-token>"}' \
https://cognito-idp.<region>.amazonaws.com

Uso del punto de conexión de revocación para revocar los tokens de actualización

El punto de conexión /oauth2/revoke está disponible después de añadir un dominio a su grupo de usuarios. Una vez que el punto de conexión revoque los tokens, no podrá usarlos para acceder a las API que autentican los tokens de Amazon Cognito. Para obtener información sobre el punto de conexión /oauth2/revoke, como los parámetros de la solicitud, consulte Revocar el punto de conexión.

Ejemplo 1: Revocar el token con un cliente de aplicación sin ningún secreto de aplicación:

Nota: Reemplace**<region>** por su región de AWS. Reemplace <refresh token> por la información del token de actualización. Reemplace <client-id> por su ID de cliente.

POST /oauth2/revoke HTTP/1.2
    Host: https://mydomain.auth.<region>.amazoncognito.com
    Accept: application/json
    Content-Type: application/x-www-form-urlencoded
    token=<refresh token>&
    client_id=<client-id>

Ejemplo 2: Revocar el token con un cliente de aplicación con secreto de la aplicación:

POST /oauth2/revoke HTTP/1.2
    Host: https://mydomain.auth.<region>.amazoncognito.com
    Accept: application/json
    Content-Type: application/x-www-form-urlencoded
    Authorization: Basic czZCaGRSa3F0MzpnWDFmQmF0M2JW
    token=<refresh token>

Para obtener más información sobre la configuración de un encabezado de autorización, consulte ¿Cómo puedo solucionar el error «Unable to verify secret hash for client» (No se puede verificar el código secreto del cliente) <client-id>de mi grupo de usuarios?

Errores de punto de conexión

Para obtener más información sobre los errores de punto de conexión, consulte Revocar un punto de conexión y revise la información que aparece en Respuesta al error de revocación.

OFICIAL DE AWS
OFICIAL DE AWSActualizada hace un año