Skip to main content
POST /oauth/token El intercambio de tokens On-Behalf-Of (OBO) (RFC 8693) permite que los servicios de nivel intermedio intercambien un token con alcance de usuario por un nuevo token para llamar a servicios posteriores. El nuevo token conserva la identidad y los permisos del usuario original, a la vez que tiene alcance específico para el servicio posterior, lo que permite que ese servicio tome decisiones de autorización en función del usuario final. La cadena de delegación se rastrea en la claim act (actor), y cada nivel representa un servicio en la cadena de llamadas. Para obtener más información, consulta la documentación del intercambio de tokens On-Behalf-Of.

Observaciones

  • Solo los clientes de API personalizados asociados a un servidor de recursos pueden usar el intercambio de tokens OBO. Un cliente de API personalizado debe cumplir los siguientes requisitos:
    • Establezca app_type en resource_server.
    • Establezca resource_server_identifier en un servidor de recursos válido; por ejemplo, https://my-api.example.com. Auth0 usa el identificador del servidor de recursos como parámetro de audiencia en las llamadas de autorización.
  • Los alcances emitidos para la aplicación pueden diferir de los alcances solicitados. En este caso, se incluirá un parámetro scope en el JSON de respuesta. Los alcances se basan en las políticas de Role-Based Access Control (RBAC) del usuario.
  • Los intercambios de tokens OBO activan el desencadenador de Action post-login, donde event.transaction.protocol se establece en oauth2-token-exchange y event.transaction.actor registra toda la cadena de delegación.
  • La cadena de delegación está limitada a cinco niveles anidados. El intercambio de tokens OBO falla si el token de sujeto ya tiene cinco niveles act anidados.
  • Almacene en caché los tokens de acceso durante la duración del token, en lugar de solicitar uno nuevo para cada llamada a la API. Los tokens de acceso se pueden reutilizar hasta que expiren; los intercambios de tokens repetidos desperdician recursos, aumentan la latencia y pueden activar límites de frecuencia.

Parámetros

string
Una prueba DPoP para la solicitud. Es opcional y solo se requiere si su aplicación usa Demonstrating Proof-of-Possession.
string
La IP del usuario final como cadena de texto. Defínalo si desea que la protección Suspicious IP Throttling funcione en escenarios del lado del servidor.

Cuerpo de la solicitud

string
requerido
Indica el flujo que está utilizando. Para el intercambio de tokens On-Behalf-Of, use urn:ietf:params:oauth:grant-type:token-exchange.
string
requerido
El tipo del token de sujeto. Para el intercambio de tokens On-Behalf-Of, use urn:ietf:params:oauth:token-type:access_token.
string
requerido
El token de acceso de Auth0 entrante del usuario o del servicio de origen que el servicio de nivel intermedio tiene actualmente.
string
requerido
Indica qué tipo de token quiere recibir. Para el intercambio de tokens On-Behalf-Of, use urn:ietf:params:oauth:token-type:access_token.
string
requerido
El ID de cliente de su cliente de API personalizado. El cliente de API personalizado debe estar asociado a un servidor de recursos (con el mismo identificador). Al igual que con otros tipos de concesión, también puede pasar el ID de cliente en el encabezado Authorization mediante autenticación básica HTTP.
string
requerido
El secreto del cliente de su cliente de API personalizado. Al igual que con otros tipos de concesión, también puede pasar el secreto del cliente en el encabezado Authorization mediante autenticación básica HTTP. Revise las alternativas en la documentación de referencia de la API de autenticación de Auth0. Tenga en cuenta que no puede establecer token_endpoint_auth_method en none para el intercambio de tokens OBO.
string
requerido
El identificador único de la API posterior a la que quiere acceder. Este es el identificador del servicio posterior que recibe y valida el nuevo token.
string
(Opcional) Una lista, delimitada por espacios, de permisos específicos solicitados para la llamada a la API posterior. Si no se especifica, se incluirán todos los alcances concedidos al usuario para la audiencia de destino según las políticas de RBAC.

Respuesta

Campos de respuesta

string
El nuevo token de acceso de Auth0 con alcance para la API posterior. Este JSON Web Token (JWT) contiene el mismo sub (identidad del usuario) que el token de sujeto, con aud establecido en la audiencia solicitada de la API posterior. El claim act rastrea la cadena de delegación.
string
Confirma el formato del token devuelto. Coincide con requested_token_type de la solicitud.Valor: urn:ietf:params:oauth:token-type:access_token
string
Especifica el esquema de autenticación que se usará en el encabezado Authorization. Para OBO, es Bearer, a menos que se use DPoP, en cuyo caso se usará DPoP.
number
La duración del token en segundos.
string
(Opcional) Solo se incluye si los alcances concedidos difieren de los alcances solicitados. Lista de alcances delimitada por espacios que se concedieron realmente.