从SamlResponse读取中继状态

时间:2018-10-24 11:40:35

标签: identityserver4 sustainsys-saml2

我们将SustainSys.Saml2与IdentityServer4一起使用。

在此问题How to maintain returnurl after receiving SAML response from OneLogin中我们概述了以下流程工作

当我们在重定向到OneLogin以验证用户并发送SamlResponse之前发出ChallengeAsync时,我们看到AuthenticationProperties传递给SustatinSys库代码,并且它具有relayData和returnPath设置,但是当OneLogin发布时回到我们的中继状态不是我们指定的returnurl / relayData。我们相信它是在https://github.com/Sustainsys/Saml2/blob/master/Sustainsys.Saml2/RelayStateGenerator.cs中创建的一个值,是SamlAuthenticationRequest创建的一部分。

应该将我们创建的中继数据传递给SamlAuthenticationRequest,以便在作为SamlResponse的一部分成功登录后可以读取它,还是我们做错了什么,需要在其他位置设置一些选项才能读取中继状态? / p>

1 个答案:

答案 0 :(得分:0)

您传递给AuthenticationProperty的relayData和returnPath将在对Idp的调用期间保留在加密的cookie中。实际的Saml2交换中的RelayState是一个随机字符串,也就是cookie的名称。处理Saml响应后,将读取cookie的内容并还原AuthenticationProperty(包括ReturnUrl)。