> ## Documentation Index
> Fetch the complete documentation index at: https://translations.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

> Obtén más información sobre el flujo de Custom Token Exchange.

# Flujo de Custom Token Exchange

El Custom Token Exchange permite que las aplicaciones intercambien un token de seguridad existente, denominado `subject_token`, por tokens de acceso, ID y de actualización de Auth0 mediante una llamada al endpoint `/oauth/token`, de acuerdo con la [RFC 8693](https://datatracker.ietf.org/doc/html/rfc8693).

<div id="how-it-works">
  ## Cómo funciona
</div>

El flujo de Custom Token Exchange se rige por una única [Action de Custom Token Exchange](/es/docs/customize/actions/explore-triggers/signup-and-login-triggers/custom-token-exchange-trigger), que se selecciona en función del parámetro `subject_token_type` recibido, según se configura en un [perfil de Custom Token Exchange](/es/docs/authenticate/custom-token-exchange/configure-custom-token-exchange).

<Frame>
  <img src="https://mintcdn.com/translations/xwVvTWJUElMm5YAK/docs/images/custom-token-exchange/cte_how_it_works_diagram.png?fit=max&auto=format&n=xwVvTWJUElMm5YAK&q=85&s=a9ae180f06e5475951032bff449c786d" alt="" width="1372" height="846" data-path="docs/images/custom-token-exchange/cte_how_it_works_diagram.png" />
</Frame>

Como requisito previo del flujo, debe definir un [perfil de Custom Token Exchange](/es/docs/authenticate/custom-token-exchange/configure-custom-token-exchange#create-custom-token-exchange-profile) que asigne un `subject_token_type` específico a la Action que procesará las solicitudes.

Cuando se activa el flujo de Custom Token Exchange:

1. La aplicación envía una solicitud `POST` al endpoint `/oauth/token` con el token de seguridad que se va a intercambiar (el `subject_token`) y su `subject_token_type` correspondiente. La solicitud también puede incluir, de forma opcional, un `actor_token` y un `actor_token_type` para identificar a una entidad principal que actúa en nombre del usuario.
2. Auth0 valida la solicitud del cliente y las credenciales.
3. Se ejecuta la Action de Custom Token Exchange asociada. Su código personalizado debe decodificar y validar el `subject_token`, aplicar las políticas de autorización necesarias y establecer el usuario de la transacción para aprobar el intercambio. La Action también puede establecer un actor para la transacción mediante `api.authentication.setActor()`, lo que da como resultado una reclamación `act` en los tokens emitidos que identifica quién actúa en nombre del usuario.
4. El resto del flujo estándar de Auth0 se ejecuta para generar un token de acceso de Auth0 y, opcionalmente, un token de ID y un token de actualización para el usuario establecido.
5. Después, la aplicación solicitante puede usar estos tokens recién emitidos para llamar de forma segura a las API en nombre del usuario que se estableció en la Action.

<div id="get-started">
  ## Primeros pasos
</div>

Para usar Custom Token Exchange, debes [crear un perfil de Custom Token Exchange](/es/docs/authenticate/custom-token-exchange/configure-custom-token-exchange#create-custom-token-exchange-profile). El flujo de trabajo general consta de tres pasos principales de configuración, seguidos de una llamada a tu API:

1. [Crea e implementa una Action](/es/docs/authenticate/custom-token-exchange/configure-custom-token-exchange#create-action-for-the-profile) que contendrá la lógica para controlar el intercambio de tokens. En esta Action, escribe la lógica personalizada para:
   * Decodificar y validar de forma segura el `subject_token` entrante.
   * Realizar los pasos de autorización necesarios para la transacción.
   * Establecer el usuario correspondiente para la transacción mediante los métodos disponibles en el [objeto de API de Actions para Custom Token Exchange](/es/docs/customize/actions/explore-triggers/signup-and-login-triggers/custom-token-exchange-trigger/custom-token-exchange-api-object).
2. [Crea el perfil de Custom Token Exchange](/es/docs/authenticate/custom-token-exchange/configure-custom-token-exchange#create-custom-token-exchange-profile) en tu inquilino. El perfil establece una relación uno a uno entre un `subject_token_type` específico que usarás en tus solicitudes y la Action que acabas de crear.
3. [Habilita Custom Token Exchange para tu aplicación](/es/docs/authenticate/custom-token-exchange/configure-custom-token-exchange#enable-custom-token-exchange-for-your-application).

Una vez que hayas creado el perfil de Custom Token Exchange, estarás listo para:

1. Llamar a tu API: ahora puedes realizar una solicitud `POST` al endpoint `/oauth/token` con los parámetros necesarios, incluidos `subject_token` y `subject_token_type`, que corresponden al perfil que configuraste. Para obtener más información, consulta [Llamar a tu API mediante Custom Token Exchange](/es/docs/get-started/authentication-and-authorization-flow/token-exchange-flow/call-your-api-using-the-custom-token-exchange-flow).

<div id="learn-more">
  ## Más información
</div>

* [Custom Token Exchange](/es/docs/authenticate/custom-token-exchange)
* [Casos prácticos de ejemplo](/es/docs/authenticate/custom-token-exchange/cte-example-use-cases)
* [Configurar Custom Token Exchange](/es/docs/authenticate/custom-token-exchange/configure-custom-token-exchange)
