POST al endpoint /oauth/token con los siguientes parámetros:
Recuerde que los tokens de sujeto y de actor usados con Custom Token Exchange pueden tener cualquier formato o tipo, siempre que el código de su Action pueda interpretarlos. Debe implementar una validación robusta de los tokens que reciba y acepte. Si no lo hace, se expone a distintos vectores de ataque, como la suplantación o los ataques de repetición, lo que puede permitir que actores maliciosos se autentiquen con el ID de usuario de otra persona o actúen en su nombre sin autorización.Cada
subject_token_type se asigna a un perfil de Custom Token Exchange y está asociado a una Action que se ejecutará para controlar esa transacción.| Parámetro | Descripción |
|---|---|
grant_type | Para Custom Token Exchange, use urn:ietf:params:oauth:grant-type:token-exchange. |
subject_token_type | El tipo del token de sujeto. Para Custom Token Exchange, puede ser cualquier URI dentro de un espacio de nombres de su propiedad, como http://acme.com/legacy-token o urn:acme:legacy-token.Los siguientes espacios de nombres están reservados y no se pueden usar:
|
subject_token | El token de sujeto, que su Action debe validar y usar para identificar al usuario. |
client_id | El ID de cliente de la aplicación que está usando para Token Exchange. Al igual que con otros tipos de grant, también puede pasar el ID de cliente en el encabezado Authorization mediante HTTP Basic Auth. |
client_secret | El secreto del cliente de la aplicación que está usando para Token Exchange. Al igual que con otros tipos de grant, también puede pasar el secreto del cliente en el encabezado Authorization mediante HTTP Basic Auth. También hay otras alternativas disponibles, como se explica en la documentación de referencia de Authentication API de Auth0. Tenga en cuenta que las aplicaciones públicas también pueden usar Custom Token Exchange. En ese caso, asegúrese de leer Protección contra ataques. |
audience | El identificador de API definido en Auth0. Se usará la audiencia predeterminada del inquilino cuando no esté presente, según se configure en Configuración del inquilino. |
scope | (Opcional) El parámetro scope de OAuth2. |
organization | (Opcional) El identificador de la organización con la que desea asociar la solicitud. Como alternativa, puede especificar un nombre de organización si se permite Use Organization Names in Authentication API para su inquilino. Para obtener más información sobre cómo se procesa la solicitud, consulte el método de API api.authentication.setOrganization(). |
actor_token | (Opcional) Un token que identifica al actor o al principal que realiza la delegación en nombre del usuario sujeto. Debe proporcionarse junto con actor_token_type. |
actor_token_type | (Opcional) El tipo del token de actor. Debe proporcionarse junto con actor_token. Para los tokens de ID de Auth0, use urn:ietf:params:oauth:token-type:id_token para la validación automática del lado del servidor. Para otros valores, siga las mismas restricciones de espacio de nombres que para subject_token_type. |
Cuando se establece un actor para la transacción, no se emiten tokens de actualización independientemente de los alcances solicitados. El scope
offline_access se excluye de la respuesta. Esto es intencional: los tokens delegados no deben ir más allá del intercambio inmediato, lo que garantiza que cada solicitud de acceso posterior pase por la lógica de autorización de la Action de CTE para volver a validar la delegación.Su Action de CTE es responsable de validar de forma segura el actor_token aplicando el mismo nivel de rigor (por ejemplo, verificación de firma criptográfica) que aplicaría al subject_token. Cuando actor_token_type es urn:ietf:params:oauth:token-type:id_token, Auth0 realiza esta validación automáticamente.event.request.body en la Action correspondiente.
Solicitud de ejemplo
Ejemplo de solicitud con token de actor
actor_token y actor_token_type: