Unterschiede zwischen SP-initiiertem SSO und IDP-initiiertem SSO

106

Kann mir jemand erklären, was die Hauptunterschiede zwischen SP-initiiertem SSO und IDP-initiiertem SSO sind, einschließlich der besseren Lösung für die Implementierung von Single Sign On in Verbindung mit ADFS + OpenAM Federation?

pbhle
quelle
2
Zur Verdeutlichung für alle, die noch
keine

Antworten:

72

In IDP Init SSO (nicht angefordertes Web-SSO) wird der Verbundprozess vom IDP initiiert, der eine nicht angeforderte SAML-Antwort an den SP sendet. In SP-Init generiert der SP eine AuthnRequest, die als erster Schritt im Verbundprozess an den IDP gesendet wird, und der IDP antwortet dann mit einer SAML-Antwort. IMHO ADFSv2-Unterstützung für SAML2.0 Web SSO SP-Init ist stärker als die IDP-Init-Unterstützung für die Integration in Fed-Produkte von Drittanbietern (hauptsächlich für die Unterstützung von RelayState). Wenn Sie also die Wahl haben, sollten Sie SP- verwenden. Init, da dies mit ADFSv2 wahrscheinlich das Leben erleichtern wird.

Hier sind einige einfache SSO-Beschreibungen aus dem PingFederate 8.0-Handbuch "Erste Schritte", die Sie ebenfalls durchblättern können. Https://documentation.pingidentity.com/pingfederate/pf80/index.shtml#gettingStartedGuide/task/idpInitiatedSsoPOST.html

Ian
quelle
81

IDP initiierte SSO

Aus der PingFederate-Dokumentation: - https://docs.pingidentity.com/bundle/pf_sm_supportedStandards_pf82/page/task/idpInitiatedSsoPOST.html

In diesem Szenario ist ein Benutzer beim IdP angemeldet und versucht, auf eine Ressource auf einem Remote-SP-Server zuzugreifen. Die SAML-Zusicherung wird über HTTP POST zum SP transportiert.

Verarbeitungsschritte:

  1. Ein Benutzer hat sich beim IdP angemeldet.
  2. Der Benutzer fordert den Zugriff auf eine geschützte SP-Ressource an. Der Benutzer ist nicht an der SP-Site angemeldet.
  3. Optional ruft der IdP Attribute aus dem Benutzerdatenspeicher ab.
  4. Der SSO-Dienst des IdP gibt ein HTML-Formular mit einer SAML-Antwort an den Browser zurück, die die Authentifizierungszusicherung und alle zusätzlichen Attribute enthält. Der Browser sendet das HTML-Formular automatisch an den SP zurück.

SP initiierte SSO

Aus der PingFederate-Dokumentation: - http://documentation.pingidentity.com/display/PF610/SP-Initiated+SSO--POST-POST

In diesem Szenario versucht ein Benutzer, direkt auf einer SP-Website auf eine geschützte Ressource zuzugreifen, ohne angemeldet zu sein. Der Benutzer verfügt nicht über ein Konto auf der SP-Site, sondern über ein Verbundkonto, das von einem IdP eines Drittanbieters verwaltet wird. Der SP sendet eine Authentifizierungsanforderung an den IdP. Sowohl die Anforderung als auch die zurückgegebene SAML-Zusicherung werden über den Browser des Benutzers über HTTP POST gesendet.

Verarbeitungsschritte:

  1. Der Benutzer fordert den Zugriff auf eine geschützte SP-Ressource an. Die Anforderung wird an den Verbundserver umgeleitet, um die Authentifizierung durchzuführen.
  2. Der Verbundserver sendet ein HTML-Formular mit einer SAML-Anforderung zur Authentifizierung vom IdP an den Browser zurück. Das HTML-Formular wird automatisch an den SSO-Dienst des IdP gesendet.
  3. Wenn der Benutzer noch nicht an der IdP-Site angemeldet ist oder eine erneute Authentifizierung erforderlich ist, fragt der IdP nach Anmeldeinformationen (z. B. ID und Kennwort) und der Benutzer meldet sich an.
  4. Zusätzliche Informationen über den Benutzer können zur Aufnahme in die SAML-Antwort aus dem Benutzerdatenspeicher abgerufen werden. (Diese Attribute sind im Rahmen der Verbundvereinbarung zwischen dem IdP und dem SP vorgegeben.)

  5. Der SSO-Dienst des IdP gibt ein HTML-Formular mit einer SAML-Antwort an den Browser zurück, die die Authentifizierungszusicherung und alle zusätzlichen Attribute enthält. Der Browser sendet das HTML-Formular automatisch an den SP zurück. HINWEIS: Für SAML-Spezifikationen müssen POST-Antworten digital signiert sein.

  6. (Nicht gezeigt) Wenn die Signatur und die Zusicherung gültig sind, richtet der SP eine Sitzung für den Benutzer ein und leitet den Browser zur Zielressource um.

