Skip to main content
Dans Auth0, vous pouvez contrôler la façon dont les applications accèdent à vos API à l’aide des politiques d’accès des applications aux API et des autorisations client. Une autorisation client accorde à une application un accès précis à une API. Elle associe :
  • Une API identifiée par son audience ou son identifiant unique.
  • Une application identifiée par son client_id.
  • Une liste de permissions, comme des scopes et/ou des authorization_details_types, que l’application est autorisée à demander pour l’audience indiquée.
Pour en savoir plus sur la liste des attributs que vous pouvez définir dans une autorisation client, consultez Attributs d’autorisation client. Pour savoir comment définir et gérer les autorisations client, consultez Créer une autorisation client.

Politiques d’accès des applications à l’API et autorisations client

Lorsque vous configurez la politique d’accès des applications d’une API sur require_client_grant, seules les applications pour lesquelles une autorisation client est définie peuvent obtenir un jeton d’accès à l’API. L’autorisation client détermine les permissions maximales qu’une application peut demander à l’API, conformément au principe du moindre privilège. Par conséquent, Auth0 recommande d’utiliser require_client_grant lorsque vous configurez la politique d’accès des applications d’une API.

Exemple : API de médias sociaux

Pour illustrer comment les autorisations client appliquent le principe du moindre privilège, supposons que vous disposiez d’une API de médias sociaux avec les autorisations suivantes : read:posts, write:posts, read:friends et delete:posts. Vous créez une application et définissez une autorisation client avec les autorisations read:posts et write:posts. Cette autorisation client sert maintenant de limite maximale stricte. Même si l’API de médias sociaux comporte d’autres autorisations, votre application ne pourra jamais demander ni obtenir read:friends ou delete:posts.

Accès délégué par l’utilisateur vs accès client

Dans les cas d’accès utilisateur et d’accès client, les autorisations client définissent l’ensemble final des autorisations qui contrôlent l’accès d’une application à une API. L’attribut subject_type de l’autorisation client détermine le type d’accès applicatif autorisé pour une API. Une application peut avoir jusqu’à deux autorisations client pour une même API :
  • Lorsque vous définissez subject_type sur client, vous définissez ses autorisations machine-à-machine.
  • Lorsque vous définissez subject_type sur user, vous définissez ses autorisations pour agir au nom de l’utilisateur.
Le tableau suivant explique comment les autorisations client contrôlent l’accès des applications aux API selon le type de flux d’accès :
Vous pouvez modifier les scopes finaux accordés par le serveur d’autorisation à l’application ou à l’utilisateur à l’aide de Actions.

Attributs du autorisation client

Un autorisation client comporte plusieurs attributs que vous pouvez définir pour configurer l’accès de l’application aux API à l’aide de l’Auth0 Management API :

Créer une autorisation client

Vous pouvez créer : Lorsque les deux existent pour la même API, les permissions par application priment sur les permissions par défaut pour les applications tierces.

Permissions par application

Pour configurer les permissions par application dans l’Auth0 Dashboard :
  1. Accédez à Dashboard > Applications > APIs et sélectionnez l’API pour laquelle vous souhaitez configurer l’accès des applications.
  2. Allez à l’onglet Settings et faites défiler jusqu’à Application Access Policy.
    • Réglez User-Delegated Access sur No apps allowed, Per-app authorization ou All apps allowed.
      • No apps allowed : aucune application ne peut obtenir de jeton d’accès pour l’API.
      • Per-app authorization : seules les applications pour lesquelles une autorisation client est définie peuvent obtenir un jeton d’accès pour l’API.
      • All apps allowed : toute application de votre tenant peut obtenir un jeton d’accès pour l’API.
    • Réglez Client Access sur Per-app authorization ou All apps allowed.
      • Per-app authorization : seules les applications pour lesquelles une autorisation client est définie peuvent obtenir un jeton d’accès pour l’API.
      • All apps allowed : toute application de votre tenant peut obtenir un jeton d’accès pour l’API.
  3. Sélectionnez Save pour enregistrer les paramètres de Application Access Policy.
Paramètres de l’API dans le Dashboard pour Application Access Policy
Pour les permissions par application, vous devez autoriser individuellement l’accès à l’API pour chaque application.
  1. Accédez à Applications > APIs et sélectionnez l’API.
  2. Allez à l’onglet Application Access.
  3. Faites défiler jusqu’à l’application, sélectionnez Edit, puis Grant Access pour User-Delegated Access et/ou Client Access. Sélectionnez ensuite les permissions souhaitées.
  4. Sélectionnez Save.
Paramètres de l’API dans le Dashboard pour accorder l’accès à l’API à une application

autorisation par défaut pour les applications tierces

Les applications tierces exigent toujours une autorisation client explicite pour accéder à une API, même lorsque la politique d’accès de l’API est définie sur Allow All. Pour simplifier la gestion lorsque vous avez un grand nombre d’applications tierces ou que vous utilisez Dynamic Client Registration, configurez des autorisations ou des permissions par défaut qui s’appliquent automatiquement à toutes les applications tierces. Une autorisation client tiers par défaut utilise l’attribut default_for au lieu d’un client_id. Vous pouvez aussi définir des permissions par application en créant une autorisation client avec un client_id précis. Lorsque les deux existent pour la même API, les permissions par application ont préséance.
Les API système (la Management API, My Account API et d’autres) ne prennent pas en charge les autorisations client tiers par défaut. Les applications tierces ne peuvent pas obtenir d’accès aux API système.
Les attributs default_for et client_id s’excluent mutuellement. Chaque autorisation client doit en préciser exactement un. Pour savoir comment configurer les politiques d’accès aux API pour les applications tierces, consultez Configure Third-Party Applications.
Pour configurer les permissions par défaut pour les applications tierces à l’aide de l’Auth0 Dashboard :
  1. Accédez à Dashboard > Applications > APIs et sélectionnez l’API pour laquelle vous souhaitez configurer l’accès de l’application.
  2. Allez à l’onglet Settings et faites défiler la page jusqu’à Default Permissions for Third-Party Applications.
    • Configurez User-Delegated Access et/ou Client Access à Unauthorized, Authorized ou All.
      • Unauthorized : aucune permission n’est autorisée.
      • Authorized : sélectionnez les permissions voulues.
      • All : inclut les permissions existantes et futures.
  3. Sélectionnez Save.
Paramètres d’API du Dashboard avec les permissions par défaut pour les applications tierces

Mettre à jour une autorisation client

Pour mettre à jour une autorisation client existante, effectuez une requête PATCH vers /client-grants/{id} :

Supprimer une autorisation client

Pour supprimer une autorisation client, envoyez une requête DELETE à /client-grants/{id} :

Récupérer les autorisations client

Vous pouvez aussi interroger les collections client-grants et les parcourir page par page à l’aide de paramètres comme client_id, audience ou subject_type :

Pour en savoir plus