web-dev-qa-db-de.com

Was genau ist der RelayState-Parameter, der in SSO (z. B. SAML) verwendet wird?

Ich versuche SSO mit SAML zu verstehen. Ich bin auf den RelayState-Parameter gestoßen und bin sehr verwirrt, warum es in SSO zuerst kommt, verschlüsselte URLs zu senden. Was genau bedeutet das?

Bitte lesen Sie die folgenden Informationen aus der Google Developer-Dokumentation :

Google generiert eine SAML-Authentifizierungsanforderung. Die SAML-Anforderung wird codiert und in die URL für den SSO-Dienst des Partners eingebettet. Der RelayState-Parameter, der die codierte URL der Google-Anwendung enthält, die der Benutzer zu erreichen versucht, ist ebenfalls in die SSO-URL eingebettet. Dieser RelayState-Parameter soll eine undurchsichtige Kennung sein, die ohne Änderung oder Überprüfung zurückgegeben wird

44
Oomph Fortuity

Die ursprüngliche Bedeutung von RelayState ist, dass das SP zusammen mit dem AuthnRequest einen Wert an den IDP senden und diesen dann zurückholen kann. Der SP kann den gewünschten Wert in RelayState eingeben, und der IDP sollte ihn in der Antwort nur zurückgeben.

Dieser RelayState -Parameter soll eine undurchsichtige Kennung sein, die ohne Änderung oder Überprüfung zurückgegeben wird

Es gibt auch eine andere, de facto Standardverwendung für RelayState, wenn die von Idp eingeleitete Anmeldung verwendet wird. In diesem Fall gibt es keine eingehende Anforderung vom SP, sodass es keinen Status geben kann, der zurückgegeben werden kann. Stattdessen wird der RelayState vom IDP verwendet, um dem SP zu signalisieren , zu welcher URL der SP umleiten soll nach erfolgreicher Anmeldung. Das ist nicht Teil des SAML2-Standards .

Es sieht so aus, als würde Google RelayState für die Ziel-URL verwenden, auch bei SP-initiierter Anmeldung, was völlig in Ordnung ist. Aber der IDP sollte, wie die Dokumentation sagt, es einfach zurücksenden.

75
Anders Abel

RelayState ist ein Bezeichner für die Ressource am SP=), zu der der IDP den Benutzer umleitet (nach erfolgreicher Anmeldung). Dies ist eine Möglichkeit, den SSO-Vorgang für den Benutzer vorübergehender zu gestalten, da sie werden erneut auf dieselbe Seite umgeleitet, die sie ursprünglich beim SP angefordert haben.

6
Yasser Afifi

Gemäß offiziellem SAML-Dokument

Einige Bindungen definieren einen "RelayState" -Mechanismus zum Speichern und Übermitteln von Statusinformationen. Wenn ein solcher Mechanismus beim Übermitteln einer Anforderungsnachricht als Anfangsschritt eines SAML-Protokolls verwendet wird, werden Anforderungen an die Auswahl und Verwendung der Bindung gestellt, die anschließend zum Übermitteln der Antwort verwendet wird. Wenn eine SAML-Anforderungsnachricht von RelayState-Daten begleitet wird, MUSS der SAML-Responder seine SAML-Protokollantwort unter Verwendung einer Bindung zurückgeben, die auch einen RelayState-Mechanismus unterstützt, und MUSS die genauen RelayState-Daten, die er mit der Anforderung erhalten hat, in den entsprechenden RelayState ablegen Parameter in der Antwort.

3
Aravin