Saltar al contenido principal
Custom Token Exchange (CTE) está disponible actualmente en acceso anticipado para todos los clientes de Auth0 B2C Professional, B2B Professional y Enterprise. Al usar esta funcionalidad, aceptas los términos aplicables de la prueba gratuita del Master Subscription Agreement de Okta. Para obtener más información sobre el ciclo de lanzamientos de productos de Auth0, consulta Etapas de lanzamiento del producto. Para obtener más información sobre los tipos de suscripción, revisa la página de precios de Auth0.
Después de que el Servidor de autorización de Auth0 valida que la solicitud de Custom Token Exchange es válida y corresponde a un perfil de Custom Token Exchange existente, el disparador custom-token-exchange ejecuta la única Action asociada a ese perfil. Si la Action se completa correctamente y asigna un usuario a la transacción, las Actions de post-login y el resto del pipeline de Auth0 se ejecutan para ese usuario autenticado.
Las Actions de este flujo son bloqueantes (sincrónicas), lo que significa que se ejecutan como parte del proceso de un disparador e impiden que el resto del pipeline de Auth0 se ejecute hasta que la Action se complete.

Custom Token Exchange vs. Actions de Post Login

El disparador de Post Login Actions se ejecuta después de que se ejecute la Action de Custom Token Exchange para el usuario que establezcas en la transacción. Para otros casos de uso, como agregar claims personalizadas a los tokens de acceso, usa el disparador Post Login Action. Custom Token Exchange usa el tipo de grant de intercambio de tokens, en el que event.transaction.protocol se establece en oauth2-token-exchange en el disparador Post Login Action. Tanto Custom Token Exchange como Native Social Login usan el tipo de grant de intercambio de tokens. Para diferenciarlos, usa el valor de subject_token_type, que debe corresponder a uno de tus perfiles de Custom Token Exchange.
El acceso anticipado de Custom Token Exchange no admite api.authentication.challengeWith() ni api.authentication.enrollWith(). Si usas esos métodos con tus Actions de Post Login, la transacción fallará con un error no recuperable. Asegúrate de omitir estos dos métodos cuando event.transaction.protocol==oauth2-token-exchange, según el valor de subject_token_type.

Compatibilidad con actores para delegación

El disparador custom-token-exchange admite escenarios de autorización delegada. La Action puede llamar a api.authentication.setActor() para incluir un claim act en los tokens emitidos, que identifica a la entidad principal que actúa en nombre del usuario. Se puede llamar a setActor() independientemente de si la solicitud incluye un actor_token. El parámetro actor_token es una de las formas en que la aplicación que realiza la llamada puede pasar información del actor a la Action, pero la identidad del actor también puede estar integrada en el propio subject_token u obtenerse por otros medios personalizados dentro del código de la Action. Cuando la solicitud incluye actor_token y actor_token_type, estos valores están disponibles en event.transaction. Si actor_token_type es urn:ietf:params:oauth:token-type:id_token y el token es un ID Token válido de Auth0 del mismo inquilino, el servidor valida automáticamente el token y rellena event.transaction.actor_token_user con el perfil del usuario actor. El claim act establecido mediante setActor() también está disponible en las Actions Post-Login a través de event.transaction.actor.

Disparadores

Custom Token Exchange

El disparador custom-token-exchange es el primer paso del pipeline de Auth0. Esta función se ejecuta después de validar la solicitud de Custom Token Exchange recibida y asignarla correctamente a un perfil existente.

Referencias

  • Objeto de evento: Proporciona información contextual sobre una solicitud de intercambio de tokens, incluido subject_token, la dirección IP, el cliente, entre otros.
  • Objeto de API: Proporciona métodos para usar con su Action de intercambio de tokens que le permiten establecer el usuario, establecer el actor para la delegación, rechazar la transacción, establecer los metadatos del usuario y acceder a la caché de Actions, entre otros.

Casos de uso habituales

Para conocer los casos de uso habituales de Custom Token Exchange, consulte Ejemplos de casos de uso.