Passer au contenu principal
Le contrôle d’accès basé sur les rôles (RBAC) consiste à attribuer des permissions aux utilisateurs selon leur rôle au sein d’une organisation. Il offre une approche simple et facile à gérer pour la gestion des accès, qui est moins sujette aux erreurs que l’attribution individuelle de permissions aux utilisateurs. Lorsque vous utilisez le RBAC pour la gestion des rôles, vous analysez les besoins de vos utilisateurs et les regroupez en rôles selon leurs responsabilités communes. Vous attribuez ensuite un ou plusieurs rôles à chaque utilisateur, puis une ou plusieurs permissions à chaque rôle. Les relations entre utilisateurs et rôles, ainsi qu’entre rôles et permissions, simplifient l’attribution des accès, puisque les utilisateurs n’ont plus à être gérés individuellement et obtiennent plutôt des privilèges conformes aux permissions attribuées à leur ou leurs rôles. Par exemple, si vous utilisiez le RBAC pour contrôler l’accès à une application de ressources humaines, vous pourriez attribuer aux gestionnaires RH un rôle leur permettant de mettre à jour les renseignements des employés, tandis que les autres employés ne pourraient consulter que leurs propres renseignements. Lorsque vous planifiez votre stratégie de contrôle d’accès, il est recommandé, comme bonne pratique, d’attribuer aux utilisateurs le nombre minimal de permissions nécessaires pour accomplir leur travail.
Pour un modèle d’autorisation plus robuste, consultez Fine-Grained Authorization (FGA) pour en savoir plus sur l’autorisation basée sur les attributs et les relations.

Avantages du RBAC

Avec le RBAC, la gestion des accès est plus simple tant que vous respectez strictement les exigences associées aux rôles. Le RBAC vous aide à :
  • créer une attribution systématique et reproductible des permissions
  • vérifier facilement les privilèges des utilisateurs et corriger les problèmes relevés
  • ajouter et modifier rapidement des rôles, ainsi que les appliquer à l’ensemble des API
  • réduire le risque d’erreur lors de l’attribution des permissions aux utilisateurs
  • intégrer des utilisateurs tiers en leur attribuant des rôles prédéfinis
  • mieux respecter les exigences réglementaires et légales en matière de confidentialité et de protection des renseignements personnels

Modèle RBAC

Rôles

Essentiellement, un rôle est un ensemble de permissions que vous pouvez attribuer à des utilisateurs. L’utilisation de rôles facilite l’ajout, la suppression et la modification de permissions, plutôt que de les attribuer individuellement à chaque utilisateur. À mesure que votre base d’utilisateurs s’accroît en taille et en complexité, les rôles deviennent particulièrement utiles. Vous pouvez aussi utiliser des rôles pour regrouper des permissions définies pour différentes API. Par exemple, supposons que vous avez un module de marketing qui permet aux utilisateurs de créer et de distribuer des infolettres aux clients. Votre spécialiste du contenu marketing crée toutes les infolettres et les prépare pour la distribution. De même, vous avez un module d’événements qui permet aux utilisateurs de créer, de publier et de gérer les inscriptions aux événements. Votre coordonnateur d’événements crée les événements. Une fois que le vice-président du marketing approuve les infolettres et les événements, son adjoint publie les événements et distribue les infolettres. Dans ce cas, votre API Newsletter pourrait avoir la permission distribute:newsletters et votre API Event pourrait avoir la permission publish:events. Ces permissions pourraient ensuite être regroupées dans un rôle appelé Marketing Publisher et attribuées à l’adjoint du vice-président du marketing. De plus, des rôles propres à l’organisation peuvent être ajoutés aux membres de l’organisation et utilisés pour accorder l’accès dans votre application en fonction des organisations avec lesquelles un utilisateur final se connecte. Cela est particulièrement utile pour les produits multilocataires et SaaS, où un utilisateur donné peut avoir un rôle privilégié dans une organisation, mais pas dans les autres.

Chevauchement des attributions de rôles

Le RBAC est un modèle additif. Si vous avez des attributions de rôles qui se chevauchent, les permissions effectives correspondent à l’union de ces attributions. Par exemple, supposons que vous ayez une API qui fournit des données pour une application d’événements. Vous créez un rôle Organizer et lui attribuez des permissions qui lui permettent d’afficher, de créer et de modifier des événements. Vous créez également un rôle Registrant et lui attribuez des permissions qui lui permettent d’afficher des événements et de s’y inscrire. Les utilisateurs qui ont à la fois les rôles Organizer et Registrant pourront afficher, créer et modifier des événements, ainsi que s’y inscrire.

Contrôle d’accès basé sur les rôles dans Auth0

Nous proposons actuellement 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 celui-ci : Nous élargissons les fonctionnalités d’Authorization Core afin qu’elles offrent les mêmes capacités qu’Authorization Extension. Notre nouvelle implémentation centrale du RBAC améliore les performances et l’évolutivité, et finira par offrir un système RBAC plus souple qu’Authorization Extension. Pour l’instant, les deux offrent les fonctionnalités clés du RBAC et vous permettent de restreindre les scopes personnalisés définis pour une API à ceux qui ont été attribués à l’utilisateur sous forme de permissions. Pour une comparaison, consultez Authorization Core vs. Authorization Extension.
Les fonctionnalités Authorization Core et Authorization Extension sont entièrement distinctes. Pour gérer les groupes, les rôles ou les permissions, vous devez utiliser la fonctionnalité dans laquelle ils ont été créés à l’origine.
Bien que l’extension Delegated Administration Extension (DAE) et les fonctionnalités Authorization Core soient entièrement distinctes, vous pouvez utiliser les fonctionnalités d’Authorization Core pour créer et gérer des rôles pour DAE à l’aide d’Actions. Pour savoir comment, consultez Sample Use Cases: Actions with Authorization.

Étendre le RBAC

Vous pouvez offrir un contrôle plus précis en utilisant les Rules pour restreindre l’accès en fonction d’une combinaison d’attributs, comme le service de l’utilisateur, l’heure, le lieu d’accès ou tout autre attribut de l’utilisateur ou de l’API (par exemple, le nom d’utilisateur, l’habilitation de sécurité ou le nom de l’API). Pour en savoir plus sur l’utilisation des Rules avec les politiques d’autorisation, consultez Rules et politiques d’autorisation.

En savoir plus