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

# Stratégies d’accès des applications à l’API

> Découvrez comment configurer les stratégies d’accès des applications à l’API.

Les stratégies d’accès des applications à l’API vous permettent de contrôler la façon dont les applications accèdent à vos API enregistrées dans Auth0. Ces stratégies définissent la manière dont 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 stratégie d’accès des applications à l’API pour chaque API enregistrée dans Auth0 Dashboard. Pour en savoir plus, consultez [Configurer la stratégie 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 de l’application
</div>

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

* **Accès de l’application** : utilisé pour l’accès machine à machine, ce qui correspond au [flux d’identification du client](/fr-CA/docs/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 et permettant à 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 flux d’identification du client. Pour en savoir plus sur les flux d’accès délégué par l’utilisateur, consultez [Flux d’authentification et d’autorisation](/fr-CA/docs/get-started/authentication-and-authorization-flow).

<div id="application-api-access-policies">
  ## Stratégies d’accès des applications à l’API
</div>

Les stratégies d’accès des applications à l’API sont les suivantes :

| Stratégie               | Description                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       | Flux d’accès                                                                                                                                                               |
| ----------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `All apps allowed`      | Lorsqu’elle est configurée pour une API, toute application de votre locataire peut obtenir un jeton d’accès pour l’API. Aucune autorisation d’application particulière n’est requise.                                                                                                                                                                                                                                                                                                                             | 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 ayant une autorisation d’application définie peuvent obtenir un jeton d’accès pour l’API. L’autorisation d’application établit les autorisations maximales qu’une application peut demander à l’API. Pour en savoir plus sur la création et la gestion des autorisations d’application, consultez [Accès des applications aux API : autorisations d’application](/fr-CA/docs/get-started/applications/application-access-to-apis-client-grants). | Valeur par défaut pour le flux d’identification du client lorsque vous créez une API.                                                                                      |
| `No apps allowed`       | Lorsqu’elle est configurée pour une API, aucune application ne peut obtenir de jeton d’accès pour l’API, quels que soient les autres paramètres ou octrois. L’accès est entièrement restreint.                                                                                                                                                                                                                                                                                                                    | Vous pouvez configurer `deny_all` pour l’accès utilisateur comme pour l’accès de l’application.                                                                            |

Lors de la configuration de la stratégie d’accès des applications pour une API, Auth0 recommande d’utiliser `Per-app authorization`, car cette option applique le principe du moindre privilège. Pour en savoir plus, consultez [Accès des applications aux API : autorisations d’application](/fr-CA/docs/get-started/applications/application-access-to-apis-client-grants).

Lorsque vous définissez la stratégie d’accès des applications d’une API sur `Per-app authorization`, vous devez fournir explicitement les scopes requis dans la demande de jeton. Cela ne s’applique pas aux demandes de jeton d’actualisation : si vous omettez les scopes, le serveur d’autorisation suppose que l’application veut tous les scopes qui lui ont été accordés dans le jeton d’accès d’origine. Par conséquent, le serveur d’autorisation renvoie un jeton d’accès avec les mêmes scopes que ceux initialement accordés par le propriétaire de la ressource.

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

Vous pouvez configurer la stratégie d’accès des applications à une API dans l’Auth0 Dashboard ou avec la Management API.

<Tabs>
  <Tab title="Auth0 Dashboard">
    Pour configurer la stratégie 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 stratégies **User-Delegated Access** et **Client Access**.
       * Définissez la stratégie **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 disposer d’une autorisation d’application pour accéder à l’API au nom de l’utilisateur.
         * **No apps allowed** : l’accès à l’API au nom de l’utilisateur est refusé aux applications.
       * Définissez la stratégie **Client Access** sur **Per-app authorization** ou **No apps allowed**.
         * **Per-app authorization** : les applications machine-à-machine sont autorisées à accéder à cette API tant qu’elles disposent de l’autorisation d’application correspondante.
         * **No apps allowed** : restreint l’accès machine-à-machine à cette API.
    3. Sélectionnez **Save** pour enregistrer **Application Access Policy**.

    Lorsque **Per-app authorization** est la stratégie 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 également sélectionner **Always grant all permissions**.
    * Pour **Client Access**, sélectionnez **Grant Access**, puis les permissions souhaitées. Vous pouvez également sélectionner **Always grant all permissions**. Pour **Organization Support**, sélectionnez :
      * **None** : l’accès machine-à-machine ne peut pas être limité à une organisation.
      * **Optional** : l’accès machine-à-machine peut être limité à une organisation.
      * **Required** : l’accès machine-à-machine doit être limité à une organisation.
  </Tab>

  <Tab title="Management API">
    Vous pouvez configurer la stratégie 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](/fr-CA/docs/api/management/v2/resource-servers/patch-resource-servers-by-id).

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

    **API existante**

    Pour configurer la stratégie d’accès des applications pour une API existante, envoyez une requête `PATCH` au point de terminaison `/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 stratégie d’accès des applications lors de la création d’une nouvelle API, envoyez une requête `POST` au point de terminaison `/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">
  ## Stratégies d’accès à l’API et applications tierces
</div>

Les [applications tierces](/fr-CA/docs/get-started/applications/third-party-applications) nécessitent toujours une autorisation d’application explicite pour accéder à une API, quelle que soit la stratégie d’accès configurée pour cette API.

| **Stratégie d’accès à l’API**             | **Applications de première partie**      | **Applications tierces**                 |
| ----------------------------------------- | ---------------------------------------- | ---------------------------------------- |
| **Tout autoriser**                        | Accès accordé                            | Nécessite une autorisation d’application |
| **Exiger une autorisation d’application** | Nécessite une autorisation d’application | Nécessite une autorisation d’application |
| **Refuser**                               | Accès refusé                             | Accès refusé                             |

Vous pouvez aussi configurer les [autorisations par défaut pour toutes les applications tierces](/fr-CA/docs/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 [Configure API Access Policies for Third-Party Applications](/fr-CA/docs/get-started/applications/third-party-applications/configure-third-party-applications#configure-api-access-policies).

<Callout icon="file-lines" color="#0EA5E9" iconType="regular">
  Certains locataires existants peuvent avoir des applications tierces dont le comportement en matière de stratégie d’accès diffère. Pour en savoir plus, consultez [Permissive Mode for Third-Party Applications](/fr-CA/docs/get-started/applications/third-party-applications/permissive-mode).
</Callout>

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

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