Skip to main content
Auth0 offre deux façons d’implémenter le contrôle d’accès basé sur les rôles (RBAC), que vous pouvez utiliser à la place du système interne de contrôle d’accès de votre API ou en complément de celui-ci :L’ensemble de fonctionnalités Authorization Core offre les mêmes fonctionnalités que l’Authorization Extension, améliore les performances et l’évolutivité, et propose un système RBAC plus souple que l’Authorization Extension.À l’heure actuelle, les deux implémentent les fonctionnalités clés du RBAC et vous permettent de limiter les scopes personnalisés définis pour une API à ceux qui ont été attribués à l’utilisateur en tant que permissions.
Vous pouvez utiliser les Auth0 Rules avec l’Authorization Extension pour notamment :
  • Ajouter des claims personnalisées au jeton émis.
  • Déterminer l’appartenance de l’utilisateur à des groupes, ainsi que ses rôles et ses permissions.
  • Stocker les informations sur les groupes, les rôles et les permissions de l’utilisateur dans app_metadata.
  • Ajouter les groupes, les rôles et les permissions de l’utilisateur au jeton envoyé (qui peut être demandé au moyen du scope openid groups permissions roles).
Comme la logique ci-dessus fait partie d’une règle, elle n’est exécutée que dans le contexte d’une connexion. Si des utilisateurs sont ajoutés à un groupe ou en sont retirés, ce changement ne sera pris en compte dans Auth0 qu’à la prochaine connexion de l’utilisateur. Pour en savoir plus, consultez Auth0 Rules.

Ajouter des claims personnalisées au jeton émis

Pour ajouter des claims personnalisées à vos jetons, vous pouvez créer une règle supplémentaire qui permet à l’Authorization Extension de le faire. Les claims personnalisées peuvent être avec ou sans espace de noms. Pour en savoir plus, consultez Créer des claims personnalisées. Vous devriez limiter le nombre de claims ajoutées au jeton.
Cette règle doit s’exécuter après la règle Authorization Extension. Pour vous en assurer, veillez à la placer sous la règle Authorization Extension. Lorsque vous appelez le point de terminaison /authorize ou configurez Lock, vous devrez préciser les informations à inclure dans le scope en indiquant groups, permissions et/ou roles.

Contrôler l’accès à l’application

Vous pouvez aussi écrire des Rules qui s’exécutent après la règle Authorization Extension pour notamment contrôler l’accès à votre application. Une façon de procéder consiste à préciser, pour chaque application, les rôles requis au moyen des métadonnées de l’application. Pour plus de détails, consultez Gérer les métadonnées avec les Rules.

Définir les rôles requis dans les métadonnées de l’application

Vous pouvez définir les métadonnées de l’application avec des rôles, qui sont des groupes de permissions regroupées pour créer un ensemble précis de fonctionnalités. Vous pouvez voir cette étape comme une façon d’« étiqueter » l’application afin que les rules que vous configurez sachent à quelle application s’appliquer.
  1. ⁠⁠⁠⁠Pour définir le champ context.clientMetadata avec required_roles, sélectionnez l’application sur laquelle vous voulez travailler dans Auth0 Dashboard > Applications > Applications. Vous accéderez ainsi aux Settings de l’application. Faites défiler la page vers le bas, puis sélectionnez Show Advanced Settings au bas de la page.
  2. Sous Application Metadata, ajoutez un élément en définissant la Clé sur required_roles et, dans le champ Valeur, entrez vos rôles sous forme de liste séparée par des virgules. Sélectionnez + Add pour ajouter le champ.
  3. Une fois terminé, sélectionnez Save Changes. Désormais, lorsque vous vous connectez à partir de cette application, context.clientMetadata contiendra required_roles avec la chaîne de rôles que vous avez entrée.

Créer une règle qui applique les rôles de l’application

Maintenant que chaque application a un rôle qui lui est associé, vous pouvez créer une règle qui s’exécute en tenant compte de cette information sur l’application.
  1. Avant de créer cette règle, activez Roles sous Token Contents et publiez la règle Authorization Extension.
  2. Ajoutez cette règle et assurez-vous qu’elle figure après la règle générée « auth0-authorization-extension ».
  3. Après avoir défini required_roles, créez une nouvelle règle avec le corps suivant :

En savoir plus