2

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

我们在这个问题中概述了以下工作流程如何在收到来自 OneLogin 的 SAML 响应后维护 returnurl

当我们ChallengeAsync在被重定向到 OneLogin 以验证我们的用户并发送回 SamlResponse 之前发出 a 时,我们看到我们的 AuthenticationProperties 被传递给 SustatinSys 库代码并且它具有 relayData 和 returnPath 集但是当 OneLogin 发回给我们时,relaystate 不是returnurl/relayData 我们指定的。我们相信这是从这里https://github.com/Sustainsys/Saml2/blob/master/Sustainsys.Saml2/RelayStateGenerator.cs生成的值,作为 SamlAuthenticationRequest 创建的一部分。

是否应该将我们创建的中继数据传递给 SamlAuthenticationRequest 以便我们可以在成功登录后作为 SamlResponse 的一部分读取它,或者我们是否做错了什么并且需要在其他地方设置一些选项以便我们可以读取中继状态?

4

1 回答 1

0

在调用 Idp 期间,传入 AuthenticationProperties 的 relayData 和 returnPath 保存在加密的 cookie 中。实际 Saml2 交换中的 RelayState 是一个随机字符串,也就是 cookie 的名称。处理 Saml 响应时,会读取 cookie 的内容并恢复 AuthenticationProperties(包括 ReturnUrl)。

于 2018-10-24T13:24:44.077 回答