Abbiamo un'app business di medie dimensioni e usiamo i ruoli e le autorizzazioni Spring Security (RBAC) pesantemente con un grande kludge per attivare e disattivare i ruoli per determinati casi più le regole nascoste in SpEL all'interno dei tag @PreAuthorize.Spring Security e ABAC (controllo dell'accesso basato sugli attributi)
Penso che cosa abbiamo effettivamente implementato (senza sapere che è ABAC). XACML sembra molto complicato e gonfio quindi non sono appassionato di qui la risposta:
How to change Spring Security roles by context?
Qualcuno ha fatto un'implementazione ABAC peso leggero senza XACML? Spero che questo ci consenta di separare le preoccupazioni dal momento che gli oggetti del dominio fanno semplicemente @PreAuthorize (WRITE) ecc. E la nostra politica di autorizzazione sarebbe disaccoppiata da esso.
Da quello che ho letto il principio di base di ABAC è molto semplice. Hai un'azione (molto simile a un permesso) e un meccanismo da risolvere se l'attuale Principal ha quell'autorizzazione su un determinato Soggetto.
Sono a conoscenza di AccessDecisionVoter che è approssimativamente il giusto tipo di interfaccia, ma non penso che fosse destinato al voto sulle autorizzazioni. Tuttavia, l'implementazione della nostra politica di autorizzazione con istanze di qualcosa del genere sembra molto interessante.
Ci scusiamo per la domanda sconclusionata! Fondamentalmente sono interessante in ABAC ma vorrei evitare la produzione casalinga ma preoccupato di cosa XACML sia un jumbo jet quando abbiamo bisogno di un Cessna.
Cosa ti fa pensare che XACML sia una ruota del trattore? È semplice implementare –
Esiste un'integrazione diretta tra Spring Security e XACML tramite il plug-in Axiomatics Spring –
Ciao David, Guardare il sorgente XACML è molto prolisso e complesso. Ho giocato con le regole in Java, è semplice e abbiamo già questo set di abilità, è tempo di compilazione controllato ... Anche Axiomatics sembra essere l'unico lavoro realmente attivo su XACML. Posso immaginare che XACML/Axiomatics sarebbe un bene per una grande impresa, ma non siamo noi. Mi dispiace "la ruota del trattore" è stata giudicata male. Jumbo jet quando abbiamo bisogno di un Cessna? Modificherò la mia domanda. – salk31