Passer au contenu principal

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 RBACNiveau de supportDescription
RBAC0Entièrement pris en chargeRBAC0 est la version de base de RBAC96. Il clarifie la relation entre les utilisateurs, les rôles et les permissions.
RBAC1Entièrement pris en chargeRBAC1 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.
RBAC2Gestion 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.
RBAC3Gestion 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

  1. 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, admin

    Si 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 et role::admin pour clarifier leurs relations.

  2. 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.

  3. 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.