Casbin RBAC vs. RBAC96
Casbin RBAC et RBAC96
Dans ce document, nous comparerons Casbin RBAC avec RBAC96.
Casbin RBAC prend en charge presque toutes les fonctionnalités de RBAC96 et ajoute de nouvelles fonctionnalités par-dessus.
Version RBAC | Niveau de support | Description |
---|---|---|
RBAC0 | Entièrement pris en charge | RBAC0 est la version de base de RBAC96. Il clarifie la relation entre les utilisateurs, les rôles et les permissions. |
RBAC1 | Entièrement pris en charge | RBAC1 ajoute des hiérarchies de rôles sur RBAC0. Cela signifie que si alice a role1 , role1 a role2 , alors alice aura également role2 et héritera de ses permissions. |
RBAC2 | Gestion des exclusivités mutuelles prise en charge (comme ceci) | RBAC2 ajoute des contraintes sur RBAC0. Cela permet à RBAC2 de gérer des politiques mutuellement exclusives. Cependant, les limites quantitatives ne sont pas prises en charge. |
RBAC3 | Gestion des exclusivités mutuelles prise en charge (comme ceci) | RBAC3 est une combinaison de RBAC1 et RBAC2. Il prend en charge les hiérarchies de rôles et les contraintes trouvées dans RBAC1 et RBAC2. Cependant, les limites quantitatives ne sont pas prises en charge. |
La différence entre Casbin RBAC et RBAC96
Dans Casbin, la distinction entre l'utilisateur et le rôle n'est pas aussi claire que dans RBAC96.
Dans Casbin, l'utilisateur et le rôle sont tous deux traités comme des chaînes de caractères. Par exemple, considérez le fichier de politique suivant :
p, admin, book, read
p, alice, book, read
g, amber, adminSi vous appelez la méthode
GetAllSubjects()
en utilisant une instance de l'Enforcer Casbin :e.GetAllSubjects()
la valeur de retour sera :
[admin alice]
C'est parce que dans Casbin, les sujets incluent à la fois les Utilisateurs et les Rôles.
Cependant, si vous appelez la méthode
GetAllRoles()
:e.GetAllRoles()
la valeur de retour sera :
[admin]
De cela, vous pouvez voir qu'il y a une distinction entre les Utilisateurs et les Rôles dans Casbin, mais elle n'est pas aussi nette que dans RBAC96. Bien sûr, vous pouvez ajouter un préfixe à vos politiques telles que
user::alice
etrole::admin
pour clarifier leurs relations.Casbin RBAC offre plus de permissions que RBAC96.
RBAC96 définit seulement 7 permissions : lire, écrire, ajouter, exécuter, créditer, débiter, et enquêter.
Cependant, dans Casbin, nous traitons les permissions comme des chaînes de caractères. Cela vous permet de créer des permissions qui correspondent mieux à vos besoins.
Casbin RBAC prend en charge les domaines.
Dans Casbin, vous pouvez effectuer des autorisations basées sur des domaines. Cette fonctionnalité rend votre Modèle de Contrôle d'Accès plus flexible.