Usa lo strumento giusto per il lavoro come si suol dire. RBAC, come qualsiasi modello di controllo accessi, ha i suoi punti deboli. Molti sono ben compresi, anche discussi dal team NIST originale che ha inquadrato il modello.
link
Tuttavia, ci sono state alcune imprecisioni nella risposta di David Brossard. Ad esempio ...
I. It is static. RBAC cannot use contextual information e.g. time, user location, device type...
I vincoli vengono comunemente applicati durante l'attivazione di utenti, ruoli e permessi in RBAC. Ad esempio, ponendo vincoli temporali su un'attivazione di ruolo. Infatti INCITS 494 prescrive il loro uso:
5.4 RBAC Policy Enhanced Constraints
I vincoli avanzati vanno oltre lo standard RBAC INCITS 359 includendo ulteriori tipi di vincoli. I vincoli sui ruoli possono essere statici o dinamici. I vincoli statici vengono applicati off-line prima che il ruolo venga attivato dall'utente. I vincoli dinamici vengono applicati in linea dopo l'attivazione dei ruoli. Questi vincoli dinamici potenziati possono introdurre attributi nell'ambiente RBAC.
INCENSI 494-2012, p. 8
II. It cannot cater to dynamic segregation-of-duty.
L'RBAC supporta i vincoli SoD dinamici. Dalla specifica:
Separazione dinamica delle relazioni di dovere
La separazione statica delle relazioni di dovere riduce il numero di potenziali autorizzazioni che possono essere rese disponibili a un utente ponendo vincoli agli utenti che possono essere assegnati a un insieme di ruoli. Le relazioni di separazione dinamica dei compiti (DSD), come le relazioni SSD, hanno lo scopo di limitare le autorizzazioni disponibili per un utente. Tuttavia, le relazioni DSD differiscono dalle relazioni SSD dal contesto in cui sono imposte tali limitazioni. Le relazioni SSD definiscono e posizionano i vincoli sullo spazio di autorizzazione totale di un utente. Questo componente del modello definisce le proprietà DSD che limitano la disponibilità delle autorizzazioni in base all'autorizzazione dell'utente
spazio ponendo vincoli sui ruoli che possono essere attivati all'interno o attraverso le sessioni di un utente.
ANSI INCITS 359-2004, p. 10
III. It relies on custom code within application layers (API, apps, DB...) to implement finer-grained controls.
Un po 'confuso da questa affermazione perché in precedenza hai affermato che RBAC è a grana grossa.
Vuoi dire che il codice personalizzato deve essere scritto perché i controlli RBAC non soddisfano adeguatamente i requisiti di sicurezza per l'autorizzazione?
Dove sono le specifiche funzionali pubblicate da ABAC? Dove sono il modello standard (dati) e funzionale (api) per calcolare (e memorizzare) le sue decisioni?
Forse è meglio usare un'implementazione ABAC comprovata e non standard rispetto a un widget app personalizzato? Se è questo che stai dicendo, sono d'accordo, ma nessuno dei due è l'ideale.
ABAC ha il suo posto come RBAC. Sapere quando usare uno, l'altro o entrambi è importante. Comprendere i limiti e i punti di forza di ciascuno è fondamentale prima di affrontare adeguatamente le sfide che affrontiamo come operatori della sicurezza.