OAuth 2.0
Rôles OAuth
Dans tout flux OAuth 2.0, on peut identifier les rôles suivants :
- Resource Owner : l’entité qui peut accorder l’accès à une ressource protégée. Il s’agit généralement de l’utilisateur final.
- Resource Server : le serveur qui héberge les ressources protégées. C’est l’API à laquelle vous voulez accéder.
- Client : une application qui demande l’accès à une ressource protégée au nom du Resource Owner.
- serveur d’autorisation : le serveur qui authentifie le Resource Owner et émet des jetons d’accès après avoir obtenu l’autorisation appropriée. Dans ce cas-ci, il s’agit de l’Authentication API d’Auth0.
Client Credentials Grant

- L’application s’authentifie auprès du serveur d’autorisation à l’aide de son Client ID et de son Client Secret.
- Le serveur d’autorisation valide ces informations et renvoie un jeton d’accès.
- L’application peut utiliser le jeton d’accès pour appeler le Resource Server en son propre nom.
Jetons d’accès et portées
access_token) comme preuve qu’elle possède les permissions requises.
Un jeton d’accès est une chaîne opaque qui représente une autorisation accordée à l’application. Il est obtenu en authentifiant l’utilisateur auprès d’un serveur d’autorisation. L’utilisateur peut ensuite autoriser l’application à accéder à l’API en son nom. Pour en savoir plus, consultez Jetons d’accès.
Une API comme Timesheets API peut appliquer un contrôle granulaire sur les personnes qui peuvent accéder aux différents points de terminaison qu’elle expose. Ces permissions sont exprimées sous forme de portées.
Lorsque l’application Web classique de ExampleCo ou l’application tierce s’authentifie auprès d’Auth0 pour obtenir un jeton d’accès, la requête d’authentification inclut la liste des portées demandées dont l’application a besoin. Si ces portées sont autorisées, le jeton d’accès contiendra alors la liste des portées autorisées accordées à l’application.
La Regular Web App ou l’application tierce inclut le jeton d’accès du serveur d’autorisation lorsqu’elle envoie des requêtes à Timesheets API, et Timesheets API inspecte le claim scope pour s’assurer que les permissions requises ont bien été accordées avant d’autoriser l’appel au point de terminaison en question.
Par exemple, l’API de feuilles de temps peut accepter quatre niveaux d’autorisation différents : lire des feuilles de temps (portée read:timesheets), créer des feuilles de temps (portée create:timesheets), supprimer des feuilles de temps (portée delete:timesheets) et approuver des feuilles de temps (portée approve:timesheets).
Pour plus d’informations sur les portées, consultez Portées.
Lorsque la Regular Web App envoie une requête à Timesheets API pour créer une nouvelle entrée de feuille de temps, le jeton d’accès doit contenir la portée create:timesheets, sans quoi la requête sera refusée. De même, pour supprimer des feuilles de temps existantes, le jeton d’accès doit contenir la portée delete:timesheets.
Pour en savoir plus, consultez Portées.