Attualmente sto cercando di implementare una soluzione single sign on su più applicazioni Web basate su JVM (Grails, Servlet) attualmente distribuite nello stesso contenitore servlet (attualmente Tomcat , ma non voglio limitare la mia soluzione solo a Tomcat). Tutte le applicazioni Web condividono un database comune.Come implementare il Single Sign-On su più applicazioni basate su JVM utilizzando Spring Security
Ho esaminato varie opzioni dall'utilizzo di CAS o altre librerie di terze parti per creare un nuovo servizio Web per gestire Single Sign On, ma nessuno sembra davvero soddisfare il business. La mia attuale implementazione prevede la creazione di una nuova libreria jar con un'implementazione comune di AuthenticationProviders e Pre-Authentication Filters basata su Spring Security.
In questo approccio sono presenti più AuthenticationProvider (attualmente Active Directory e Database) per l'autenticazione dell'applicazione. In caso di autenticazione riuscita, una riga verrà inserita in una tabella di sessione che contiene l'utente, una scadenza e un token. Il token verrebbe inoltre memorizzato come cookie sul computer dell'utente e utilizzato per convalidare la presenza di una sessione corrente nei filtri di pre-autenticazione.
Non averlo mai fatto prima voglio essere sicuro di non creare un enorme problema di sicurezza, e mi piacerebbe anche sapere cosa avrei bisogno di creare il token? A questo punto un semplice GUID sembra essere sufficiente?
Attualmente stiamo lavorando su Spring Security 3.0.x e non abbiamo ancora eseguito l'aggiornamento a 3.1.
Grazie in anticipo.
Direi di sì al guid di essere un id sufficiente per la sessione. Per quanto riguarda i problemi di sicurezza, quali sono le tue preoccupazioni? –
I miei dubbi sarebbero eventuali attacchi comuni, ad esempio lo spoofing della sessione, che potrei non essere in grado di gestire. Nel caso di spoofing della sessione si potrebbe fare copiando il cookie dal computer dell'utente a un altro, ma credo che impostando il tempo di timeout a un livello ragionevole questo attacco sia mitigato. –
Una buona fonte per le falle di sicurezza delle app Web sarebbe https://www.owasp.org/index.php/Main_Page –