Authorization. Como la API de backend no recibe ningún token de actualización emitido para la SPA, no puede usar el intercambio de token de actualización para acceder a Token Vault y llamar a API externas.
En su lugar, la API de backend puede intercambiar el token de acceso de Auth0 recibido de la SPA por el token de acceso de un proveedor externo; esto es lo que se conoce como intercambio de tokens de acceso. Este proceso mantiene seguras en el backend las credenciales externas confidenciales.
En el intercambio de tokens de acceso de Auth0, la API de backend actúa tanto como cliente como Servidor de autorización:
- Cliente: Usa sus propias credenciales para realizar de forma segura el intercambio de tokens de acceso con el Servidor de autorización de Auth0. En Auth0, se crea un Custom API Client con el mismo identificador que la API de backend. La API de backend pasa las credenciales del Custom API Client para realizar de forma segura el intercambio de tokens de acceso con el Servidor de autorización de Auth0.
- Servidor de recursos: Expone la API de backend a la SPA y valida el token de acceso de Auth0.
Casos de uso
- Una API de backend: un usuario interactúa con una SPA, que luego llama a una API de backend para intercambiar un token de acceso de Auth0 por un token de acceso de un proveedor externo con el Servidor de autorización de Auth0.
- Arquitectura de microservicios: servicios de backend, como servidores MCP u otros servidores de recursos de OAuth 2.0, que necesitan intercambiar tokens de acceso para acceder a API externas.
Cómo funciona

Requisitos previos
Paso 2: La SPA llama a la API de backend con el token de acceso de Auth0
Authorization a la API de backend. La API de backend valida el token de acceso de Auth0 comprobando lo siguiente:
- Firma: Verifica la firma del token con la clave pública de Auth0. Esto confirma que Auth0 emitió el token de acceso.
- Emisor: Comprueba el claim
issen el payload del token para confirmar que el token fue emitido por tu inquilino de Auth0. - Audiencia: Comprueba el claim
audpara asegurarse de que coincida con el identificador único de la propia API de backend. Esto confirma que el token se emitió específicamente para este servidor de recursos. - Expiración: Valida el claim
exppara asegurarse de que el token siga siendo válido y no haya expirado. - Scopes: Comprueba el claim
scopepara determinar qué permisos se le han concedido al usuario.
Paso 3: La API de backend realiza el intercambio de tokens de acceso
POST al endpoint /oauth/token.
En la solicitud de token, la API de backend:
- Pasa las credenciales de cliente de la API de backend (las del Custom API Client) al Servidor de autorización de Auth0 para autenticarse.
- Intercambia un token de acceso de Auth0 por un token de acceso de Google.
| Parámetro | Descripción |
|---|---|
grant_type | El tipo de concesión. Para Token Vault, configúralo en urn:auth0:params:oauth:grant-type:token-exchange:federated-connection-access-token |
client_id | ID de la aplicación cliente |
client_secret | Secreto del cliente. Nota: Puedes usar cualquier método de autenticación de cliente para obtener el token de acceso de un proveedor externo. |
subject_token_type | Tipo de token de sujeto. Para el intercambio de tokens de acceso, configúralo con el token de acceso: urn:ietf:params:oauth:token-type:access_token. |
subject_token | El token de acceso de Auth0 que el Servidor de autorización de Auth0 valida para identificar al usuario. |
requested_token_type | El tipo de token solicitado. Para Token Vault, configúralo con el token de acceso del proveedor externo o http://auth0.com/oauth/token-type/federated-connection-access-token |
connection | El nombre de la conexión, en este caso, google-oauth2. |
login_hint | (Opcional) Usa login_hint solo si el usuario tiene varias cuentas de la misma conexión, como una cuenta de Google del trabajo y una cuenta personal de Google. Cuando proporcionas un valor para login_hint durante el intercambio de tokens, indicas explícitamente a cuál de las varias cuentas vinculadas del usuario corresponde la solicitud. |
- Auth0 verifica que el cliente que realiza la solicitud de intercambio de tokens de acceso esté vinculado a la API de backend identificada por la
audiencedel token de acceso. - Auth0 comprueba si el array
connected_accountsdel perfil del usuario contiene una cuenta de usuario con el nombre de la conexión indicado en la solicitud de autorización. - Si la solicitud de autorización contiene
login_hint, Auth0 busca una identidad que coincida tanto con el nombre de la conexión como conlogin_hint. - Si Auth0 no puede encontrar al usuario, devuelve un código de estado
401con un mensaje de error.