user3061250
quelle
1
Re SP Initiated SSO - Punkt 3 oben lautet: "Wenn der Benutzer noch nicht an der IdP-Site angemeldet ist oder eine erneute Authentifizierung erforderlich ist, fragt der IdP nach Anmeldeinformationen (z. B. ID und Kennwort) und der Benutzer meldet sich an." Wie ermittelt das System, ob der Benutzer an der IdP-Site angemeldet ist? Erzeugt es zum Beispiel ein Cookie?
Edwardo
1
@ Edward Ihre Annahme ist richtig. Wenn eine Sitzung mit einem IdP eingerichtet wird, generiert der IdP normalerweise ein Cookie, um diese Sitzung aufrechtzuerhalten.
jekennedy
Ich habe noch eine Frage stackoverflow.com/questions/43861315/… . Kannst du es dir ansehen?
Kawadhiya21
48

SP initiierte SSO

Bill der Benutzer: "Hey Jimmy, zeig mir diesen Bericht"

Jimmy the SP: "Hey, ich bin mir noch nicht sicher, wer du bist. Wir haben hier einen Prozess, also lass dich zuerst von Bob the IdP verifizieren. Ich vertraue ihm."

Bob der IdP: "Ich sehe, Jimmy hat Sie hierher geschickt. Bitte geben Sie mir Ihre Anmeldeinformationen."

Bill the user: "Hallo, ich bin Bill. Hier sind meine Anmeldeinformationen."

Bob der IdP: "Hallo Bill. Sieht so aus, als würdest du auschecken."

Bob the IdP: "Hey Jimmy. Dieser Typ, den Bill auscheckt, und hier sind einige zusätzliche Informationen über ihn. Sie tun von hier aus, was Sie wollen."

Jimmy the SP: "Ok cool. Sieht so aus, als wäre Bill auch auf unserer Liste der bekannten Gäste. Ich werde Bill reinlassen."

Von IdP initiiertes SSO

Bill der Benutzer: "Hey Bob. Ich möchte zu Jimmy gehen. Die Sicherheit dort ist streng."

Bob der IdP: "Hey Jimmy. Ich vertraue Bill. Er checkt aus und hier sind einige zusätzliche Informationen über ihn. Sie tun von hier aus, was Sie wollen."

Jimmy the SP: "Ok cool. Sieht so aus, als wäre Bill auch auf unserer Liste der bekannten Gäste. Ich werde Bill reinlassen."


Ich gehe hier näher darauf ein, halte die Dinge aber trotzdem einfach: https://jorgecolonconsulting.com/saml-sso-in-simple-terms/ .

2upmedia
quelle
33
Ich denke nicht, dass das zweite Gespräch richtig ist ... stattdessen sollte es sein: IdP: "Hey, hier sind einige Informationen über Sal, bitte lass sie rein" / SP: "Ok, ich vertraue dir, ich werde sie lassen in "
Jeff Olson
4
Das erste Gespräch ist auch nicht richtig: Im ersten Schritt weiß SP noch nichts über den Benutzer, nur bei IdP wird sich der Benutzer anmelden und sich als "Sal" identifizieren
Allie
4
Das erste Gespräch sollte sein: SP: "Hey, wo ist dein Ausweis?" IdP: "Warte, ich werde es überprüfen. Lass mich bitte deinen Ausweis sehen. Ok, Bruder, lass sie rein, sie heißt Sal und sie ist 21 (optional)." SP: "Cooler Typ, du bist großartig! Hey du, komm rein ! "
Erdal G.
3
Ich glaube, dass diese Antwort die Stimmen, die sie erhalten hat, nicht verdient. Es beantwortet die Frage auf kreative Weise, vielleicht nicht so genau, wie einige darauf hingewiesen haben, aber dennoch kreativ.
Aaron C
2
Es wäre interessant, die richtige Antwort in diesem Format zu sehen. Meine Augen sind glasig, wenn ich die hochgestimmten Antworten lese. Dieses Format hilft dabei, das allgemeine Konzept sehr schnell zu erfassen. Ich weiß nicht genug, um selbstbewusst eine Antwort auf der Grundlage der Kommentare zu erstellen.
Sean Connolly