Single Sign On [SSO] über verschiedene Domänen hinweg mit Java
Sind wir der Umsetzung Single-Sign-On [SSO] über mehrere Anwendungen, die von Servern in verschiedenen Domänen und auf verschiedenen Servern.
Nun, wie im Bild gezeigt, Wir sind die Einführung einer Server Authentifizieren, die tatsächlich interagiert mit LDAP und Authentifizierung der Benutzer. Die Anwendungen, die verwendet werden/talk to Authenticate Server gehostet sind, auf verschiedenen Servern und domains.
für SSO, ich kann nicht mit session-Variablen, so gibt es verschiedene Server und verschiedene Applikationen, unterschiedliche domains, domain-level-cookie - /session-variable ist nicht hilfreich.
Ich bin auf der Suche eine bessere Lösung für SSO über. Jeder demonstriert die Umsetzung ist der bestehende? Wenn ja, bitte posten oder zeigen Sie mich in die richtige Richtung.
InformationsquelleAutor der Frage Reddy | 2013-08-08
Du musst angemeldet sein, um einen Kommentar abzugeben.
Dies können Sie erreichen, indem Sie alle Ihre log-ins geschehen auf dem auth-server. Die anderen Anwendungen, die kommunizieren können, um die auth-server über einen Rückkanal. Das Allgemeine Prinzip ist wie folgt:
Nun dies ist, wo das SSO-bit:
Gibt es einige bestehende Implementierungen dieser Methode, zum Beispiel CAS (Central Authentication Service). Beachten Sie, dass CAS ist out of the box unterstützt in Spring Security. Ich würde dir raten, die Verwendung einer vorhandenen Implementierung, wie schreiben Sie Ihre eigenen hart wird. Ich habe vereinfacht die Dinge in meine Antwort und es gibt eine Menge Potenzial für die Einführung von Sicherheitslücken, wenn Sie neu sind.
InformationsquelleAutor der Antwort Qwerky
Werde ich empfehlen, check-out OAuth. Es ist eine gute Authentication und Authorization-Protokoll, das mehrere große Unternehmen, darunter facebook, google, windows live und andere. Es kann eine anfängliche Lernkurve, aber es ist ein Produktion-Grad-Lösung.
Es hat auch Bibliotheken für Java, Ruby, PHP und andere Programmiersprachen.
Zum Beispiel den folgenden server-side Implementierungen sind verfügbar für Java.
Folgenden client-Seite Java-Bibliotheken sind ebenfalls erhältlich:
Bitte hier für weitere details:
InformationsquelleAutor der Antwort Gursev Kalra
Die größere Frage ist, wie der Implementierung von single-sign-on. Viele open-source-und proprietären (IBM Tivoli) Angebote Wert Ihr Salz bieten cross-domain-single-sign-on-Fähigkeit. Dies wäre der einfachste und beste Weg für die Implementierung von cross-domain-sso. Konfigurieren Sie die LDAP-server verwenden Sie in der sso-server, den Sie wählen.
Nehmen, zum Beispiel open sso, hier ist ein Artikel zum konfigurieren von cross-domain-single-sign-on
http://docs.oracle.com/cd/E19681-01/820-5816/aeabl/index.html
Konfigurieren von LDAP in open sso,
http://docs.oracle.com/cd/E19316-01/820-3886/ghtmw/index.html
Verweis auf die Ausgabe präsentiert sich in einem ordentlichen Diagramm hier
http://docs.oracle.com/cd/E19575-01/820-3746/gipjl/index.html
Je nachdem, welches Angebot Sie nutzen, können Sie konfigurieren von cross-domain-single-sign-on.
Mit dabei, und Ihr Diagramm wird wie folgt Aussehen, mit der auth-server das Dienstprogramm, um die Interaktion mit der sso-server Ihrer Wahl.
Dass ein auth-server kommuniziert mit sso ist eine Klang-Architektur-Prinzip. Ich würde vorschlagen, telefonieren, sich zu authentifizieren als Rast-und end-Punkte, die genannt werden könnten, die über http von verschiedenen Anwendungen.
InformationsquelleAutor der Antwort Ravi
Können Sie nicht verwenden, Rest-Dienst .
Könnte man verwenden, was ich nenne eine Refferer Url-Authentifizierung
Angenommen, Sie haben eine Authentifizierung Anwendung, die Sie auf http://www.AAAA.com
In den Anwendungen , wo Sie wollen, zu authentifizieren, zu
you could have a filter which looks for a authenticated cookie in its domain else redirect to www.AAAA.com for authentication
Auf
Successfull authentication
Sie konntepass the user profile information as encrypted GET /POST data back to the application
InformationsquelleAutor der Antwort Sudhakar