> ## Documentation Index
> Fetch the complete documentation index at: https://translations.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# Obtenir un jeton

> Échangez un jeton Auth0 contre le jeton d’accès d’un fournisseur externe stocké dans Token Vault afin que votre application puisse appeler des API externes au nom de l’utilisateur.

`POST /oauth/token`

Token Vault permet à une application d’échanger un jeton Auth0 contre le jeton d’accès d’un fournisseur externe afin d’appeler des API externes au nom de l’utilisateur. Cet échange repose sur l’échange de jetons OAuth 2.0 ([RFC 8693](https://datatracker.ietf.org/doc/html/rfc8693)) et utilise le type d’autorisation `urn:auth0:params:oauth:grant-type:token-exchange:federated-connection-access-token`.

Le type d’autorisation prend en charge deux variantes, qui ne diffèrent que par le `subject_token` envoyé :

* **Échange de jeton d’actualisation** : échangez un jeton d’actualisation Auth0 contre le jeton d’accès du fournisseur externe. Utilisez cette option lorsque votre application détient un jeton d’actualisation Auth0. Pour en savoir plus, consultez [Échange de jeton d’actualisation avec Token Vault](/docs/fr-ca/secure/call-apis-on-users-behalf/token-vault/refresh-token-exchange-with-token-vault).
* **Échange de jeton d’accès** : échangez un jeton d’accès Auth0 contre le jeton d’accès du fournisseur externe. Utilisez cette option lorsqu’une API dorsale ne reçoit qu’un jeton d’accès Auth0, par exemple d’une application monopage. Pour en savoir plus, consultez [Échange de jeton d’accès avec Token Vault](/docs/fr-ca/secure/call-apis-on-users-behalf/token-vault/access-token-exchange-with-token-vault).

Pour en savoir plus, consultez la [documentation de Token Vault](/docs/fr-ca/secure/call-apis-on-users-behalf/token-vault).

<div id="remarks">
  ## Remarques
</div>

* Avant de pouvoir effectuer l’échange, vous devez [configurer la connexion pour Token Vault](/docs/fr-ca/secure/call-apis-on-users-behalf/token-vault/configure-token-vault) et connecter le compte externe de l’utilisateur au moyen du [flux Connected Accounts](/docs/fr-ca/secure/call-apis-on-users-behalf/token-vault/connected-accounts-for-token-vault), qui utilise la [My Account API](/docs/fr-ca/manage-users/my-account-api).

* Pour l’**échange de jeton d’actualisation**, définissez `subject_token_type` sur `urn:ietf:params:oauth:token-type:refresh_token`. Token Vault ne prend pas en charge la rotation des jetons d’actualisation. Vous devez donc désactiver **Allow Refresh Token Rotation** pour votre application dans le Auth0 Dashboard. Vous pouvez utiliser [DPoP](/docs/fr-ca/secure/sender-constraining/demonstrating-proof-of-possession-dpop) pour lier les jetons émis par Auth0 à votre client afin d’accroître la sécurité.

* Pour l’**échange de jeton d’accès**, définissez `subject_token_type` sur `urn:ietf:params:oauth:token-type:access_token`. Vous devez [créer un Custom API Client](/docs/fr-ca/secure/call-apis-on-users-behalf/token-vault/configure-token-vault#create-custom-api-client) ayant le même identifiant que votre API dorsale et pour lequel le type d’autorisation Token Vault est activé. L’API dorsale s’authentifie à l’aide des identifiants du Custom API Client.

* Les portées émises peuvent différer de celles accordées au compte externe. Dans ce cas, un champ `scope` est inclus dans la réponse JSON.

* Auth0 renvoie un code d’état `401` s’il ne parvient pas à trouver une identité d’utilisateur correspondant à la `connection` (et à `login_hint`, s’il est fourni).

<div id="headers">
  ## En-têtes
</div>

<ParamField header="DPoP" type="string">
  Une preuve DPoP associée à la requête. Elle est facultative et requise uniquement si votre application utilise [Demonstrating Proof-of-Possession](/docs/fr-ca/secure/sender-constraining/demonstrating-proof-of-possession-dpop).
</ParamField>

<ParamField header="auth0-forwarded-for" type="string">
  L’adresse IP de l’utilisateur final sous forme de chaîne de caractères. Définissez-la si vous souhaitez que la protection [Suspicious IP Throttling](/docs/fr-ca/secure/attack-protection/suspicious-ip-throttling) fonctionne dans les scénarios côté serveur.
</ParamField>

<div id="request-body">
  ## Corps de la requête
</div>

<ParamField body="grant_type" type="string" required>
  Indique le flux utilisé. Pour Token Vault, utilisez `urn:auth0:params:oauth:grant-type:token-exchange:federated-connection-access-token`.
</ParamField>

<ParamField body="subject_token_type" type="string" required>
  Le type du jeton sujet. Pour l’échange de jeton d’actualisation, utilisez `urn:ietf:params:oauth:token-type:refresh_token`. Pour l’échange de jeton d’accès, utilisez `urn:ietf:params:oauth:token-type:access_token`.
</ParamField>

<ParamField body="subject_token" type="string" required>
  Le jeton Auth0 que le serveur d’autorisation Auth0 valide pour identifier l’utilisateur. Il s’agit d’un jeton d’actualisation Auth0 dans le cadre de l’échange de jeton d’actualisation, ou d’un jeton d’accès Auth0 dans le cadre de l’échange de jeton d’accès.
</ParamField>

<ParamField body="requested_token_type" type="string" required>
  Indique le type de jeton que vous souhaitez recevoir. Pour Token Vault, utilisez `http://auth0.com/oauth/token-type/federated-connection-access-token`.
</ParamField>

<ParamField body="connection" type="string" required>
  Le nom de la connexion au fournisseur externe, par exemple `google-oauth2`.
</ParamField>

<ParamField body="client_id" type="string" required>
  Le Client ID de votre application. Pour l’échange de jeton d’accès, il s’agit du Client ID du Custom API Client. Comme pour les autres types d’autorisation, vous pouvez également transmettre le Client ID dans l’en-tête Authorization à l’aide de l’authentification Basic.
</ParamField>

<ParamField body="client_secret" type="string">
  (Facultatif) Le Client Secret de votre application. Vous pouvez utiliser toute méthode d’authentification du client pour obtenir le jeton d’accès du fournisseur externe. Comme pour les autres types d’autorisation, vous pouvez également transmettre le Client Secret dans l’en-tête Authorization à l’aide de l’authentification Basic. Consultez les autres options dans la [documentation de référence de l’Auth0 Authentication API](https://auth0.com/docs/api/authentication#authentication-methods).
</ParamField>

<ParamField body="login_hint" type="string">
  (Facultatif) Utilisez `login_hint` uniquement si l’utilisateur possède plusieurs comptes associés à la même connexion, comme un compte Google professionnel et un compte Google personnel. Lorsque vous transmettez une valeur pour `login_hint` lors de l’échange de jeton, vous indiquez explicitement auquel des comptes liés de l’utilisateur la requête est destinée.
</ParamField>

<div id="response">
  ## Réponse
</div>

| Statut | Description                                                                                                                                                                         |
| ------ | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| 200    | Réponse réussie. Renvoie le jeton d’accès du fournisseur externe, avec ses portées et sa durée d’expiration.                                                                        |
| 401    | Non autorisé. Le jeton du sujet est invalide ou expiré, les identifiants du client sont incorrects, ou Auth0 ne trouve aucune identité utilisateur correspondant à la `connection`. |
| 403    | Interdit. Le client n’est pas autorisé à effectuer l’échange de jetons.                                                                                                             |

<ResponseExample>
  ```json 200 Response theme={null}
  {
    "access_token": "<YOUR_GOOGLE_ACCESS_TOKEN>",
    "scope": "https://www.googleapis.com/auth/calendar https://www.googleapis.com/auth/calendar.events https://www.googleapis.com/auth/userinfo.email https://www.googleapis.com/auth/userinfo.profile openid",
    "expires_in": 1377,
    "issued_token_type": "http://auth0.com/oauth/token-type/federated-connection-access-token",
    "token_type": "Bearer"
  }
  ```
</ResponseExample>

<div id="response-fields">
  ## Champs de réponse
</div>

<ResponseField name="access_token" type="string">
  Le jeton d’accès du fournisseur externe. Utilisez ce jeton pour appeler l’API du fournisseur externe au nom de l’utilisateur.
</ResponseField>

<ResponseField name="scope" type="string">
  Une liste de portées accordées au jeton d’accès du fournisseur externe, séparés par des espaces.
</ResponseField>

<ResponseField name="expires_in" type="number">
  La durée de vie du jeton d’accès, en secondes.
</ResponseField>

<ResponseField name="issued_token_type" type="string">
  Confirme le format du jeton renvoyé.

  Valeur : `http://auth0.com/oauth/token-type/federated-connection-access-token`
</ResponseField>

<ResponseField name="token_type" type="string">
  Indique le schéma d’authentification à utiliser dans l’en-tête Authorization. Pour Token Vault, il s’agit de `Bearer`.
</ResponseField>
