Vai al contenuto principale

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 RBACLivello di SupportoDescrizione
RBAC0Supportato CompletamenteRBAC0 è la versione di base di RBAC96. Chiarisce la relazione tra Utenti, Ruoli e Permessi.
RBAC1Completamente SupportatoRBAC1 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.
RBAC2Gestione 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.
RBAC3Gestione 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

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

    Se 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 e role::admin per chiarire i loro rapporti.

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

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