Casbin RBAC vs. RBAC96
Casbin RBAC und RBAC96
In diesem Dokument werden wir Casbin RBAC mit RBAC96 vergleichen.
Casbin RBAC unterstützt fast alle Funktionen von RBAC96 und fügt darüber hinaus neue Funktionen hinzu.
RBAC Version | Unterstützungsgrad | Beschreibung |
---|---|---|
RBAC0 | Vollständig unterstützt | RBAC0 ist die Basisversion von RBAC96. Es klärt die Beziehung zwischen Benutzern, Rollen und Berechtigungen. |
RBAC1 | Vollständig unterstützt | RBAC1 fügt RBAC0 Rollenhierarchien hinzu. Das bedeutet, dass wenn alice role1 hat, role1 role2 hat, dann wird alice auch role2 haben und dessen Berechtigungen erben. |
RBAC2 | Gegenseitige Ausschlussbehandlung unterstützt (so wie dies) | RBAC2 fügt RBAC0 Einschränkungen hinzu. Dies ermöglicht es RBAC2, gegenseitig ausschließende Richtlinien zu behandeln. Allerdings werden quantitative Grenzen nicht unterstützt. |
RBAC3 | Gegenseitige Ausschlussbehandlung unterstützt (so wie dies) | RBAC3 ist eine Kombination aus RBAC1 und RBAC2. Es unterstützt Rollenhierarchien und Einschränkungen, die in RBAC1 und RBAC2 gefunden werden. Allerdings werden quantitative Grenzen nicht unterstützt. |
Der Unterschied zwischen Casbin RBAC und RBAC96
In Casbin ist die Unterscheidung zwischen Benutzer und Rolle nicht so klar wie in RBAC96.
In Casbin werden sowohl der Benutzer als auch die Rolle als Zeichenketten behandelt. Betrachten Sie zum Beispiel die folgende Richtliniendatei:
p, admin, book, read
p, alice, book, read
g, amber, adminWenn Sie die Methode
GetAllSubjects()
mit einer Instanz des Casbin Enforcers aufrufen:e.GetAllSubjects()
der Rückgabewert wird sein:
[admin alice]
Dies liegt daran, dass in Casbin die Subjekte sowohl Benutzer als auch Rollen umfassen.
Wenn Sie jedoch die Methode
GetAllRoles()
aufrufen:e.GetAllRoles()
der Rückgabewert wird sein:
[admin]
Daraus können Sie sehen, dass es in Casbin einen Unterschied zwischen Benutzern und Rollen gibt, aber er ist nicht so scharf wie in RBAC96. Natürlich können Sie Ihren Richtlinien ein Präfix hinzufügen, wie
user::alice
undrole::admin
, um ihre Beziehungen zu klären.Casbin RBAC bietet mehr Berechtigungen als RBAC96.
RBAC96 definiert nur 7 Berechtigungen: lesen, schreiben, anhängen, ausführen, kreditieren, belasten und anfragen.
In Casbin behandeln wir jedoch Berechtigungen als Zeichenketten. Dies ermöglicht es Ihnen, Berechtigungen zu erstellen, die besser zu Ihren Bedürfnissen passen.
Casbin RBAC unterstützt Domänen.
In Casbin können Sie Berechtigungen auf Basis von Domänen durchführen. Diese Funktion macht Ihr Zugriffskontrollmodell flexibler.