Zum Hauptinhalt springen

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 VersionUnterstützungsgradBeschreibung
RBAC0Vollständig unterstütztRBAC0 ist die Basisversion von RBAC96. Es klärt die Beziehung zwischen Benutzern, Rollen und Berechtigungen.
RBAC1Vollständig unterstütztRBAC1 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.
RBAC2Gegenseitige 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.
RBAC3Gegenseitige 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

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

    Wenn 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 und role::admin, um ihre Beziehungen zu klären.

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

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