Quello che stai cercando si chiama autorizzazione esternalizzata . Ci sono diversi modi per farlo e come alcuni dei commentatori sottolineano, Apache Shiro, Spring Security, Microsoft Claims sono tutti modi per esternalizzare l'autorizzazione.
Se guardi la più ampia immagine di controllo degli accessi, vedrai che ci sono diversi modelli di controllo dell'accesso:
- access control lists (ACL),
- controllo degli accessi basato sui ruoli (RBAC) e
- controllo degli accessi basato sugli attributi (ABAC)
Tutti questi possono essere usati per esternalizzare l'autorizzazione anche se in genere gli ACL non lo sono.
Apache Shiro e Spring Security realizzano il controllo degli accessi basato sui ruoli, ovvero definisci utenti, ruoli e autorizzazioni. Si assegnano gli utenti a ruoli e ruoli alle autorizzazioni. Le informazioni sono memorizzate centralmente, ad es. in un LDAP e le applicazioni ne consumano. Ciò ti consentirà di ottenere un controllo degli accessi a grana grossa. Il modo in cui le app utilizzano i ruoli e le autorizzazioni e ciò che le app fanno con questi è tutto per lo sviluppatore dell'app. Quindi in un certo senso non è completamente esternalizzato.
ABAC va oltre. ABAC definisce:
- un'architettura
- un approccio basato su criteri
- uno schema di richiesta / risposta per richiedere l'autorizzazione
ABAC viene in genere implementato utilizzando uno standard chiamato XACML, l'eXtensible Access Control Markup Language.
Nell'architettura di ABAC troverai i seguenti componenti:
- il punto di applicazione della politica (PEP): questo è il pezzo all'interno della tua app o davanti alla tua app che utilizzerai per richiedere un'autorizzazione. Questo è il pezzo che esternalizza la tua autorizzazione. Nella tua app, ad esempio, utilizzerai il PEP per creare una richiesta del tipo Può Alice visualizzare il documento # 123? Il PEP lo invierà al motore di autorizzazione centrale
- il punto di decisione politica (PDP): questo è il motore di autorizzazione centrale. È configurato con criteri. Queste politiche sono costruite usando gli attributi. Per esempio i medici possono visualizzare la cartella clinica di un paziente se hanno un rapporto di cura con quel paziente . Gli attributi possono essere recuperati da database, servizi Web e LDAP. Il PDP riceve la richiesta dal PEP e la valuta. Alla fine raggiunge una decisione, ad es. Permetti o Nega che restituisce al PEP.
- il punto informazioni sulla politica (PIP): il PIP è la fonte di ulteriori attributi che potrebbero essere necessari al PDP, ad es. il ruolo o il dipartimento di un utente, lo stato di un documento ...
- il punto di amministrazione della politica (PAP)
Lo schema seguente riassume l'architettura.
Daiun'occhiataa: