Ecco alcuni SAML 2 opzioni che è possibile utilizzare.
Per utilizzare OpenSAML o qualsiasi soluzione SAML 2.0, è necessario scambiare i metadati come indicato di seguito. Con OpenSAML dovrai generare a mano un file XML anche per il tuo MetaData. Sarà molto lavoro come indicato di seguito. I prodotti SAML 2.0 generano quel file MetaData XML e generano anche le chiavi RSA richieste utilizzate per la crittografia e la firma delle Asserzioni SAML 2.0. Con OpenSAML, avrai il supporto API per caricare parti dei file XML e API per generare e analizzare le tue Asserzioni, ma dovrai scrivere il codice Java che effettivamente costruisce l'interazione SSO.
L'SP fa non richiede necessariamente ActiveDirectory/LDAP, ma è necessario un tipo di directory nell'applicazione Web che tenga traccia degli utenti. Se la tua applicazione web ha già una nozione di utenti con alcune informazioni identificative che è possibile utilizzare per correlarle con la nozione di utenti di IdP, puoi semplicemente mappare quelli nella tua applicazione web in base ai valori dell'attributo nelle asserzioni SAML 2.0. (Se l'applicazione web non importa chi sono gli utenti, allora si può semplicemente permettere l'accesso all'applicazione in base all'utente di essere "valido".)
-
Integrazione Shibboleth2 SSO con un Web Java l'applicazione non è troppo difficile. Utilizzare OpenSAML per implementare l'SSO funzionerebbe, ma sarebbe molto più complicato dell'integrazione di un server Apache con Shibboleth.
L'utilizzo di Shibboleth richiede di avere Apache2 con il modulo Shibboleth abilitato e in cui è installato il daemon Shibboleth SP. In genere, quelli starebbero insieme nella stessa scatola. Se stai utilizzando Tomcat per ospitare l'applicazione Web Java, ti consiglio di utilizzare mod_proxy_ajp per comunicare tra il server HTTP Apache2 e Tomcat. In questo modo puoi raccogliere le variabili fornite da Shibolleth come attributi di richiesta servlet. (Devi impostare il prefisso variabile su "AJP_" in shibboleth2.xml.)
Il pacchetto SP di Shibboleth gestisce già tutti gli scenari SSO SAML standard che puoi aspettarti di incontrare, ma cercando di implementare anche uno di quelli con OpenSAML direttamente nella tua applicazione Java è pieno di pericoli sia dal farlo funzionare e anche dal renderlo sicuro. Aumenterai anche le dimensioni della tua app Web se utilizzi OpenSAML. Vale la pena notare che lo SP di Shibboleth non è scritto in Java, quindi non avrai esempi di utilizzo di OpenSAML per questo, ma potresti essere in grado di ottenere alcune informazioni guardando il codice IdP di Shibboleth, che è un'app web Java.
In entrambi i casi, dovrai scambiare i tuoi metadati SP (facilmente creati con il pacchetto Shibboleth SP) con il tuo provider di identità e anche ottenere i metadati del provider di identità sul tuo SP (anche facile con il pacchetto SP Shibboleth come semplicemente istituito un MetadataProvider).
La documentazione di Shibboleth online ti sarà di grande aiuto una volta che ti sarai abituato a utilizzarlo.
Penso che avrai maggiori possibilità di successo se puoi utilizzare il pacchetto SP Shibboleth invece di implementare una soluzione SSO SAML 2 con le librerie OpenSAML. Non riesco a parlare con le altre soluzioni SSO SAML 2 all-Java, ma sembrano tutte grandi e troppo complesse rispetto a un semplice Shibboleth 2 SP.
Puoi fornire esempi di "opzioni Java SP esistenti"? – mahatmanich