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

# Politiques d’accès aux API pour les applications

> Contrôlez les applications qui peuvent accéder à vos API à l’aide de politiques d’autorisation globale, Per-app authorization ou de refus global, tant pour les flux délégués par l’utilisateur que pour les flux Client Credential.

Les politiques d’accès aux API pour les applications vous permettent de contrôler la façon dont les applications accèdent à vos API enregistrées dans Auth0. Ces politiques définissent comment les applications interagissent avec une API, notamment si elles peuvent obtenir un jeton d’accès pour accéder aux ressources de l’API.

Vous pouvez configurer la politique d’accès à l’API d’une application pour chaque API enregistrée dans l’Auth0 Dashboard. Pour en savoir plus, consultez [Configurer la politique d’accès des applications à l’API](#configure-api-application-access-policy).

<div id="user-delegated-access-vs-client-access">
  ## Accès délégué par l’utilisateur vs accès client
</div>

Vous pouvez configurer des politiques d’accès à l’API de l’application distinctes pour l’accès délégué par l’utilisateur et l’accès client (machine à machine) :

* **Accès client** : utilisé pour l’accès machine à machine, ce qui correspond au [Client Credentials Flow](/docs/fr-ca/get-started/authentication-and-authorization-flow/client-credentials-flow).
* **Accès délégué par l’utilisateur** : utilisé pour tous les flux d’accès qui génèrent un jeton d’accès associé à un utilisateur final, ce qui permet à l’application d’accéder à une API au nom de l’utilisateur. Les flux d’accès délégué par l’utilisateur n’incluent pas le Client Credentials Flow. Pour en savoir plus sur les flux d’accès délégué par l’utilisateur, consultez [les flux d’authentification et d’autorisation](/docs/fr-ca/get-started/authentication-and-authorization-flow).

<div id="application-api-access-policies">
  ## Politiques d’accès aux API des applications
</div>

Les politiques d’accès des applications aux API sont les suivantes :

| Politique               | Description                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    | Flux d’accès                                                                                                                                                                               |
| ----------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| `All apps allowed`      | Lorsqu’elle est configurée pour une API, toute application de votre tenant peut obtenir un jeton d’accès pour l’API. Aucune autorisation client particulière n’est requise.                                                                                                                                                                                                                                                                                                                    | Il s’agit de la valeur par défaut pour l’accès délégué par l’utilisateur lorsque vous créez une API. Vous pouvez uniquement configurer `allow_all` pour l’accès délégué par l’utilisateur. |
| `Per-app authorization` | Lorsqu’elle est configurée pour une API, seules les applications pour lesquelles une autorisation client a été définie peuvent obtenir un jeton d’accès pour l’API. L’autorisation client établit les permissions maximales qu’une application peut demander à l’API. Pour en savoir plus sur la création et la gestion des autorisations client, consultez [Application Access to APIs: autorisations client](/docs/fr-ca/get-started/applications/application-access-to-apis-client-grants). | Il s’agit de la valeur par défaut pour le Client Credentials Flow lorsque vous créez une API.                                                                                              |
| `No apps allowed`       | Lorsqu’elle est configurée pour une API, aucune application ne peut obtenir un jeton d’accès à l’API, peu importe les autres paramètres ou grants. L’accès est entièrement restreint.                                                                                                                                                                                                                                                                                                          | Vous pouvez configurer `deny_all` pour l’accès utilisateur et l’accès client.                                                                                                              |

Lors de la configuration de la politique d’accès des applications pour une API, Auth0 recommande d’utiliser `Per-app authorization`, qui repose sur le principe du moindre privilège. Pour en savoir plus, consultez [Application Access to APIs: autorisations client](/docs/fr-ca/get-started/applications/application-access-to-apis-client-grants).

Lorsque vous définissez la politique d’accès des applications d’une API sur `Per-app authorization`, vous devez fournir explicitement les scopes requis dans la requête de jeton. Cela ne s’applique pas aux requêtes de jeton d’actualisation : si vous omettez les scopes, le serveur d’autorisation suppose que l’application souhaite tous les scopes qui lui ont été accordés dans le jeton d’accès initial. Par conséquent, le serveur d’autorisation renvoie un jeton d’accès avec les mêmes scopes que ceux accordés initialement par le Resource Owner.

<div id="configure-api-application-access-policy">
  ## Configurer la politique d'accès des applications à l'API
</div>

Vous pouvez configurer la politique d'accès des applications à une API à l'aide de l'Auth0 Dashboard ou de la Management API.

<Tabs>
  <Tab title="Auth0 Dashboard">
    Pour configurer la politique d'accès des applications à une API :

    1. Accédez à [Dashboard >  Applications > APIs](https://manage.auth0.com/#/apis) et sélectionnez votre API.
    2. Sélectionnez l'onglet **Settings** et faites défiler la page jusqu'à **Application Access Policy** pour configurer les politiques **User-Delegated Access** et **Client Access**.
       * Réglez la politique **User-Delegated Access** sur **All apps allowed**, **Per-app authorization** ou **No apps allowed**.
         * **All apps allowed** : les applications sont autorisées à accéder à l'API au nom de l'utilisateur.
         * **Per-app authorization** : les applications doivent avoir un client grant pour accéder à l'API au nom de l'utilisateur.
         * **No apps allowed** : les applications se voient refuser l'accès à l'API au nom de l'utilisateur.
       * Réglez la politique **Client Access** sur **Per-app authorization** ou **No apps allowed**.
         * **Per-app authorization** : les applications machine-to-machine sont autorisées à accéder à cette API tant qu'elles ont le client grant correspondant.
         * **No apps allowed** : restreint l'accès machine-to-machine à cette API.
    3. Sélectionnez **Save** pour enregistrer la **Application Access Policy**.

    Lorsque **Per-app authorization** est la politique configurée pour l'API, sélectionnez l'onglet **Application Access**, puis **Edit** pour autoriser **User-Delegated Access**, **Client Access** ou les deux pour chaque application.

    * Pour **User-Delegated Access**, sélectionnez **Grant Access**, puis les permissions souhaitées. Vous pouvez aussi sélectionner **Always grant all permissions**.
    * Pour **Client Access**, sélectionnez **Grant Access**, puis les permissions souhaitées. Vous pouvez aussi sélectionner **Always grant all permissions**. Pour **Organization Support**, sélectionnez :
      * **None** : l'accès machine-to-machine ne peut pas être limité à une organization.
      * **Optional** : l'accès machine-to-machine peut être limité à une organization.
      * **Required** : l'accès machine-to-machine doit être limité à une organization.
  </Tab>

  <Tab title="Management API">
    Vous pouvez configurer la politique d'accès des applications à une API en mettant à jour sa propriété `subject_type_authorization` dans la collection `resource-servers` de la [Management API](/docs/fr-ca/api/management/v2/resource-servers/patch-resource-servers-by-id).

    L'objet `subject_type_authorization` contient deux objets imbriqués, `user` et `client`, chacun avec un attribut de policy que vous pouvez définir sur l'une des trois politiques d'accès définies dans [Application API access policies](#application-api-access-policies).

    **API existante**

    Pour configurer la politique d'accès des applications pour une API existante, effectuez une requête `PATCH` vers le endpoint `/resource-servers/{id}` :

    ```bash lines theme={null}
    curl --location --request PATCH 'https://{yourDomain}/api/v2/resource-servers/{RESOURCE_SERVER_ID}' \
    --header 'Content-Type: application/json' \
    --header 'Authorization: Bearer {YOUR_MANAGEMENT_API_TOKEN}' \
    --data '{
        "subject_type_authorization": {
            "user": {
                "policy": "require_client_grant"
            },
            "client": {
                "policy": "deny_all"
            }
        }
    }'
    ```

    **Nouvelle API**

    Pour configurer la politique d'accès des applications lors de la création d'une nouvelle API, effectuez une requête `POST` vers le endpoint `/resource-servers` :

    ```bash lines theme={null}
    curl --location 'https://{yourDomain}/api/v2/resource-servers' \
    --header 'Content-Type: application/json' \
    --header 'Authorization: Bearer {YOUR_MANAGEMENT_API_TOKEN}' \
    --data '{
      "name": "{YOUR_NEW_API_NAME}",
      "identifier": "{YOUR_NEW_API_IDENTIFIER}",
      "scopes": [
        {
          "value": "{SCOPE_VALUE}",
          "description": "{SCOPE_DESCRIPTION}"
        }
      ],
      "subject_type_authorization": {
        "user": {
          "policy": "require_client_grant"
        },
        "client": {
          "policy": "deny_all"
        }
      }
    }'
    ```
  </Tab>
</Tabs>

<div id="api-access-policies-and-third-party-applications">
  ## Politiques d'accès aux API et applications tierces
</div>

Les [applications tierces](/docs/fr-ca/get-started/applications/third-party-applications) exigent toujours un client grant explicite pour accéder à une API, quelle que soit la politique d'accès configurée pour celle-ci.

| **Politique d'accès aux API** | **Applications propriétaires** | **Applications tierces** |
| ----------------------------- | ------------------------------ | ------------------------ |
| **Tout autoriser**            | Accès accordé                  | Exige un client grant    |
| **Exiger un client grant**    | Exige un client grant          | Exige un client grant    |
| **Refuser**                   | Accès refusé                   | Accès refusé             |

Vous pouvez aussi configurer les [permissions par défaut pour toutes les applications tierces](/docs/fr-ca/get-started/applications/third-party-applications/configure-third-party-applications#default-permissions-for-all-third-party-applications) :

1. Accédez à **Applications > APIs** et sélectionnez l'API.
2. Sous l'onglet **Settings**, accédez à **Default Permissions for Third Party Applications**.
3. Sélectionnez **Authorized** pour **User-delegated Access** ou **Client Access**, puis sélectionnez les scopes à accorder.
4. Sélectionnez **Save**.

Pour en savoir plus, consultez [Configurer les politiques d'accès aux API pour les applications tierces](/docs/fr-ca/get-started/applications/third-party-applications/configure-third-party-applications#configure-api-access-policies).

<Callout icon="file-lines" color="#0EA5E9" iconType="regular">
  Dans certains tenants existants, le comportement des politiques d'accès des applications tierces peut être différent. Pour en savoir plus, consultez [Mode permissif pour les applications tierces](/docs/fr-ca/get-started/applications/third-party-applications/permissive-mode).
</Callout>

<div id="learn-more">
  ## En savoir plus
</div>

* [Accès des applications aux API : autorisations client](/docs/fr-ca/get-started/applications/application-access-to-apis-client-grants)
* [Applications tierces](/docs/fr-ca/get-started/applications/third-party-applications)
* [Contrôles de sécurité pour les applications tierces](/docs/fr-ca/get-started/applications/third-party-applications/security-controls)
