2013-12-11 40 views
5

Ho una semplice applicazione web Java dove posso gestire la registrazione e l'autenticazione degli utenti. Voglio agire questa applicazione come provider di identità SAML. Quindi creerò un'altra semplice app Web, che richiede che l'utente venga autenticato prima di poterlo utilizzare. Quindi in pratica voglio che la mia prima app sia IdP e la mia seconda app sia service provider. Il flusso di lavoro dovrebbe essere come questo: l'utente va a app2. App2 reindirizza l'utente a app1 in cui l'utente viene autenticato. Se l'autenticazione ha esito positivo, l'app1 reindirizza l'utente a app2 dove ha accesso completo. Sono relativamente nuovo a SAML. C'è qualche tutorial che mi aiuti a farlo senza dolore?come configurare l'app java per agire come provider di identità

risposta

4

Dai un'occhiata a Shibboleth, che è un'implementazione pronta per l'uso di un provider di identità SAML. Il fatto, che si dispone già di un'applicazione, la quale si desidera agire come prestatore di identità, ti offre due opzioni:

  1. Configurare Shibboleth usare voi modello di dati utente come una fonte di autenticazione (non so se questo è possibile)
  2. Utilizzare la libreria Java OpenSAML-Java utilizzata per implementare Shibboleth. Fornisce solo Gestione (creazione, convalida, scambio) di asserzioni SAML attorno al profilo SSO Web di SAML 2.0. È necessario creare il processo di reindirizzamento delle richieste Web da solo in App2 e App1.

SAML non è molto indolore, inoltre la sua uno standard globale che ha agito come un esempio per altri Principi semplici come OpenID o OAuth (hanno alcuni principi in comune, ma sono molto più semplici di sicuro). La sua più o meno la stessa storia di quanto non fosse con CORBA contro Java RMI

Ecco un buon punto di partenza per acquisire alcune conoscenze di base ciò che viene fatto quando si utilizza il SAML Web Browser SSO Profile:

1

Ci sono due parti alla tua domanda.

desiderato:

  • del server Java SAML (STS)
  • Java SAML client

Scrivi STS è un problema non banale. Potrebbe essere meglio usare un'implementazione esistente. OpenAM è un'altra possibilità. Supporta un numero di opzioni per i repository di identità.

In termini di client, fare riferimento a SAML : SAML connectivity/toolkit.

Problemi correlati