Passer au contenu principal
Les politiques d’accès aux API pour les applications sont actuellement offertes en accès anticipé. En utilisant cette fonctionnalité, vous acceptez les conditions applicables de version d’essai gratuite prévues dans la Convention principale d’abonnement d’Okta.
Dans Auth0, vous pouvez contrôler la façon dont les applications accèdent à vos API à l’aide des politiques d’accès aux API pour les applications et des autorisations de client. Une autorisation de client offre un contrôle très précis de l’accès d’une application à 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 d’autorisations, comme des scopes et/ou des authorization_details_types que l’application est autorisée à demander pour l’audience spécifiée.
Pour en savoir plus sur les attributs que vous pouvez définir dans une autorisation de client, consultez Attributs d’autorisation de client. Pour apprendre à définir et à gérer les autorisations de client, consultez Configurer les autorisations de client.

Politiques d’accès à l’API pour les applications et octrois de client

Lorsque vous configurez la politique d’accès à l’API pour les applications d’une API sur require_client_grant, seules les applications disposant d’un octroi de client défini peuvent obtenir un jeton d’accès pour cette API. L’octroi de client définit les autorisations maximales qu’une application peut demander à l’API en appliquant le principe du moindre privilège. Par conséquent, Auth0 recommande d’utiliser require_client_grant lors de la configuration de la politique d’accès à l’API pour les applications.

Exemple : Social Media API

Pour illustrer comment les client grants appliquent le principe du moindre privilège, supposons que vous ayez une API Social Media avec les permissions : read:posts, write:posts, read:friends et delete:posts. Vous créez une application et définissez un client grant avec les permissions : read:posts et write:posts. Ce client grant sert maintenant de plafond maximal. Même si l’API Social Media comporte d’autres permissions, votre application ne pourra jamais demander ou se voir accorder read:friends ou delete:posts.

Flux d’accès utilisateur vs flux d’accès client

Dans les flux d’accès utilisateur et d’accès client, les autorisations client définissent l’ensemble final des permissions 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 d’application autorisé pour une API. Une application peut avoir jusqu’à deux autorisations client pour une même API :
  • Quand vous définissez subject_type sur client, vous définissez ses permissions de type machine à machine.
  • Quand vous définissez subject_type sur user, vous définissez ses permissions pour agir au nom de l’utilisateur.
Le tableau suivant explique comment les autorisations client contrôlent l’accès des applications aux API en fonction du type de flux d’accès :
Type d’accèsAttribut subject_typeDescription
Flux Client Credentials (flux d’accès machine à machine)Définissez subject_type sur client.L’autorisation client autorise directement l’application à accéder à l’API en son propre nom plutôt qu’au nom de l’utilisateur final. Les permissions que vous définissez dans l’autorisation client sont celles que l’application est autorisée à recevoir dans le jeton d’accès.
Flux d’accès utilisateurDéfinissez subject_type sur user.L’autorisation client définit les permissions maximales que l’application peut demander à l’API. Les permissions finales dans le jeton d’accès émis à l’application au nom de l’utilisateur sont l’intersection des permissions :

Pour en savoir plus sur les flux d’accès utilisateur, consultez Flux d’authentification et d’autorisation. Les flux d’accès utilisateur n’incluent pas le flux Client Credentials.
Vous pouvez modifier les portées finales accordées par le serveur d’autorisation à l’application ou à l’utilisateur à l’aide des Actions.

Attributs de l’autorisation client

Une autorisation client comporte plusieurs attributs que vous pouvez définir pour configurer l’accès de l’application aux API :
AttributDescription
idIdentifiant unique de l’autorisation client.
audienceIdentifiant unique de l’API à laquelle s’applique l’autorisation client.
client_idL’ID unique de l’application à laquelle l’accès est accordé.
scopesUn tableau de chaînes de caractères représentant les permissions que l’application peut demander.
authorization_details_typesUn tableau de chaînes de caractères représentant les types de données d’autorisation détaillées que l’application peut demander. Cet attribut peut uniquement être spécifié pour les flux d’accès utilisateur.
subject_typeLe type d’accès à l’application que permet l’autorisation client :
  • user : utilisé pour l’accès utilisateur, ce qui correspond à tous les flux qui génèrent un jeton associé à un utilisateur final.
  • client : utilisé pour l’accès machine, ce qui correspond au flux d’informations d’identification du client (Client Credentials Flow).
organization_usageDétermine comment l’application peut utiliser les organisations lorsqu’elle accède à l’API via le flux d’informations d’identification du client. Les valeurs possibles sont : deny, allow ou require.

Pour en savoir plus sur les paramètres d’organisation, consultez Organizations for M2M Applications: Define Organization Behavior.
allow_any_organizationDétermine si l’application peut accéder à n’importe quelle organisation lorsqu’elle utilise le flux d’informations d’identification du client.

Pour en savoir plus sur les paramètres d’organisation, consultez Organizations for M2M Applications: Define Organization Behavior.

Configurer les autorisations client

Vous pouvez utiliser la Management API pour configurer les autorisations client via le point de terminaison /client-grants.

Créer une autorisation client

Pour créer une nouvelle autorisation client, effectuez une requête POST vers le point de terminaison /client-grants. L’exemple de code suivant crée une autorisation client pour qu’une application accède à l’API https://api.my-service.com. Le subject_type est user, ce qui signifie que l’autorisation client est destinée à l’accès utilisateur et permet à l’application de demander la portée read:item et le type de détails d’autorisation payment.

Mettre à jour une autorisation client

Pour mettre à jour une autorisation client existante, effectuez une requête PATCH vers /client-grants/{id}. L’exemple de code suivant met à jour une autorisation client existante afin d’étendre ses autorisations. L’Application peut maintenant aussi demander la portée update:item et un type supplémentaire de détails d’autorisation credits_transfer.

Supprimer une autorisation de client

Pour supprimer une autorisation de client, effectuez une requête DELETE vers /client-grants/{id}. L’exemple de code suivant supprime l’autorisation de client, ce qui révoque l’accès de l’application à l’API :

Récupérer les autorisations client

Vous pouvez aussi interroger et parcourir avec pagination les collections client-grants en utilisant des paramètres comme client_id, audience ou subject_type. L’exemple de code suivant récupère toutes les autorisations client qui permettent l’accès des utilisateurs à l’API https://api.my-service.com.

En savoir plus