Frage

Ich habe ein paar SAML -Implementierungsfragen bekommen, um meine Verwirrung zu beseitigen ...

Ich muss SSO in einer Java -Web -App implementieren.

  1. Dazu brauche ich Shibboleth SP auf meinem Host installiert Wie so, oder kann ich die SP -Funktionalität über OpenSsaml bereitstellen?

  2. Ich gehe davon aus, dass Shibboleth das Gleiche wie OpenSsaml tut, aber nur auf Webserver -Ebene, während OpenSsaml dies auf der Softwareseite tut. Ist diese Annahme richtig?

BEARBEITEN: Also ist Shibboleth (laut Scott Cantor) mit OpenSsaml gebaut ... aber hält meine Annahme immer noch?

  1. Was wird für die Verwendung von OpenSsaml benötigt? Nur die IDP -URL und eine Registrierung beim IDP?

  2. Muss ich ein SP -Verzeichnis, z. B. Active -Anlehnung/LDAP, bereitstellen?

BEARBEITEN: Vielen Dank für die Antworten, aber kann jemand die oben genannten Fragen direkt beantworten und sie näher erläutern ...

War es hilfreich?

Lösung

Was wird für die Verwendung von OpenSsaml benötigt? Nur die IDP -URL und eine Registrierung beim IDP?

Sie benötigen Java und einen Webcontainer und enthalten die OpenSsaml -Bibliothek in Ihren Krieg.

Sie müssen die IDP -Metadaten lokal zwischenspeichern oder jedes Mal nachschlagen, wenn Sie AuthnRequest senden oder samlresponse verarbeiten möchten. Außerdem müssen Sie Ihre SP -Metadaten auf der IDP -Seite registrieren.

Wenn Sie Shibboleth als IDP verwenden, sollte die SP-Metadaten in der Datei Conf/Relying-Party.xml eingerichtet werden.

Muss ich ein SP -Verzeichnis, z. B. Active -Anlehnung/LDAP, bereitstellen?

Um sich in IDP anzumelden, müssen Sie LDAP- oder Datenbankserver auf der IDP-Seite einrichten und in Conf/Attribut-resolver.xml und conf/login.config konfigurieren.

Andere Tipps

Aktualisierungen, um Ihre Änderungen zu beheben:

Hier sind einige SAML -2 -Optionen, die Sie verwenden können.

Shibboleth SP ist a Produkt Das implementiert SAML 2.0 für Sie, aber OpenSsaml ist nur a Bibliothek mit denen Sie eine SAML 2.0 -Lösung implementieren können. Die Bibliothek selbst ist niedrig und ist nicht einmal annähernd eine SSO-Lösung. OpenSsaml ist keine SAML 2.0 -Lösung für sich.

OpenSsaml verwenden oder irgendein SAML 2.0 -Lösung, Sie müssen Metadaten wie unten erwähnt austauschen. Mit OpenSsaml müssen Sie auch eine XML-Datei für Ihre eigenen Metadaten von Hand generieren. Es wird eine Menge Arbeit sein, wie unten erwähnt. SAML 2.0 -Produkte generieren diese XML -Metadatendatei für Sie und generieren auch die erforderlichen RSA -Tasten, die für die Verschlüsselung und Signierung der SAML 2.0 -Behauptungen verwendet werden. Mit OpenSsaml unterstützen Sie API -Unterstützung für das Laden von Teilen der XML -Dateien und -APIs zum Generieren und Parsen Ihrer Behauptungen. Sie schreiben jedoch den Java -Code, der tatsächlich die SSO -Interaktion erstellt.

Der SP tut nicht benötigen notwendigerweise veranstaltete Anlehnung/LDAP, aber Sie benötigen eine Art Verzeichnis in Ihrer Webanwendung, die die Benutzer im Auge behält. Wenn Ihre Webanwendung bereits einen Vorstellung von Benutzern mit einigen identifizierenden Informationen enthält, mit denen Sie sie mit dem Begriff der Benutzer des IDP -Benutzers korrelieren können, können Sie diese in Ihrer Webanwendung nur basierend auf Attributwerten in Ihren SAML 2.0 -Behauptungen zuordnen. (Wenn es Ihrer Webanwendung egal ist, wer die Benutzer sind, können Sie einfach den Zugriff auf die Anwendung ermöglichen, basierend auf dem "gültig".)

