从 SamlResponse 读取中继状态
Reading relaystate from a SamlResponse
我们将 SustainSys.Saml2 与 IdentityServer4 一起使用。
我们在这个问题中概述了以下工作流程How to maintain returnurl after receiving SAML response from OneLogin
当我们发出 ChallengeAsync
就在我们被重定向到 OneLogin 以验证我们的用户并发回 SamlResponse 之前,我们看到我们的 AuthenticationProperties 被传递给 SustatinSys 库代码并且它有 relayData 和 returnPath 设置但是当OneLogin 回发给我们 relaystate 不是我们指定的 returnurl/relayData。我们相信它是从此处生成的值 https://github.com/Sustainsys/Saml2/blob/master/Sustainsys.Saml2/RelayStateGenerator.cs 作为 SamlAuthenticationRequest 创建的一部分。
是否应该将我们创建的中继数据传递给 SamlAuthenticationRequest,以便我们可以在成功登录后作为 SamlResponse 的一部分读取它,或者我们做错了什么并且需要在其他地方设置一些选项以便我们可以读取中继状态?
您传递给 AuthenticationProperties 的 relayData 和 returnPath 在调用 Idp 期间保存在加密的 cookie 中。实际Saml2交换中的RelayState是一个随机字符串,也是cookie的名称。处理 Saml 响应时,将读取 cookie 的内容并恢复 AuthenticationProperties(包括 ReturnUrl)。
我们将 SustainSys.Saml2 与 IdentityServer4 一起使用。
我们在这个问题中概述了以下工作流程How to maintain returnurl after receiving SAML response from OneLogin
当我们发出 ChallengeAsync
就在我们被重定向到 OneLogin 以验证我们的用户并发回 SamlResponse 之前,我们看到我们的 AuthenticationProperties 被传递给 SustatinSys 库代码并且它有 relayData 和 returnPath 设置但是当OneLogin 回发给我们 relaystate 不是我们指定的 returnurl/relayData。我们相信它是从此处生成的值 https://github.com/Sustainsys/Saml2/blob/master/Sustainsys.Saml2/RelayStateGenerator.cs 作为 SamlAuthenticationRequest 创建的一部分。
是否应该将我们创建的中继数据传递给 SamlAuthenticationRequest,以便我们可以在成功登录后作为 SamlResponse 的一部分读取它,或者我们做错了什么并且需要在其他地方设置一些选项以便我们可以读取中继状态?
您传递给 AuthenticationProperties 的 relayData 和 returnPath 在调用 Idp 期间保存在加密的 cookie 中。实际Saml2交换中的RelayState是一个随机字符串,也是cookie的名称。处理 Saml 响应时,将读取 cookie 的内容并恢复 AuthenticationProperties(包括 ReturnUrl)。