Domanda

Ho un paio di domande di implementazione SAML per chiarire la mia confusione ...

Ho bisogno di attuare SSO in un'applicazione java web.

  1. Per fare ciò, ho bisogno di Shibboleth SP installato sul mio ospite in questo modo , o posso fornire la funzionalità SP tramite OpenSAML?

  2. Io parto dal presupposto che la parola d'ordine sta facendo lo stesso come OpenSAML, ma solo a livello server web, mentre OpenSAML lo farà sul lato software. È questo presupposto corretto?

EDIT: in modo Shibboleth (secondo Scott Cantor) è costruito con OpenSAML ... non la mia ipotesi ancora tenere però?

  1. quello che sarà necessario per usare OpenSAML? Proprio l'url IdP e una registrazione con IDP?

  2. Devo fornire una directory SP, per esempio ActiveDirectory / LDAP?

EDIT: Grazie per le risposte, ma qualcuno può rispondere direttamente alle domande sopra e elaborare su di loro ...

È stato utile?

Soluzione

Quali saranno necessarie per utilizzare OpenSAML? Proprio l'url IdP e una registrazione con IDP?

È necessario Java e un contenitore web, e includere biblioteca opensaml in te la guerra.

È necessario cache di IdP metadati a livello locale o cercarlo ogni volta che si desidera inviare AuthnRequest o SAMLResponse processo. Inoltre è necessario registrare i metadati SP sul lato IDP.

Se si sta utilizzando Shibboleth come IdP, i metadati SP dovrebbe essere messa a punto nel file conf / affidandosi-party.xml.

Devo fornire una directory SP, per esempio ActiveDirectory / LDAP?

Al fine di login in IdP, è necessario configurare LDAP o server di database sul lato IdP e config nella conf / attributi resolver.xml e conf / login.config.

Altri suggerimenti

Aggiornamenti per affrontare le modifiche:

Ecco alcuni SAML 2 opzioni è possibile utilizzare.

Shibboleth SP è un prodotto che implementa SAML 2.0 per voi, ma è solo un OpenSAML biblioteca con il quale è possibile implementare una soluzione SAML 2.0. La libreria stessa è di basso livello, e non è neppure vicino ad essere una soluzione SSO. OpenSAML non è una soluzione SAML 2.0 di per sé.

Per usare OpenSAML o qualsiasi soluzione SAML 2.0, si avrà bisogno di Metadata Exchange come indicato di seguito. Con OpenSAML dovrete mano generare un file XML per il proprio metadati, anche. Sarà un sacco di lavoro, come indicato di seguito. prodotti SAML 2.0 genereranno quel file XML metadati per voi e anche generare le chiavi RSA richieste utilizzate per la cifratura e la sottoscrizione del SAML 2.0 asserzioni. Con OpenSAML, avrai il supporto API per le parti di caricamento dei file XML e le API per la generazione e parsing vostre asserzioni, ma sarete scrivendo il codice Java che in realtà costruisce l'interazione SSO.

La SP non necessariamente bisogno ActiveDirectory / LDAP, ma sarà necessario un certo tipo di directory nella propria applicazione web che tiene traccia degli utenti. Se l'applicazione web ha già una nozione di utenti con alcune informazioni di identificazione che è possibile utilizzare per correlarli con la nozione del IdP di utenti, si può solo mappare quelli nella propria applicazione web basata su valori attributo nel 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".)

-

L'integrazione Shibboleth2 SSO con un'applicazione Web Java non è troppo difficile. Utilizzando OpenSAML per l'attuazione del SSO avrebbe funzionato, ma sarebbe molto più sforzo che l'integrazione di un server Apache con Shibboleth.

Utilizzare Shibboleth è necessario disporre di Apache2 con il modulo Shibboleth abilitato e che avete installato il demone Shibboleth SP. In genere, quelli sarebbero insieme sulla stessa macchina. Se stai usando Tomcat per ospitare l'applicazione Web Java, allora vi consiglio di utilizzare mod_proxy_ajp per la comunicazione tra il server Apache2 HTTP e Tomcat. In questo modo è possibile ritirare le variabili Shibolleth-forniti come attributi servlet richiesta. (È necessario impostare il prefisso variabile "AJP_" in shibboleth2.xml.)

Il pacchetto di Shibboleth SP gestisce già tutti gli scenari standard SAML SSO si può aspettare di incontro, ma cercando di attuare anche uno di quelli con OpenSAML direttamente nella vostra applicazione Java è pieno di pericoli sia da farla funzionaree anche da renderlo sicuro. Potrai anche aumentare la dimensione della vostra applicazione web se si utilizza OpenSAML. vale la pena di notare che lo Shibboleth SP non è scritto in Java, in modo da non avere esempi di utilizzo OpenSAML per questo, ma si potrebbe essere in grado di guadagnare una certa comprensione, cercando in codice Shibboleth IdP, che è una web app Java.

In entrambi i casi, avrete bisogno di scambiare i metadati SP (facilmente creati con il pacchetto Shibboleth SP) con il provider di identità e anche ottenere i metadati del provider di identità sul tuo SP (anche facile con il pacchetto Shibboleth SP come è sufficiente impostare un MetadataProvider).

La documentazione Shibboleth online vi aiuterà molto, una volta ci si abitua ad usarlo.

Credo che avrai probabilità maggiore Gran parte del successo se è possibile utilizzare il pacchetto Shibboleth SP piuttosto che implementare una soluzione SAML 2 SSO con le librerie OpenSAML. Non posso parlare per le altre soluzioni all-Java SAML 2 SSO, ma tutti sembrano grandi ed eccessivamente enterprisey rispetto ad un semplice Shibboleth 2 SP.

Si deve inviare tali domande ai competenti mailing list gestita dal Progetto Shibboleth.

OpenSAML è un toolkit molto basso livello per l'implementazione di soluzioni SAML, Shibboleth è un pacchetto SSO per applicazioni web a supporto SAML che sembra essere costruito con OpenSAML. Costruire soluzioni di sicurezza è complesso e richiede competenze. Se non si dispone di tale esperienza, si fare un cattivo lavoro di esso, e OpenSAML non è documentato in modo tale che uno sviluppatore tipico potrebbe costruire una soluzione da zero.

Si consideri utilizzando un'implementazione completa, che si tratti di Shibboleth o qualcos'altro. Se non posso vivere con Apache e codice nativo e necessità Java, allora si dovrebbe provare una delle opzioni esistenti Java SP che esistono. Anche se fossero insufficienti, si dovrebbe costruire su di loro e non li duplicare.

Sì, è necessario installare SP nel vostro server o il computer. E sarebbe dipenderà dal vostro server web, come ad esempio IIS o Apache.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top