Auth0 propose deux façons de mettre en œuvre le contrôle d’accès basé sur les rôles (RBAC), que vous pouvez utiliser à la place du système de contrôle d’accès interne de votre API ou en combinaison avec lui :L’ensemble des fonctionnalités Authorization Core correspond aux fonctionnalités d’Authorization Extension, améliore les performances et l’évolutivité, et fournit un système RBAC plus souple qu’Authorization Extension.À ce stade, les deux mettent en œuvre les fonctionnalités clés de RBAC et vous permettent de restreindre les permissions personnalisées définies pour une API à celles qui ont été attribuées à l’utilisateur en tant qu’autorisations.
- Ajouter des demandes personnalisées au jeton émis.
- Déterminer l’appartenance de l’utilisateur à un groupe, ses rôles et ses autorisations.
- Stocker les informations sur les groupes, les rôles et les autorisations de l’utilisateur dans
app_metadata. - Ajouter les groupes, rôles et permissions de l’utilisateur au jeton sortant (qui peut être demandé via la permission
openid groups permissions roles).
Ajouter des demandes personnalisées au jeton émis
/authorize ou que vous configurez Lock, vous devez préciser les informations que vous souhaitez dans scope en indiquant groups, permissions et/ou roles.
Contrôler l’accès aux applications
Définir les rôles requis pour les métadonnées de l’application
- Pour définir le champ
context.clientMetadataavecrequired_roles, sélectionnez l’application sur laquelle vous souhaitez travailler à partir d’Auth0 Dashboard > Applications > Applications. Vous accédez ainsi aux Paramètres de l’application. Faites défiler vers le bas et sélectionnez Afficher les paramètres avancés au bas de la page. - Sous Métadonnées de l’application, ajoutez un élément en définissant Key sur
required_roleset, dans le champ Value, énumérez vos rôles en les séparant par des virgules. Sélectionnez + Ajouter pour ajouter le champ. - Une fois terminé, sélectionnez Enregistrer les modifications. Désormais, lorsque vous vous connecterez à partir de cette application, dans
context.clientMetadata, vous aurez le champrequired_rolesavec la chaîne de valeur des rôles que vous avez saisie.
Créer une règle appliquant les rôles des applications
- Avant de créer cette règle, activez Roles (Rôles) sous Token Contents (Contenus du jeton) et publiez la règle d’Authorization Extension.
- Ajoutez cette règle et assurez-vous qu’elle figure après la règle « auth0-authorization-extension » générée.
-
Après avoir défini
required_roles, créez une nouvelle règle avec le corps suivant :