2015-12-18 5 views
23

Ich versuche SSO mit SAML zu verstehen. Ich bin auf den RelayState-Parameter gestoßen und bin sehr verwirrt, warum es in SSO an erster Stelle steht, codierte URLs zu senden? Was genau bedeutet es?Was ist der Parameter RelayState, der in SSO verwendet wird (z. B. SAML)?

Bitte lesen Sie die folgenden von the Google Developer documentation:

Google generiert eine SAML-Authentifizierungsanforderung. Die SAML-Anforderung wird verschlüsselt 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 erreichen möchte, ist ebenfalls in die SSO-URL eingebettet. Dieser Relaystate-Parameter soll eine opake Kennung sein, die

Antwort

38

Die ursprüngliche Bedeutung von RelayState zurück ohne Änderung oder Prüfung bestanden ist, dass der SP ein gewissen Wert auf den IDP zusammen mit den AuthnRequest senden kann und es dann zurück . Der SP kann den gewünschten Wert in RelayState setzen und der IDP sollte ihn einfach in der Antwort zurückgeben.

Diese RelayState Parameter sollten eine undurchsichtige Kennung sein, die ohne Änderung oder Prüfung zurück geführt wird

Es gibt auch eine andere, de-facto-Standard Verwendung für RelayState wenn Idp initiierte Anmeldung durch. In diesem Fall gibt es keine eingehende Anforderung vom SP, sodass kein Status zurückgegeben werden kann. Stattdessen wird RelayState vom IDP verwendet, um dem SP mitzuteilen, welche URL der SP nach erfolgreicher Anmeldung an umleiten sollte. Das ist nicht Teil des SAML2-Standards.

Es sieht so aus, als ob Google RelayState für die Ziel-URL verwendet, selbst bei SP-initiierter Anmeldung, was völlig in Ordnung ist. Aber die IDP sollte, wie die Dokumentation sagt, einfach weiterleiten.

+0

Ich bin froh, dass der "De-facto-Standard-Einsatz" hier herausgestellt wurde. Ich habe gekämpft, um zu verstehen, warum Redirect URL unter 'RelayState' gesendet wurde. –

5

RelayState ist eine Kennung für die Ressource auf dem SP, an die der IDP den Benutzer umleiten wird (nach erfolgreicher Anmeldung). Es ist eine Möglichkeit, den Prozess von SSO für den Benutzer vorübergehend zu gestalten, da sie erneut auf dieselbe Seite umgeleitet werden, die sie ursprünglich beim SP angefordert haben.

0

Gemäß offiziellen SAML Dokument,

Einige Bindungen definieren einen „Relaystate“ Mechanismus für die Erhaltung und Zustandsinformationen zu vermitteln. Wenn ein solcher Mechanismus beim Übermitteln einer Anforderungsnachricht als Anfangsschritt eines SAML-Protokolls verwendet wird, legt er Anforderungen an die Auswahl und Verwendung der Bindung, die anschließend zum Übermitteln der Antwort verwendet wird. Wenn nämlich eine SAML-Anforderungsnachricht von RelayState-Daten begleitet wird, MUSS der SAML-Responder seine SAML-Protokollantwort mit 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 der entsprechende RelayState Parameter in der Antwort.

Verwandte Themen