Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
Tipi di controllo degli accessi
È possibile utilizzare due modelli ampiamente definiti per implementare il controllo degli accessi: controllo degli accessi basato sui ruoli (RBAC) e controllo degli accessi basato sugli attributi (ABAC). Ciascun modello presenta vantaggi e svantaggi, descritti brevemente in questa sezione. Il modello da utilizzare dipende dal caso d'uso specifico. L'architettura descritta in questa guida supporta entrambi i modelli.
RBAC
Il controllo degli accessi basato sul ruolo (RBAC) determina l'accesso alle risorse in base a un ruolo che di solito è in linea con la logica aziendale. Le autorizzazioni sono associate al ruolo a seconda dei casi. Ad esempio, un ruolo di marketing autorizzerebbe un utente a svolgere attività di marketing all'interno di un sistema limitato. Si tratta di un modello di controllo degli accessi relativamente semplice da implementare perché si allinea bene a una logica aziendale facilmente riconoscibile.
Il modello RBAC è meno efficace quando:
-
Hai utenti unici le cui responsabilità comprendono diversi ruoli.
-
Avete una logica aziendale complessa che rende difficile la definizione dei ruoli.
-
Il passaggio a grandi dimensioni richiede un'amministrazione e una mappatura costanti delle autorizzazioni per ruoli nuovi ed esistenti.
-
Le autorizzazioni si basano su parametri dinamici.
ABAC
Il controllo degli accessi basato sugli attributi (ABAC) determina l'accesso alle risorse in base agli attributi. Gli attributi possono essere associati a un utente, a una risorsa, a un ambiente o persino allo stato dell'applicazione. I criteri o le regole fanno riferimento agli attributi e possono utilizzare la logica booleana di base per determinare se un utente è autorizzato a eseguire un'azione. Ecco un esempio di base di autorizzazioni:
Nel sistema di pagamento, tutti gli utenti del reparto finanziario possono elaborare i pagamenti presso l'endpoint API /payments
durante l'orario lavorativo.
L'appartenenza al dipartimento finanziario è un attributo utente che determina l'accesso a/payments
. Esiste anche un attributo di risorsa associato all'endpoint /payments
API che consente l'accesso solo durante l'orario lavorativo. In ABAC, la capacità di un utente di elaborare o meno un pagamento è determinata da una politica che include l'appartenenza al dipartimento finanziario come attributo utente e l'ora come attributo di risorsa di. /payments
Il modello ABAC è molto flessibile nel consentire decisioni di autorizzazione dinamiche, contestuali e granulari. Tuttavia, il modello ABAC è difficile da implementare inizialmente. La definizione di regole e politiche, nonché l'enumerazione degli attributi per tutti i vettori di accesso pertinenti, richiedono un investimento iniziale significativo per l'implementazione.
Approccio ibrido RBAC-ABAC
La combinazione di RBAC e ABAC può offrire alcuni dei vantaggi di entrambi i modelli. RBAC, essendo così strettamente allineato alla logica aziendale, è più semplice da implementare rispetto all'ABAC. Per fornire un ulteriore livello di granularità quando si prendono decisioni di autorizzazione, è possibile combinare ABAC con RBAC. Questo approccio ibrido determina l'accesso combinando il ruolo dell'utente (e le autorizzazioni assegnate) con attributi aggiuntivi per prendere decisioni di accesso. L'utilizzo di entrambi i modelli consente una semplice amministrazione e assegnazione delle autorizzazioni, consentendo al contempo una maggiore flessibilità e granularità relative alle decisioni di autorizzazione.
Confronto dei modelli di controllo degli accessi
La tabella seguente mette a confronto i tre modelli di controllo degli accessi discussi in precedenza. Questo confronto vuole essere informativo e di alto livello. L'utilizzo di un modello di accesso in una situazione specifica potrebbe non essere necessariamente correlato ai confronti effettuati in questa tabella.
Fattore |
RBAC |
ABAC |
Ibrido |
Flessibilità |
Media |
Elevata |
Elevata |
Semplicità |
Elevata |
Bassa |
Media |
Granularity (Granularità) |
Bassa |
Elevata |
Media |
Decisioni e regole dinamiche |
No |
Sì |
Sì |
Consapevole al contesto |
No |
Sì |
Un po' |
Sforzo di implementazione |
Bassa |
Elevata |
Media |