Nella sicurezza informatica, il Role-based access control (in italiano: Controllo degli accessi basato sui ruoli) in sigla RBAC è un approccio a sistemi ad accesso ristretto per utenti autorizzati. È una più recente alternativa al Mandatory Access Control (Controllo degli accessi vincolato) e al Discretionary Access Control (Controllo degli accessi discrezionale).

Modello RBAC

All'interno di una organizzazione i ruoli sono creati per diverse funzioni di lavoro. I permessi per eseguire specifiche operazioni sono assegnate a specifici ruoli. Ai membri di un gruppo sono assegnati particolari ruoli e, attraverso queste assegnazioni, questi acquisiscono il permesso di eseguire specifiche funzioni. Poiché i permessi non sono assegnati direttamente agli utenti ma vengono acquisiti solo tramite il ruolo (o i ruoli) ad essi assegnati, la gestione dei diritti individuali per un utente diventa una semplice assegnazione dei ruoli appropriati per l'utente stesso. Questo semplifica le operazioni comuni, come l'aggiunta di un utente o il cambio di dipartimento.

Tre regole fondamentali sono definite per il modello RBAC:

1. Assegnazione dei ruoli: un soggetto può eseguire una transazione solo se il soggetto ha selezionato o è stato assegnato ad un ruolo.

2. Autorizzazione dei ruoli: un ruolo attivo per un soggetto deve essere stato autorizzato per il soggetto. Insieme alla regola 1 questa regola garantisce che gli utenti possono avere esclusivamente ruoli ai quali sono stati autorizzati.

3. Autorizzazione alla transazione: un soggetto può eseguire una transazione solo se la transazione è autorizzata per il ruolo attivo del soggetto. Insieme alle regole 1 e 2 questa regola garantisce che l'utente può eseguire solo transazioni alle quali è stato autorizzato.

Possono anche essere applicati vincoli aggiuntivi ed i ruoli possono essere combinati in una gerarchia dove livelli più alti sono composti dai permessi dei ruoli dei livelli inferiori.

Con i concetti di vincoli e di gerarchia dei ruoli si può creare o simulare un approccio lattice-based access control (LBAC). Pertanto RBAC può essere considerato un ampliamento di LBAC.

Quando si definisce un RBAC sono utili le seguenti convenzioni:

  • S = Soggetto = una persona o un agente automatico
  • R = Ruolo = funzione di lavoro o titolo che definisce un livello di autorità
  • P = Permessi = approvazione della modalità di accesso alla risorsa
  • SE = Sessione = una collegamento che coinvolge S, R e/o P
  • SA = Assegnazione al soggetto
  • PA = Assegnazione di permesso
  • RH = Gerarchia di ruolo ordinata parzialmente. RH può anche essere scritta come: ≥ (la notazione x ≥ y significa che x eredita i permessi di y)
  • Un soggetto può avere più ruoli.
  • un ruolo può avere più soggetti.
  • Un ruolo può avere più permessi.
  • Un permesso può essere assegnato a più ruoli.

Voci correlate