Devo implementare un sistema flessibile di controllo degli accessi per un framework utilizzato da un paio di applicazioni .NET.
Ho esaminato l'ABAC (Attribute-Based Access Control) e XACML e questo sembra fornire la flessibilità necessaria per prendere decisioni non solo in base all'identità dell'utente, ma anche alle informazioni sulla risorsa richiesta.
Scenario tipico in cui ho bisogno di questo:
Allow access to patient files only to doctors who are assigned to the patient.
Tuttavia esternalizzare l'autorizzazione a un provider di terze parti o un altro server PDP perché significherebbe una chiamata di rete ogni volta che il PEP (l'applicazione) esegue un'azione che deve essere autorizzata.
Ha senso usare XACML con un PDP incorporato? I.e. l'applicazione trasforma le decisioni di autorizzazione in richieste XACML, quindi chiama un modulo PDP incorporato con la richiesta che lo risolve, interroga il DB per informazioni su risorse e politiche e genera una risposta XACML.
O XACML è utile solo negli scenari di controllo degli accessi distribuiti? È generalmente più utile implementare un sistema di controllo accessi personalizzato se non prevedo di esternalizzare il punto decisionale?