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

> Aperçu de la façon de configurer la contrainte de l’émetteur pour votre locataire Auth0.

# Configurer la contrainte de l’émetteur

La [contrainte de l’émetteur](/fr-CA/docs/secure/sender-constraining) est un mécanisme de sécurité d’<Tooltip tip="OAuth 2.0 : Cadre d’autorisation qui définit des protocoles et des flux d’autorisation." cta="Voir le glossaire" href="/fr-CA/docs/glossary?term=OAuth+2.0">OAuth 2.0</Tooltip> et d’<Tooltip tip="OAuth 2.0 : Cadre d’autorisation qui définit des protocoles et des flux d’autorisation." cta="Voir le glossaire" href="/fr-CA/docs/glossary?term=OpenID">OpenID</Tooltip> Connect (OIDC) qui lie cryptographiquement les jetons d’accès et les <Tooltip tip="Refresh Token : Jeton utilisé pour obtenir un nouveau Jeton d’accès sans obliger les utilisateurs à se reconnecter." cta="Voir le glossaire" href="/fr-CA/docs/glossary?term=refresh+tokens">jetons d’actualisation</Tooltip> à l’application cliente précise qui les a obtenus, ce qui empêche leur vol et leur utilisation abusive.

Auth0 prend en charge la contrainte de l’émetteur mTLS et Demonstrating Proof-of-Possession (DPoP). Si vous activez la contrainte de l’émetteur pour une application cliente, vous devez aussi l’appliquer au <Tooltip tip="Resource Server : Serveur qui héberge des ressources protégées. Les serveurs de ressources acceptent les demandes de ressources protégées et y répondent." cta="Voir le glossaire" href="/fr-CA/docs/glossary?term=resource+server">serveur de ressources</Tooltip> sur lequel vous effectuez des appels d’API.

Pour configurer la contrainte de l’émetteur dans Auth0, vous devez :

