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_typeenresource_server. - Establezca
resource_server_identifieren 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.
- Establezca
-
Los alcances emitidos para la aplicación pueden diferir de los alcances solicitados. En este caso, se incluirá un parámetro
scopeen 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, dondeevent.transaction.protocolse establece enoauth2-token-exchangeyevent.transaction.actorregistra 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
actanidados. - 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_tokenstring
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.