Casbin RBAC vs. RBAC96
Casbin RBAC e RBAC96
In questo documento, confronteremo Casbin RBAC con RBAC96.
Casbin RBAC supporta quasi tutte le funzionalità di RBAC96 e aggiunge nuove funzionalità sopra quelle.
Versione RBAC | Livello di Supporto | Descrizione |
---|---|---|
RBAC0 | Supportato Completamente | RBAC0 è la versione di base di RBAC96. Chiarisce la relazione tra Utenti, Ruoli e Permessi. |
RBAC1 | Completamente Supportato | RBAC1 aggiunge gerarchie di ruoli sopra RBAC0. Ciò significa che se alice ha ruolo1 , ruolo1 ha ruolo2 , allora alice avrà anche ruolo2 e erediterà i suoi permessi. |
RBAC2 | Gestione Mutuamente Esclusiva Supportata (come questa) | RBAC2 aggiunge vincoli su RBAC0. Ciò permette a RBAC2 di gestire politiche mutuamente esclusive. Tuttavia, i limiti quantitativi non sono supportati. |
RBAC3 | Gestione Mutualmente Esclusiva Supportata (come questa) | RBAC3 è una combinazione di RBAC1 e RBAC2. Supporta le gerarchie di ruoli e i vincoli presenti in RBAC1 e RBAC2. Tuttavia, i limiti quantitativi non sono supportati. |
La Differenza Tra Casbin RBAC e RBAC96
In Casbin, la distinzione tra Utente e Ruolo non è così chiara come in RBAC96.
In Casbin, sia l'Utente che il Ruolo sono trattati come stringhe. Ad esempio, considera il seguente file di policy:
p, admin, book, read
p, alice, book, read
g, amber, adminSe chiami il metodo
GetAllSubjects()
utilizzando un'istanza di Casbin Enforcer:e.GetAllSubjects()
il valore di ritorno sarà:
[admin alice]
Questo perché in Casbin, i soggetti includono sia Utenti che Ruoli.
Tuttavia, se chiami il metodo
GetAllRoles()
:e.GetAllRoles()
il valore di ritorno sarà:
[admin]
Da questo, puoi vedere che c'è una distinzione tra Utenti e Ruoli in Casbin, ma non è così netta come in RBAC96. Certo, puoi aggiungere un prefisso alle tue politiche come
user::alice
erole::admin
per chiarire i loro rapporti.Casbin RBAC fornisce più permessi di RBAC96.
RBAC96 definisce solo 7 permessi: read, write, append, execute, credit, debit e inquiry.
Tuttavia, in Casbin, trattiamo i permessi come stringhe. Questo ti permette di creare permessi che si adattano meglio alle tue esigenze.
Casbin RBAC supporta i domini.
In Casbin, puoi effettuare autorizzazioni basate su domini. Questa funzionalità rende il tuo Modello di Controllo degli Accessi più flessibile.