Aprueba y revoca tokens de acceso

Estás viendo la documentación de Apigee X.
Consulta la documentación de Apigee Edge.

Revoca tokens de acceso y actualización

En algunos casos, se requiere que las apps revoquen o invaliden automáticamente los tokens, por ejemplo, cuando un usuario sale de una aplicación habilitada para OAuth. Si revocas un token, puedes volver a aprobarlo en cualquier momento antes de que venza.

Al procedimiento de revocación de tokens lo define la especificación de revocación de tokens de OAuth 2.0.

Apigee proporciona una operación InvalidateToken que te permite configurar un extremo de revocación de tokens dedicado. Mediante la publicación del URI de este extremo, permites que los desarrolladores de apps invaliden los tokens emitidos por Apigee.

A continuación, se muestra una configuración de ejemplo para la política de OAuthV2 y la operación InvalidateToken. En este caso, se revocan el token de acceso y su token de actualización asociado. Técnicamente, ambos se revocan porque la marca de cascada se configura como verdadera. Para obtener más información sobre cómo funciona la marca de cascada, consulta la sección de atributos del elemento Token a continuación.

<OAuthV2 name="InvalidateToken">
  <Operation>InvalidateToken</Operation>
  <Tokens>
    <Token type="accesstoken" cascade="true">flow.variable</Token>
  </Tokens>
</OAuthV2>

Elemento <Tokens>/<Token>

Identifica la variable de flujo que especifica el token que se revocará. Si se espera que los desarrolladores envíen una solicitud de revocación mediante un parámetro de búsqueda llamado access_token, por ejemplo, la variable de flujo correcta será la siguiente: request.queryparam.access_token. Para solicitar el token en un encabezado HTTP, por ejemplo, configura este valor como request.header.access_token.

Atributos

  • type (obligatorio, string): Es el tipo de token identificado por la variable especificada. Los valores admitidos son accesstoken y refreshtoken:.
    • Para revocar un token de acceso, especifica el tipo accesstoken.
    • Para revocar los tokens de acceso y actualización, especifica el tipo refreshtoken. Cuando ve el tipo refreshtoken, Apigee asume que el token es un token de actualización. Si se encuentra ese token de actualización, se revoca. Si no se encuentra ese token de actualización, Apigee verifica si se trata de un token de acceso. Si el token de acceso existe, se revoca.

      Nota: Si pasas un token que ya se invalidó a una política InvalidateToken, esta no mostrará un error, aunque esperes que lo haga. Esta operación no tiene ningún efecto.
  • cascade (opcional, booleano, valor predeterminado: verdadero): El uso principal de este atributo es revocar un token de actualización sin revocar su token de acceso asociado. Considera estos casos:
    • Revoca solo un token de actualización y no revoques el token de acceso asociado. Para ello, configura el tipo <Token> como refreshtoken y configura la cascada como false.
    • Revoca el token de acceso y el token de actualización. Para ello, configura el tipo <Token> como accesstoken. El valor de la cascada puede ser true (predeterminado) o false. Si lo configuras como true, se revocan el token de acceso y el token de actualización. Si lo configuras como false, el token de acceso se revoca y el token de actualización no se puede usar. Consulta la siguiente nota para obtener más detalles.
    • Revoca un token de acceso sin revocar el token de actualización asociado. Esto no se admite. Consulta la siguiente nota para obtener una explicación más detallada.

Nota: Por motivos de seguridad, si revocas un token de acceso, el token de actualización asociado también se revocará. Por lo tanto, no puedes usar el atributo de cascada para revocar solo un token de acceso. Por ejemplo, si configuras el tipo <Token> como accesstoken y estableces cascade=false, el token de acceso se revocará (como se espera). No obstante, el token de actualización asociado no se podrá usar. No se podrá usar para actualizar el token de acceso revocado. El caso de uso principal del atributo de cascada es cuando solo quieres revocar un token de actualización. En este caso, configura el tipo <Token> como refreshtoken y establece cascade=false. El token de actualización se revocará, pero el token de acceso asociado seguirá siendo válido (hasta que venza o sea revocado). Para obtener más información, consulta esta charla del foro de la comunidad.

Aprueba tokens de acceso y actualización

Usa la operación ValidateToken para “volver a aprobar” un token revocado. Es decir, cuando aplicas esta operación, el estado del el token de acceso o actualización de destino se cambia de "revocado" a "aprobado". Puedes validar cualquier token revocado que aún no haya vencido.

<OAuthV2 name="ValidateToken">
  <Operation>ValidateToken</Operation>
  <Tokens>
    <Token type="refreshtoken" cascade="true">flow.variable</Token>
  </Tokens>
</OAuthV2>

Elemento <Tokens>/<Token>

Identifica la variable de flujo que especifica el token que se validará. Si se espera que los desarrolladores envíen una solicitud de validación mediante un parámetro de búsqueda llamado access_token, por ejemplo, la variable de flujo correcta será la siguiente: request.queryparam.access_token. Para solicitar el token en un encabezado HTTP, por ejemplo, configura este valor como request.header.access_token.

Atributos

  • type (obligatorio, string): Es el tipo de token identificado por la variable especificada. Los valores admitidos son accesstoken y refreshtoken.
  • cascade (opcional, booleano): De forma predeterminada, esta opción se configura como true y provoca que la validación se propague a los tokens asociados. Por lo tanto, si se aplica a un token de actualización, este también se validará. Si se aplica a un token de acceso, también se validará su token de actualización asociado. Si la configuras como false, solo se validará el token de actualización o acceso especificado.