* [Configurer la contrainte de l’émetteur pour une application cliente](#configure-sender-constraining-for-a-client-application)
* [Configurer la contrainte de l’émetteur pour un serveur de ressources](#configure-sender-constraining-for-a-resource-server)

<div id="how-it-works">
  ## Fonctionnement
</div>

<Tooltip tip="Jeton d’accès : justificatif d’autorisation, sous la forme d’une chaîne opaque ou d’un JWT, utilisé pour accéder à une API." cta="Voir le glossaire" href="/fr-CA/docs/glossary?term=Access+tokens">Les jetons d’accès</Tooltip> sont soumis à une contrainte de l’émetteur dans Auth0 selon la façon dont vous configurez la contrainte de l’émetteur pour votre application cliente et votre serveur de ressources :

1. **Audience demandée :** Dans une demande de jeton, le fait que l’audience demandée soit uniquement `/userinfo`, qu’elle soit destinée à être utilisée seulement avec le point de terminaison [`/userinfo`](https://auth0.com/docs/api/authentication/user-profile/get-user-info), ou qu’il s’agisse d’une API personnalisée pouvant inclure `/userinfo` lorsque vous demandez aussi le scope openid, détermine si les jetons d’accès sont soumis à une contrainte de l’émetteur.
2. **Application cliente :** Le fait que vous définissiez la contrainte de l’émetteur sur `required` pour l’application cliente.
3. **Serveur de ressources :** Le fait que vous configuriez la contrainte de l’émetteur pour le serveur de ressources :

   1. `none` : Vous n’avez pas configuré de contrainte de l’émetteur pour le serveur de ressources.
   2. `allowed` : Vous avez configuré la contrainte de l’émetteur pour le serveur de ressources en définissant une méthode de contrainte de l’émetteur.
   3. `required` : Vous avez configuré la contrainte de l’émetteur comme obligatoire pour le serveur de ressources, ce qui signifie que les jetons d’accès doivent être liés à une application par une contrainte de l’émetteur. Vous pouvez exiger la contrainte de l’émetteur pour toutes les applications ou seulement pour les applications publiques. Nécessite une méthode de contrainte de l’émetteur.

<Callout icon="lightbulb" color="#0EA5E9" iconType="regular">
  Lorsque vous utilisez mTLS comme méthode de contrainte de l’émetteur, la contrainte de l’émetteur est toujours obligatoire pour toutes les applications. Les applications publiques ne sont pas prises en charge avec mTLS; vous ne pouvez donc pas limiter la contrainte de l’émetteur mTLS aux seuls clients publics.
</Callout>

* **Proof-of-Possession :** Le fait que l’application cliente ait envoyé une preuve de possession dans la demande de jeton :

  * contrainte de l’émetteur mTLS : La preuve de possession est démontrée par la présentation réussie, par l’application, d’une clé privée précise (associée à un certificat client) pendant la négociation TLS.
  * DPoP : La preuve de possession est établie lorsque l’application crée un JWT de preuve DPoP en le signant de façon cryptographique avec sa clé privée et inclut le JWT de preuve `DPoP` dans l’en-tête HTTP DPoP de chaque requête où le jeton d’accès associé est utilisé.

Le tableau suivant décrit comment les jetons d’accès sont émis et s’ils sont soumis à une contrainte de l’émetteur selon différents paramètres de demande de l’application cliente et les configurations du serveur de ressources Auth0 :

| Type d’audience demandée                        | L’application exige une PoP ? | Proof-of-Possession (PoP) envoyée par l’application ? | Stratégie du serveur de ressources Auth0 : None | Stratégie du serveur de ressources Auth0 : Allowed (Not Required) | Stratégie du serveur de ressources Auth0 : Required |
| ----------------------------------------------- | ----------------------------- | ----------------------------------------------------- | ----------------------------------------------- | ----------------------------------------------------------------- | --------------------------------------------------- |
| Userinfo seulement                              | Non                           | Non                                                   | Émis, sans contrainte de l’émetteur             | N/A                                                               | N/A                                                 |
| Userinfo seulement                              | Non                           | Oui                                                   | Émis, soumis à une contrainte de l’émetteur     | N/A                                                               | N/A                                                 |
| Userinfo seulement                              | Oui                           | Non                                                   | Non émis                                        | N/A                                                               | N/A                                                 |
| Userinfo seulement                              | Oui                           | Oui                                                   | Émis, soumis à une contrainte de l’émetteur     | N/A                                                               | N/A                                                 |
| Audience personnalisée (peut contenir Userinfo) | Non                           | Non                                                   | Émis, sans contrainte de l’émetteur             | Émis, sans contrainte de l’émetteur                               | Non émis                                            |
| Audience personnalisée (peut contenir Userinfo) | Non                           | Oui                                                   | Émis, sans contrainte de l’émetteur             | Émis, soumis à une contrainte de l’émetteur                       | Émis, soumis à une contrainte de l’émetteur         |
| Audience personnalisée (peut contenir Userinfo) | Oui                           | Non                                                   | Non émis                                        | Non émis                                                          | Non émis                                            |
| Audience personnalisée (peut contenir Userinfo) | Oui                           | Oui                                                   | Non émis                                        | Émis, soumis à une contrainte de l’émetteur                       | Émis, soumis à une contrainte de l’émetteur         |

<div id="configure-sender-constraining-for-a-client-application">
  ## Configurer la contrainte de l’émetteur pour une application cliente
</div>

Lorsque vous exigez la contrainte de l’émetteur pour une application cliente, les jetons d’accès sont liés à cette application. Auth0 vérifie les requêtes pour s’assurer que seule l’application qui a demandé le jeton peut l’utiliser pour accéder à la ressource associée.

Une fois la contrainte de l’émetteur exigée pour une application cliente, vous pouvez définir la méthode de contrainte de l’émetteur, soit mTLS ou DPoP, lors de la configuration de votre serveur de ressources.

Vous pouvez configurer la contrainte de l’émetteur pour une application cliente à l’aide de l’<Tooltip tip="Auth0 Dashboard : principal produit Auth0 pour configurer vos services." cta="Voir le glossaire" href="/fr-CA/docs/glossary?term=Auth0+Dashboard">Auth0 Dashboard</Tooltip> ou de la <Tooltip tip="Management API : produit permettant aux clients d’effectuer des tâches administratives." cta="Voir le glossaire" href="/fr-CA/docs/glossary?term=Management+API">Management API</Tooltip>.

<Tabs>
  <Tab title="Auth0 Dashboard">
    1. Accédez à [Dashboard > Applications > Applications](https://manage.auth0.com/#/applications). Sélectionnez l’application que vous souhaitez configurer.
    2. Sous **Settings**, faites défiler jusqu’à **Token Sender-Constraining**.
    3. Activez **Require Sender Constraining**. Désactivez cette option pour ne plus exiger la contrainte de l’émetteur pour l’application.

    <Frame>
      <img src="https://mintcdn.com/translations/3nS3prIggmJG9TUI/docs/images/cdy7uua7fh8z/3BoGW9NEYKPBkfk2tPBL7l/0f884ac3f64f17b23fd6a0e9436bb472/Screenshot_2024-07-23_at_1.30.19_PM.png?fit=max&auto=format&n=3nS3prIggmJG9TUI&q=85&s=085696f753798fd16adf27de995d4b93" alt="" width="1900" height="380" data-path="docs/images/cdy7uua7fh8z/3BoGW9NEYKPBkfk2tPBL7l/0f884ac3f64f17b23fd6a0e9436bb472/Screenshot_2024-07-23_at_1.30.19_PM.png" />
    </Frame>
  </Tab>

  <Tab title="Management API">
    Pour configurer la contrainte de l’émetteur pour une application, utilisez la [Management API](https://auth0.com/docs/api/management/v2).

    Pour exiger la contrainte de l’émetteur pour une application, envoyez une requête PATCH pour [mettre à jour les paramètres de l’application](https://auth0.com/docs/api/management/v2/clients/patch-clients-by-id). Définissez le paramètre `require_proof_of_possession` sur `true`.

    ```bash lines theme={null}
    curl -L -X PATCH 'https://{YOUR_DOMAIN}/api/v2/clients/{YOUR_CLIENT_ID}' \
    -H 'Authorization: Bearer {YOUR_MANAGEMENT_API_TOKEN}' \
    -H 'Content-Type: application/json' \
    -d '{"require_proof_of_possession": true}'
    ```

    Pour supprimer cette exigence, définissez le paramètre `require_proof_of_possession` sur `false`.

    ```bash lines theme={null}
    curl -L -X PATCH 'https://{YOUR_DOMAIN}/api/v2/clients/{YOUR_CLIENT_ID}' \
    -H 'Authorization: Bearer {YOUR_MANAGEMENT_API_TOKEN}' \
    -H 'Content-Type: application/json' \
    -d '{"require_proof_of_possession": false}'
    ```
  </Tab>
</Tabs>

<div id="configure-sender-constraining-for-a-resource-server">
  ## Configurer la contrainte de l’émetteur pour un serveur de ressources
</div>

Les jetons d’accès émis par Auth0 peuvent être liés à l’émetteur (c.-à-d. l’application cliente) qui doit accéder aux API d’un serveur de ressources.

Vous pouvez configurer la contrainte de l’émetteur pour un serveur de ressources à l’aide de l’Auth0 Dashboard ou de la Management API.

<Tabs>
  <Tab title="Auth0 Dashboard">
    Pour activer la liaison de jeton ou la contrainte de l’émetteur, configurez les **API Settings** de votre API.

    1. Accédez à [Auth0 Dashboard > Applications > APIs](https://manage.auth0.com/#/apis).
    2. Sélectionnez l’API que vous voulez configurer.
    3. Dans l’onglet **Settings**, repérez la section **Token Sender-Constraining**.
    4. Configurez les éléments suivants :

       1. Méthode de contrainte de l’émetteur :

          1. **None:** N’activez aucune méthode de contrainte de l’émetteur pour votre serveur de ressources.
          2. **mTLS**: Activez mTLS comme méthode de contrainte de l’émetteur pour votre serveur de ressources.
          3. **DPoP:** Activez DPoP comme méthode de contrainte de l’émetteur pour votre serveur de ressources.

       2. Exiger la contrainte de l’émetteur du jeton : sélectionnez la stratégie de contrainte de l’émetteur qui s’applique à cette API :

          1. **Always:** Exigez la contrainte de l’émetteur pour toutes les applications. C’est la seule option offerte lorsque vous utilisez mTLS.
          2. **For Public Applications:** Exigez la contrainte de l’émetteur uniquement pour les applications publiques. Cette option n’est pas offerte lorsque vous utilisez mTLS.
          3. **Never:** La contrainte de l’émetteur n’est pas requise.

    <Frame>
      <img src="https://mintcdn.com/translations/S4csL9vq6QUX5-Rr/docs/images/sender-constraining/method_is_dpop.png?fit=max&auto=format&n=S4csL9vq6QUX5-Rr&q=85&s=b7f76413d34c6af23036226aba453787" alt="Auth0 Dashboard > APIs > Settings > liaison de jeton" data-og-width="1970" width="1970" data-og-height="1276" height="1276" data-path="docs/images/sender-constraining/method_is_dpop.png" data-optimize="true" data-opv="3" srcset="https://mintcdn.com/translations/S4csL9vq6QUX5-Rr/docs/images/sender-constraining/method_is_dpop.png?w=280&fit=max&auto=format&n=S4csL9vq6QUX5-Rr&q=85&s=6f4f79010529a5842bc2c54368743d93 280w, https://mintcdn.com/translations/S4csL9vq6QUX5-Rr/docs/images/sender-constraining/method_is_dpop.png?w=560&fit=max&auto=format&n=S4csL9vq6QUX5-Rr&q=85&s=759304503a591f4032c5413610b0430d 560w, https://mintcdn.com/translations/S4csL9vq6QUX5-Rr/docs/images/sender-constraining/method_is_dpop.png?w=840&fit=max&auto=format&n=S4csL9vq6QUX5-Rr&q=85&s=e8aef6f46f6eb115439c4828a9f45e74 840w, https://mintcdn.com/translations/S4csL9vq6QUX5-Rr/docs/images/sender-constraining/method_is_dpop.png?w=1100&fit=max&auto=format&n=S4csL9vq6QUX5-Rr&q=85&s=9d3c782898c0bd7a14e563cfca6c5d27 1100w, https://mintcdn.com/translations/S4csL9vq6QUX5-Rr/docs/images/sender-constraining/method_is_dpop.png?w=1650&fit=max&auto=format&n=S4csL9vq6QUX5-Rr&q=85&s=f15270df1d77f18635b3e91e92613d46 1650w, https://mintcdn.com/translations/S4csL9vq6QUX5-Rr/docs/images/sender-constraining/method_is_dpop.png?w=2500&fit=max&auto=format&n=S4csL9vq6QUX5-Rr&q=85&s=3c1d533e4a62015cfd7f768121a56a39 2500w" />
    </Frame>
  </Tab>

  <Tab title="Management API">
    Pour activer la contrainte de l’émetteur avec la Management API, envoyez une requête PATCH pour [mettre à jour le serveur de ressources](https://auth0.com/docs/api/management/v2/resource-servers/patch-resource-servers-by-id). Définissez les paramètres de l’objet `proof_of_possession` comme suit :

    | Paramètre      | Description                                                                                                                                                                                                                                                                                                                                                     |
    | -------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
    | `mechanism`    | Définit la méthode de contrainte de l’émetteur : `none`, `mtls` ou `dpop`.                                                                                                                                                                                                                                                                                      |
    | `required`     | Obligatoire. Lorsqu’elle est définie à `true`, les jetons d’accès émis à une application pour cette API seront liés à cette application. Utilisez `required_for` pour préciser à quels types d’applications cette exigence s’applique. Lorsqu’elle est définie à `false`, la contrainte de l’émetteur n’est pas requise.                                        |
    | `required_for` | Filtre les types d’applications pour lesquels la contrainte de l’émetteur est requise lorsque `required` est `true` : `all_clients` (toutes les applications) ou `public_clients` (applications publiques uniquement). La valeur par défaut est `all_clients` si elle n’est pas précisée. Lorsque vous utilisez mTLS, seule la valeur `all_clients` est valide. |

    L’exemple de code suivant montre un corps de requête qui configure un serveur de ressources pour la contrainte de l’émetteur mTLS. Comme mTLS prend uniquement en charge `all_clients` pour `required_for` (qui est la valeur par défaut), il n’est pas nécessaire de le préciser :

    ```bash lines theme={null}
    curl -L -X PATCH 'https://{YOUR_DOMAIN}/api/v2/resource-servers/{YOUR_RESOURCE_SERVER_ID}' \
    -H 'Authorization: Bearer {YOUR_MANAGEMENT_API_TOKEN}' \
    -H 'Content-Type: application/json' \
    -H 'Accept: application/json' \
    -d '{
      "proof_of_possession": {
        "mechanism": "mtls",
        "required": true
      }
    }'
    ```

    L’exemple de code suivant montre un corps de requête qui configure un serveur de ressources pour la contrainte de l’émetteur DPoP, requise uniquement pour les applications publiques :

    ```bash lines theme={null}
    curl -L -X PATCH 'https://{YOUR_DOMAIN}/api/v2/resource-servers/{YOUR_RESOURCE_SERVER_ID}' \
    -H 'Authorization: Bearer {YOUR_MANAGEMENT_API_TOKEN}' \
    -H 'Content-Type: application/json' \
    -H 'Accept: application/json' \
    -d '{
      "proof_of_possession": {
        "mechanism": "dpop",
        "required": true,
        "required_for": "public_clients"
      }
    }'
    ```

    L’exemple de code suivant configure la contrainte de l’émetteur DPoP comme étant requise pour toutes les applications. Comme `all_clients` est la valeur par défaut, `required_for` peut être omis :

    ```bash lines theme={null}
    curl -L -X PATCH 'https://{YOUR_DOMAIN}/api/v2/resource-servers/{YOUR_RESOURCE_SERVER_ID}' \
    -H 'Authorization: Bearer {YOUR_MANAGEMENT_API_TOKEN}' \
    -H 'Content-Type: application/json' \
    -H 'Accept: application/json' \
    -d '{
      "proof_of_possession": {
        "mechanism": "dpop",
        "required": true
      }
    }'
    ```

    L’exemple de code suivant désactive la contrainte de l’émetteur pour un serveur de ressources (l’équivalent de sélectionner « Never » dans l’Auth0 Dashboard) :

    ```bash lines theme={null}
    curl -L -X PATCH 'https://{YOUR_DOMAIN}/api/v2/resource-servers/{YOUR_RESOURCE_SERVER_ID}' \
    -H 'Authorization: Bearer {YOUR_MANAGEMENT_API_TOKEN}' \
    -H 'Content-Type: application/json' \
    -H 'Accept: application/json' \
    -d '{
      "proof_of_possession": null 
    }'
    ```
  </Tab>
</Tabs>
