Quel est exactement le paramètre RelayState utilisé dans SSO (ex. SAML)?
je suis en train de comprendre SSO à l'aide de SAML. Je suis tombé sur le paramètre RelayState et suis très confus exactement pourquoi il vient en premier dans SSO pour envoyer des URL encodées? Que signifie exactement?
lisez la suite de la documentation de Google Developer:
Google génère une requête D'authentification SAML. La requête SAML est encodée et intégrée dans L'URL du service SSO du partenaire. Le paramètre RelayState contenant L'URL encodée de L'application Google que L'utilisateur essaie d'atteindre est également intégrée dans l'URL SSO. Ce paramètre RelayState est censé être un identifiant opaque qui est renvoyé sans aucune modification ou inspection
3 réponses
Le sens original de RelayState
est que le SP peut envoyer une certaine valeur à L'IDP avec le AuthnRequest
et ensuite le récupérer. Le SP peut mettre n'importe quelle valeur qu'il veut dans le RelayState
et L'IDP devrait juste faire écho dans la réponse.
RelayState
paramètre est supposé être un identifiant opaque qui est passé sans aucune modification ou d'inspection
il y a aussi une autre utilisation standard de fait pour RelayState
lors de l'utilisation de Ouverture de session initiée par l'Idp. Dans ce cas, il n'y a pas de demande entrante de la part du SP, de sorte qu'il ne peut y avoir d'État à retransmettre. Au lieu de cela, le RelayState
est utilisé par L'IDP pour signaler au SP quelle URL le SP devrait rediriger vers après avoir réussi à s'inscrire. ne fait pas partie du standard grâce à saml2!.
on dirait que Google utilise RelayState
pour L'URL cible, même sur la connexion initialisée par SP, ce qui est parfaitement correct. Mais L'IDP devrait, comme le dit la documentation, juste le relayer.
RelayState est un identifiant pour la ressource à laquelle l'IDP redirigera l'utilisateur (après une connexion réussie). C'est un moyen de rendre le processus de SSO plus transitoire pour l'utilisateur parce qu'ils sont redirigés à nouveau vers la même page qu'ils ont initialement demandé au SP.
selon le document officiel de SAML,
certaines fixations définissent un mécanisme de" RelayState " pour préserver et transmettre l'information de l'état. Lorsque un tel mécanisme est utilisé pour transmettre un message de requête comme étape initiale d'un protocole SAML, il impose des exigences quant au choix et à l'utilisation de la reliure utilisée par la suite pour transmettre la réponse. Plus précisément, si un message de demande SAML est accompagné de données RelayState, alors le répondeur SAML Doit rendre son protocole SAML réponse à l'aide d'une liaison qui supporte également un mécanisme D'État de relais, et il doit placer les données exactes du RelayState qu'il a reçues avec la demande dans le RelayState correspondant paramètre de la réponse.