Sonntag, April 5, 2020

SAML Für Java-Anwendung unter Tomcat

Ich habe eine Java-Anwendung läuft auf dem tomcat-server. Ich bin die Speicherung der Benutzer-Informationen in der mysql-Tabelle, und für die Authentifizierung mit Java-Rest-Dienst.
Wenn ich jetzt land auf customer.myapp.com ich möchte überprüfen, ob es eine aktive Sitzung im browser für customer.com, wenn also loggen Sie sich ein, um meine app mithilfe dieser Sitzung intern . Wenn keine session dann leiten Sie den Benutzer auf customer.com login portal und nach dem login landen Sie in customer.myapp.com Homepage.

Wie kann ich diese umsetzen mit SAML . Ich habe gegangen durch die Theorie-Teile und habe eine Idee über SP(in diesem Fall customer.myapp.com) und IdP(ich nehme an, es wird die Kunden-login-portal customer.com) . Ich auch runtergeladen die OpenSAML jar. Ich habe keine Ahnung, wie die Konfiguration durchgeführt werden. In meinem Fall habe ich keinen Zugriff auf die IDP.

public class EMSAMLObjectBuilder {
//Get the builder factory
XMLObjectBuilderFactory builderFactory = Configuration.getBuilderFactory();

//Get the assertion builder based on the assertion element name
@SuppressWarnings("unchecked")
SAMLObjectBuilder<Assertion> builder = (SAMLObjectBuilder<Assertion>) builderFactory.getBuilder(Assertion.DEFAULT_ELEMENT_NAME);

//Create the assertion
Assertion assertion = builder.buildObject();

}

Dies ist das einzige Stück code, den ich finden konnte. Keine Hilfe ?

InformationsquelleAutor Jerry | 2016-10-14

2 Kommentare

  1. 1

    Klang wie ein standard-Anwendungsfall für die SAML-Web-Browser-Profil. Ich würde vorschlagen, Lesen, in es. Es gibt eine Menge von Informationen über das Internet.

    Im Grunde der Prozess, wie das geht.

    1. Dem SP und dem IDP exchange metadataXML. Dies kann getan werden mit allen Mitteln zum Beispiel E-Mail oder durch Veröffentlichung der xml auf einem webserver. Geschieht dies nur zwischen SP und IDP.
    2. Wenn die SP will, um den Benutzer zu authentifizieren, sendet er es an den IDP zum Beispiel umleiten zusammen mit einer SAML-Authentifizierung Verlangen.
    3. Der IDP authentifiziert den Benutzer.
    4. Der IDP senden der Benutzer wieder auf die SP zusammen mit einem SAML-Authentifizierung Antwort

    SAML ist ein sehr flexibles Protokoll, so dass die Strömung oben variieren kann. Wie ist die Kommunikation doen ist in der Regel näher spezifiziert in den Metadaten.

    Gibt es mehrere Möglichkeiten, wie dies umgesetzt werden könnte, OpenSAML ist eine von Ihnen. Die OpenSAML offizielle website haben ein paar hilfreiche Beispiele.

    Schreibe ich eine blog auf OpenSAML mit vielen hilfreichen Beitrag zu dem Thema. Ich habe auch ein Buch geschrieben, Ein Leitfaden für OpenSAML, dass die Einzelheiten Schritt für Schritt die Implementierung der auf SAML-Web-Browser-Profile-service-provider.

    Zufälligerweise die Beispielanwendung, die in dem Buch läuft auf einem embedded tomcat.

    • Ich habe Ihren blog liest, ich denke ich habe gelesen, dass viele verschiedene Dinge und Total verwirrt jetzt. Können Sie mir bitte sagen, von wo ich beginnen sollte ? Derzeit habe ich eine java-basierte tomcat-Anwendung läuft auf meinem localhost was soll meine service-provider. Derzeit habe ich nicht ein Idp , aber ich denke, mit der gleichen Anwendung auf einer anderen Maschine tomcat und mit einer anderen db. In meinem service-provider-login-Seite, gebe ich eine Weiterleitung an den Idp einloggen mit ein paar Metadaten (wenn ich richtig bin). Wie man die Metadaten, und wie lassen Sie mein Idp verarbeiten der Anforderung
    • Ich lese die links, aber er sagt, wie es funktioniert, nicht sagen, wie ich das implementieren kann, die es auf meine bestehende Anwendung. Es ist eine dringende Anforderung kann jemand helfen?
    • Ich habe aktualisiert die Antwort. Als für die Umsetzung. Diese beiden Beiträge sagen etwas über die Umsetzung von Schritt 2 und 4. blog.samlsecurity.com/2011/01/redirect-with-authnrequest.html blog.samlsecurity.com/2011/02/…. Die zweite ist über das senden einer SAML response mit Artefakt. In diesem Prozess der IDP sendet einen Zeiger auf die SAML-Antwort. Die SP, dann löst es über eine SOAP-WS-Aufruf.
    • Danke für die Antwort :), aber die blog-links, die Sie zur Verfügung gestellt scheint kaputt zu sein
    • Oh? Ich habe versucht, Ihnen jetzt in Ordnung scheint. Auf welcher Seite sind Sie immer, wenn Ihnen zu Folgen?
    • Jetzt seine Arbeit, für mich auch 😐 . Nicht sicher, was das problem war vor
    • Klingt gut, bitte markieren Sie die Antwort als korrekt

  2. 0

    Mein Gefühl ist, dass Sie sollten nie direkt verwenden Bibliotheken, wie OpenSAML, die sind wirklich low-level und kompliziert zu meistern.
    Wenn Sie möchten, sichern Sie Ihre web-Anwendung mit einem SAML-login-Prozess, Sie sollten auf jeden Fall verwenden Sie ein Sicherheits-Bibliothek für das.
    Disclaimer: ich bin der Schöpfer von pac4j, so kann ich empfehlen, mit einer der pac4j Implementierungen: http://www.pac4j.org/implementations.html für SAML: http://www.pac4j.org/docs/clients/saml.html

Kostenlose Online-Tests