Authorization. Comme l’API backend ne reçoit aucun jeton d’actualisation émis pour la SPA, elle ne peut pas utiliser l’échange de jeton d’actualisation pour accéder à Token Vault afin d’appeler des API externes.
À la place, l’API backend peut échanger le jeton d’accès Auth0 reçu de la SPA contre un jeton d’accès d’un fournisseur externe, ce que l’on appelle l’échange de jetons d’accès. Ce processus permet de conserver les informations d’identification externes sensibles en sécurité dans le backend.
Dans l’échange de jetons d’accès d’Auth0, l’API backend agit à la fois comme client et comme serveur de ressources :
- Client : utilise ses propres informations d’identification pour effectuer de façon sécurisée l’échange de jetons d’accès avec le Serveur d’autorisation Auth0. Dans Auth0, vous créez un Custom API Client avec le même identifiant que l’API backend. L’API backend transmet les informations d’identification du Custom API Client pour effectuer de façon sécurisée l’échange de jetons d’accès avec le Serveur d’autorisation Auth0.
- Serveur de ressources : expose l’API backend à la SPA et valide le jeton d’accès Auth0.
Cas d’utilisation
- Une API backend : un utilisateur interagit avec une SPA, qui appelle ensuite une API backend pour échanger un jeton d’accès Auth0 contre le jeton d’accès d’un fournisseur externe avec le Serveur d’autorisation Auth0.
- Architecture de microservices : des services backend, comme des serveurs MCP ou d’autres serveurs de ressources OAuth 2.0, qui doivent échanger des jetons d’accès afin d’accéder à des API externes.
Fonctionnement

Prérequis
Étape 2 : Le SPA appelle l’API back-end avec le jeton d’accès Auth0
Authorization à l’API back-end. L’API back-end valide le jeton d’accès Auth0 en vérifiant les éléments suivants :
- Signature : Vérifie la signature du jeton à l’aide de la clé publique d’Auth0. Cela confirme qu’Auth0 a émis le jeton d’accès.
- Émetteur : Vérifie la revendication
issdans la charge utile du jeton pour confirmer que le jeton a été émis par votre tenant Auth0. - Audience : Vérifie la revendication
audpour s’assurer qu’elle correspond à l’identifiant unique de l’API back-end elle-même. Cela confirme que le jeton a été émis spécifiquement pour ce serveur de ressources. - Expiration : Valide la revendication
exppour s’assurer que le jeton est toujours valide et qu’il n’a pas expiré. - Scopes : Vérifie la revendication
scopepour déterminer quelles autorisations ont été accordées à l’utilisateur.
Étape 3 : l’API backend effectue l’échange de jetons d’accès
POST au point de terminaison /oauth/token.
Dans la requête de jeton d’accès, l’API backend :
- Transmet les informations d’identification client de l’API backend (celles du Client d’API personnalisé) au Serveur d’autorisation Auth0 pour s’authentifier.
- Échange un jeton d’accès Auth0 contre un jeton d’accès Google.
| Paramètre | Description |
|---|---|
grant_type | Le type de grant. Pour Token Vault, définissez-le sur urn:auth0:params:oauth:grant-type:token-exchange:federated-connection-access-token |
client_id | ID de l’application cliente |
client_secret | Secret client. Remarque : vous pouvez utiliser n’importe quelle méthode d’authentification de client pour obtenir le jeton d’accès du fournisseur externe. |
subject_token_type | Type du jeton de sujet. Pour l’échange de jeton d’accès, définissez-le sur le jeton d’accès : urn:ietf:params:oauth:token-type:access_token. |
subject_token | Le jeton d’accès Auth0 que le Serveur d’autorisation Auth0 valide pour identifier l’utilisateur. |
requested_token_type | Le type de jeton demandé. Pour Token Vault, définissez-le sur le jeton d’accès du fournisseur externe ou http://auth0.com/oauth/token-type/federated-connection-access-token |
connection | Le nom de la connexion, dans ce cas, google-oauth2. |
login_hint | (Facultatif) Utilisez uniquement login_hint si l’utilisateur possède plusieurs comptes provenant de la même connexion, par exemple un compte Google professionnel et un compte Google personnel. Lorsque vous transmettez une valeur pour login_hint au cours de l’échange de jetons, vous identifiez explicitement pour lequel des multiples comptes liés de l’utilisateur la requête est effectuée. |
- Auth0 vérifie que le client qui effectue la requête d’échange de jeton d’accès est lié à l’API backend identifiée par l’
audiencedu jeton d’accès. - Auth0 vérifie si le tableau
connected_accountsdu profil de l’utilisateur contient un compte d’utilisateur avec le nom de la connexion transmis dans la requête d’autorisation. - Si la requête d’autorisation contient
login_hint, Auth0 recherche une identité correspondant à la fois au nom de la connexion et à la valeur delogin_hint. - Si Auth0 ne trouve pas l’utilisateur, il renvoie un code d’état
401avec un message d’erreur.