CBAC (controllo dell'accesso basato sulle attestazioni) e ABAC (controllo dell'accesso basato sull'attributo) sono essenzialmente gli stessi per cui un reclamo è un "attributo" affermato. Ad esempio, prendi un attributo da Active Directory e trasformalo in reclamo.
Tuttavia, ci sono alcuni problemi con CBAC:
- prima di tutto, è un termine specifico di Microsoft, non un modello per sé come ABAC o RBAC.
- in secondo luogo, la stessa Microsoft usa CBAC per significare cose diverse. CBAC in .NET, CBAC in Windows Server 2012 (Windows Server 8) e CBAC in Sharepoint per nominarne solo alcuni
- CBAC non definisce l'autorizzazione stessa, ma solo il modo in cui ottieni attestazioni o attributi. Lascia l'intera scatola di "come si fa a dare senso alle affermazioni" fino all'implementazione, motivo per cui CBAC non significa necessariamente la stessa cosa in SharePoint come in un'applicazione .NET.
- In SharePoint, l'accesso è concesso se un utente ha almeno un reclamo per la risorsa
- in Windows Server, esiste un linguaggio dei criteri denominato SDDL che definisce cosa è consentito in base alle attestazioni (affermazioni sull'utente provenienti da AD e rivendicazioni sul file proveniente dalla classificazione del file)
- in un'app .NET, spetta allo sviluppatore decidere cosa fanno con il reclamo.
ABAC sull'altro è un modello che implementa XACML, l'eXtensible Access Control Markup Language. ABAC e XACML definiscono come utilizzare gli attributi per definire l'autorizzazione. Le autorizzazioni sono definite utilizzando le politiche basate sugli attributi. Le politiche usano gli attributi per definire cosa è permesso e cosa è negato.
In XACML, è sempre chiaro cosa può essere permesso o negato. Le politiche sono definite e mantenute centralmente. XACML definisce anche un'architettura standard (che, tra l'altro, non è stata inventata da XACML) con la nozione di punto di decisione della politica e punto di applicazione della politica.
Ti consiglierei di leggere su ABAC e XACML qui:
Saluti,
David.