--

Die Integration von Shibboleth2 SSO in eine Java -Webanwendung ist nicht allzu schwierig. Die Verwendung von OpenSsaml zur Implementierung des SSO würde funktionieren, aber es wäre viel mehr Aufwand als die Integration eines Apache -Servers in Shibboleth.

Um Shibboleth zu verwenden, müssen Sie Apache2 mit dem Shibboleth -Modul aktiviert haben und Dass Sie den Shibboleth SP -Dämon installiert haben. Normalerweise wären diese zusammen in derselben Box. Wenn Sie Tomcat verwenden, um die Java -Webanwendung zu hosten, empfehle ich Ihnen, mod_proxy_ajp zu verwenden, um zwischen dem Apache2 HTTP -Server und Tomcat zu kommunizieren. Auf diese Weise können Sie die von Shibolleth bereitgestellten Variablen als Servlet-Anforderungsattribute aufnehmen. (Sie müssen das variable Präfix auf "AJP_" in Shibboleth2.xml festlegen.)

Das Shibboleth SP -Paket behandelt bereits alle Standard -SSO -SSO -Szenarien, die Sie erwarten können, aber der Versuch, sogar eine von OpenSsaml direkt in Ihrer Java -Anwendung zu implementieren . Sie erhöhen auch die Größe Ihrer Web -App, wenn Sie OpenSsaml verwenden. Es ist erwähnenswert, dass der Shibboleth SP nicht in Java geschrieben ist. Sie werden daher keine Beispiele für die Verwendung von OpenSsaml dafür haben, aber Sie können möglicherweise einen Einblick erhalten, indem Sie sich den Shibboleth -IDP -Code ansehen, der eine Java -Web -App ist.

In beiden Fällen müssen Sie Ihre SP -Metadaten (einfach mit dem Shibboleth SP -Paket erstellt) mit Ihrem Identitätsanbieter austauschen und auch die Metadaten des Identitätsanbieters auf Ihrem SP (auch mit dem Shibboleth SP -Paket einfach einrichten, während Sie einfach ein Einrichten eines A -SP -Pakets Metadataprovider).

Die Shibboleth -Dokumentation online hilft Ihnen sehr, wenn Sie sich daran gewöhnt haben.

Ich denke, Sie werden viel größere Erfolgschancen haben, wenn Sie das Shibboleth SP -Paket verwenden können, anstatt eine SO -SSO -Lösung von SAML 2 mit den OpenSsaml -Bibliotheken zu implementieren. Ich kann nicht mit den anderen SSO-Lösungen von All-Java SAML 2 sprechen, aber sie scheinen alle große und übermäßig unternehmerische Vergleiche im Vergleich zu einem einfachen Shibboleth 2 sp.

Sie sollten solche Fragen an die relevanten Mailinglisten veröffentlichen, die vom Shibboleth -Projekt ausgeführt werden.

OpenSsaml ist ein sehr niedriges Toolkit für die Implementierung von SAML -Lösungen. Shibboleth ist ein SSO -Paket für Webanwendungen, die SAML unterstützen, das zufällig mit OpenSsaml erstellt wird. Der Aufbau von Sicherheitslösungen ist komplex und erfordert Fachwissen. Wenn Sie dieses Know -how nicht haben, werden Sie einen schlechten Job machen und OpenSsaml ist nicht so dokumentiert, dass ein typischer Entwickler eine Lösung von Grund auf neu erstellen kann.

Erwägen Sie, eine vollständige Implementierung zu verwenden, egal ob es sich um Shibboleth oder etwas anderes handelt. Wenn Sie nicht mit Apache und nativem Code leben und Java benötigen, sollten Sie eine der vorhandenen Java -SP -Optionen ausprobieren, die existieren. Auch wenn sie unzureichend waren, sollten Sie auf ihnen aufbauen und sie nicht duplizieren.

Ja, Sie sollten SP auf Ihrem Server oder Ihrem Computer installieren. Und es würde von Ihrem Webserver wie IIS oder Apache abhängen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top