> ## 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.

> Configurez Token Vault pour stocker et échanger de façon sécuritaire des jetons d’API tiers au nom des utilisateurs, y compris dans les flux d’échange de jetons d’actualisation et d’accès.

# Configurer Token Vault

Une fois qu'un utilisateur s'authentifie auprès d'un [fournisseur externe pris en charge](/docs/fr-ca/secure/tokens/token-vault#supported-external-providers) et autorise la connexion, votre application peut accéder à Token Vault pour échanger un jeton Auth0 contre le jeton d'accès d'un fournisseur externe.

Pour configurer Token Vault, vous devez :

1. [Configurer les comptes connectés pour Token Vault](/docs/fr-ca/secure/tokens/token-vault/configure-token-vault#configure-connected-accounts-for-token-vault) pour une connexion sociale ou d’entreprise prise en charge.
2. [Configurer votre application](#configure-application) avec le type d’octroi Token Vault.
3. Configurer l’échange de jetons pour votre application :
   * [Échange de jeton d’actualisation](#configure-refresh-token-exchange)
   * [Échange de jeton d’accès](#configure-access-token-exchange)

<Callout icon="file-lines" color="#0EA5E9" iconType="regular">
  Si vous avez déjà défini votre politique MFA sur **Always** dans l’Auth0 Dashboard, vous devez la régler sur **Never** pour récupérer un jeton d’accès à partir de Token Vault. Sinon, vous recevrez une erreur. Pour en savoir plus sur les différentes politiques MFA, consultez [Activer MFA dans l’Auth0 Dashboard](/docs/fr-ca/secure/multi-factor-authentication/enable-mfa#enable-mfa-in-the-auth0-dashboard).

  Si vous devez déclencher des défis MFA pour des flux interactifs, activez **Personnaliser les facteurs MFA à l’aide d’Actions** lorsque vous [configurez MFA pour votre tenant](/docs/fr-ca/secure/multi-factor-authentication/customize-mfa/customize-mfa-selection-universal-login#prepare-your-tenant). Vous pouvez ensuite utiliser une Action pour déclencher un défi MFA en fonction de la propriété `event.transaction.protocol`. Pour en savoir plus, consultez [Personnaliser la sélection MFA pour Universal Login](/docs/fr-ca/secure/multi-factor-authentication/customize-mfa/customize-mfa-selection-universal-login).
</Callout>

<div id="configure-connected-accounts-for-token-vault">
  ## Configurer les comptes connectés pour Token Vault
</div>

Les comptes connectés pour Token Vault gèrent un profil utilisateur Auth0 unifié, lié à plusieurs comptes externes. Votre application récupère ensuite les informations d’identification stockées dans Token Vault pour interagir avec des API externes au nom de l’utilisateur.

<Callout icon="file-lines" color="#0EA5E9" iconType="regular">
  Si votre application utilise [Organizations](/docs/fr-ca/manage-users/organizations), configurez la connexion, puis authentifiez l’utilisateur auprès de l’organisation cible avant de lancer le flux des comptes connectés. Le compte connecté et les jetons stockés demeurent liés au profil Auth0 de l’utilisateur.
</Callout>

Vous pouvez configurer les comptes connectés pour les connexions sociales et d’entreprise prises en charge. Pour en savoir plus, consultez [Configurer les comptes connectés](/docs/fr-ca/secure/tokens/token-vault/connected-accounts-for-token-vault#configure-connected-accounts).

<div id="configure-application">
  ## Configurer l’application
</div>

Configurez votre application avec le type d’octroi Token Vault à l’aide de <Tooltip tip="Management API : un produit qui permet aux clients d’effectuer des tâches administratives." cta="Voir le glossaire" href="/docs/fr-ca/glossary?term=Auth0+Dashboard">Auth0 Dashboard</Tooltip> ou de <Tooltip tip="Auth0 Dashboard : le principal produit d’Auth0 pour configurer vos services." cta="Voir le glossaire" href="/docs/fr-ca/glossary?term=Management+API">Management API</Tooltip>.

Seuls certains types de clients peuvent utiliser le type d’octroi Token Vault :

1. Le client doit être un client de première partie, c.-à-d. que la propriété `is_first_party` doit être `true`.
2. Le client doit être un client confidentiel avec un mécanisme d’authentification valide, c.-à-d. que la propriété `token_endpoint_auth_method` ne doit pas être définie sur `none`.
3. Le client doit être conforme à OIDC, c.-à-d. que `oidc_conformant` doit être `true`.

<Tabs>
  <Tab title="Auth0 Dashboard">
    1) Accédez à **Applications > Applications**.
    2) Sélectionnez l’application que vous souhaitez configurer.
    3) Sous **Advanced Settings > Grant Types**, sélectionnez le type d’octroi **Token Vault**.
    4) Sélectionnez **Save Changes**.

    <Frame>
      <img src="https://mintcdn.com/translations/S4csL9vq6QUX5-Rr/docs/images/token-vault/configure_token_vault_grant_type.png?fit=max&auto=format&n=S4csL9vq6QUX5-Rr&q=85&s=2a416e1e8355934962d10b1c35d37d7e" alt="" width="1368" height="680" data-path="docs/images/token-vault/configure_token_vault_grant_type.png" />
    </Frame>
  </Tab>

  <Tab title="Management API">
    Pour activer Token Vault pour une application, envoyez une requête `PATCH` au point de terminaison [Update a Client](https://auth0.com/docs/api/management/v2/clients/patch-clients-by-id) afin d’ajouter le type d’octroi `urn:auth0:params:oauth:grant-type:token-exchange:federated-connection-access-token` à l’objet JSON du client :

    ```bash lines theme={null}
    curl --location --request PATCH 'https://{yourDomain}/api/v2/clients/{clientId}' \
      --header 'Content-Type: application/json' \
      --header 'Authorization: Bearer <YOUR_MANAGEMENT_API_ACCESS_TOKEN>' \
      --data '{
        "grant_types": [
          "authorization_code",
          "refresh_token",
          "urn:auth0:params:oauth:grant-type:token-exchange:federated-connection-access-token"
        ]
      }'
    ```
  </Tab>
</Tabs>

<div id="configure-token-exchange">
  ## Configurer l’échange de jetons
</div>

Pour appeler les API d’un fournisseur externe, votre application doit échanger un jeton Auth0 valide contre un jeton d’accès de fournisseur externe provenant de Token Vault. Le type de jeton Auth0 utilisé pour cet échange dépend de votre type de client et de votre cas d’utilisation. Pour en savoir plus, consultez [Échanges de jetons pris en charge](/docs/fr-ca/secure/tokens/token-vault#supported-token-exchanges).

<div id="configure-refresh-token-exchange">
  ### Configurer l’échange de jeton d’actualisation
</div>

Pour utiliser l’[échange de jeton d’actualisation avec Token Vault](/docs/fr-ca/secure/tokens/token-vault/refresh-token-exchange-with-token-vault), vous devez configurer votre application avec les types d’octroi suivants :

* Authorization Code : permet à votre application d’effectuer la connexion initiale de l’utilisateur, au cours de laquelle elle échange un code d’autorisation temporaire contre un jeton d’accès Auth0, un jeton d’actualisation et un jeton ID.
* Refresh token : permet à votre application d’utiliser un jeton d’actualisation Auth0 de longue durée pour demander un nouveau jeton d’accès Auth0 sans obliger l’utilisateur à se connecter de nouveau.
* Token Vault : permet à votre application d’échanger un jeton d’actualisation Auth0 contre le jeton d’accès d’un fournisseur externe stocké dans Token Vault.

<Tabs>
  <Tab title="Auth0 Dashboard">
    Pour configurer votre application pour l’échange de jeton d’actualisation :

    * Accédez à **Applications > Applications**.
    * Sélectionnez l’application que vous souhaitez configurer.
    * Sous **Advanced Settings > Grant Types**, sélectionnez les types d’octroi **Refresh Token**, **Authorization Code** et **Token Vault**.
    * Sélectionnez **Save Changes**.
  </Tab>

  <Tab title="Management API">
    Pour configurer votre application pour l’échange de jeton d’actualisation, effectuez une requête `PATCH` vers le point de terminaison [Update a Client](https://auth0.com/docs/api/management/v2/clients/patch-clients-by-id) afin d’ajouter les types d’octroi `refresh_token`, `authorization_code,` et `urn:auth0:params:oauth:grant-type:token-exchange:federated-connection-access-token` à l’objet JSON du client :

    ```bash lines theme={null}
    curl --location --request PATCH 'https://{yourDomain}/api/v2/clients/{clientId}' \
      --header 'Content-Type: application/json' \
      --header 'Authorization: Bearer <YOUR_MANAGEMENT_API_ACCESS_TOKEN>' \
      --data '{
        "grant_types": [
          "authorization_code",
          "refresh_token",
          "urn:auth0:params:oauth:grant-type:token-exchange:federated-connection-access-token"
        ]
      }'
    ```
  </Tab>
</Tabs>

<div id="configure-access-token-exchange">
  ### Configurer l’échange de jeton d’accès
</div>

Pour utiliser l’[échange de jeton d’accès avec Token Vault](/docs/fr-ca/secure/tokens/token-vault/access-token-exchange-with-token-vault), vous devez :

* [Configurer votre SPA](#configure-your-spa) avec le type d’octroi `authorization_code`.
* [Créer une API backend](#create-backend-api) pour laquelle la SPA peut demander un jeton d’accès Auth0 en la spécifiant comme audience.
* [Créer un client d’API personnalisé](#create-custom-api-client) lié à l’API backend avec le type d’octroi Token Vault activé.

<div id="configure-your-spa">
  #### Configurez votre SPA
</div>

Configurez votre SPA avec le type d’octroi `authorization_code`. Cela permet à la SPA de demander un jeton d’accès Auth0 pour l’API backend auprès de l’Auth0 Authorization Server.

<Tabs>
  <Tab title="Auth0 Dashboard">
    Pour configurer votre SPA avec le type d’octroi `authorization_code` :

    * Accédez à **Applications > Applications**.
    * Sélectionnez l’application que vous souhaitez configurer.
    * Sous **Advanced Settings > Grant Types**, sélectionnez le type d’octroi **Authorization Code**.
    * Sélectionnez **Save Changes**.
  </Tab>

  <Tab title="Management API">
    Pour configurer votre SPA, effectuez une requête `PATCH` au point de terminaison [Update a Client](https://auth0.com/docs/api/management/v2/clients/patch-clients-by-id) pour ajouter le type d’octroi `authorization_code` à l’objet JSON du client :

    ```bash lines theme={null}
    curl --request PATCH 'https://{yourDomain}/api/v2/clients/{clientId}' \
      --header 'Content-Type: application/json' \
      --header 'Authorization: Bearer <YOUR_MANAGEMENT_API_TOKEN>' \
      --data '{
        "grant_types": [
          "authorization_code"
        ]
      }'
    ```
  </Tab>
</Tabs>

<div id="create-backend-api">
  #### Créer une API backend
</div>

Créez une API backend avec un identifiant unique et les scopes souhaités, qui effectuera l’échange du jeton d’accès avec l’Auth0 Authorization Server.

<Tabs>
  <Tab title="Auth0 Dashboard">
    Pour créer une API backend dans l’Auth0 Dashboard :

    * Accédez à **Applications > APIs**, puis cliquez sur **Create API**.
    * Pour créer votre API, suivez les instructions dans [Register APIs](/docs/fr-ca/get-started/auth0-overview/set-up-apis). **Remarque :** Une fois que vous avez défini un identifiant pour votre API, vous ne pouvez plus le modifier.
    * Cliquez sur **Create**.
    * Une fois votre API créée, vous devez y ajouter des scopes. Accédez à l’onglet **Permissions**. Sous **Add a Permission**, ajoutez vos scopes.
  </Tab>

  <Tab title="Management API">
    Pour créer une API backend à l’aide de la Management API, effectuez une requête `POST` vers le point de terminaison `/resource-servers` :

    ```bash lines  theme={null}
    curl --request POST 'https://{yourDomain}/api/v2/resource-servers' \
      --header 'Content-Type: application/json' \
      --header 'Authorization: Bearer <YOUR_MANAGEMENT_API_TOKEN>' \
      --data '{
        "name": "My API Resource Server",
        "identifier": "https://my-api.example.com",
        "scopes": [
          {
            "value": "read:calendar",
            "description": "Read calendar events"
          },
          {
            "value": "write:calendar",
            "description": "Write calendar events"
          }
        ]
      }'
    ```
  </Tab>
</Tabs>

<div id="create-custom-api-client">
  #### Créer un Custom API Client
</div>

Pour l’échange de jeton d’accès, vous devez créer un Custom API Client lié à l’API backend. La SPA pourra demander un jeton d’accès pour l’API backend en la précisant comme audience dans la requête d’autorisation envoyée à l’Auth0 Authorization Server. Le Custom API Client a le même identifiant que votre API backend et le type d’octroi Token Vault est activé.

Lorsque l’API backend effectue l’échange de jeton d’accès, elle s’authentifie en transmettant les informations d’authentification du Custom API Client à l’Auth0 Authorization Server, ce qui prouve qu’il s’agit de la même entité enregistrée dans l’Auth0 Dashboard.

<Tabs>
  <Tab title="Auth0 Dashboard">
    Pour créer un Custom API Client dans l’Auth0 Dashboard :

    * Accédez à **Applications > APIs** et sélectionnez votre API backend.
    * Sélectionnez **Add Application** et saisissez un nom d’application.
    * Cliquez sur **Add**. Une fois l’application créée avec succès, cliquez sur **Configure Application** et faites défiler jusqu’à **Application Properties**. Le **Application Type** est un Custom API Client.
    * Sous **Advanced Settings > Grant Types**, le type d’octroi **Token Vault** devrait déjà être activé pour le Custom API Client.

    <Frame>
      <img src="https://mintcdn.com/translations/S4csL9vq6QUX5-Rr/docs/images/token-vault/create_custom_api_client.png?fit=max&auto=format&n=S4csL9vq6QUX5-Rr&q=85&s=cb602bcdbbb8809b88c45f91be3ee502" alt="" width="1392" height="870" data-path="docs/images/token-vault/create_custom_api_client.png" />
    </Frame>
  </Tab>

  <Tab title="Management API">
    L’exemple de code suivant crée un Custom API Client avec le même identifiant que votre API backend et ajoute le type d’octroi Token Vault :

    ```bash lines theme={null}
    curl --request POST 'https://{yourDomain}/api/v2/clients' \
      --header 'Content-Type: application/json' \
      --header 'Authorization: Bearer <YOUR_MANAGEMENT_API_TOKEN>' \
      --data '{
        "name": "Custom API Client",
        "app_type": "resource_server",
        "resource_server_identifier": "https://my-api.example.com",
        "grant_types": [
          "urn:auth0:params:oauth:grant-type:token-exchange:federated-connection-access-token"
        ]
      }'
    ```

    | Paramètre                    | Description                                                                                                                                                                                            |
    | ---------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
    | `name`                       | Nom de votre Custom API Client.                                                                                                                                                                        |
    | `app_type`                   | Le type d’application de votre Custom API Client. Pour enregistrer le client en tant que serveur de ressources, définissez la valeur sur `resource_server`.                                            |
    | `resource_server_identifier` | L’identifiant unique de votre Custom API Client. Définissez-le sur l’audience de votre API backend, c.-à-d. `https://my-api.example.com.`                                                              |
    | `grant_types`                | Les types d’octroi activés pour votre Custom API Client. Définissez la valeur sur le type d’octroi Token Vault : `urn:auth0:params:oauth:grant-type:token-exchange:federated-connection-access-token`. |
  </Tab>
</Tabs>

Une fois le Custom API Client créé avec succès, l’utilisateur y sera redirigé au lieu de la SPA après la connexion.
