【问题标题】:IdP initiated saml recieved on SP always has RelayState as null在 SP 上收到的 IdP 发起的 saml 始终将 RelayState 设为 null
【发布时间】:2017-02-14 15:22:34
【问题描述】:

我的任务是实现 SAML2.0 SSO 概念证明,并且我已经成功集成了 spring saml 扩展,这非常简单,感谢作者。虽然,我仍然无法让RelayState 参数工作,但我总是在接收SP 时将其值设为null

我正在使用SSOCircle's public IdPIdP 发起的流(虽然我们没有阻止SP 发起的模式),并在URL 中附加RelayState

我正在尝试使用SAMLRelayStateSuccessHandler,我可以从SAMLCredential 实例中获取RelayState 参数,但它始终是null。我将其追溯到HTTPPostDecoder.doDecode(MessageContext messageContext) 方法(HTTP 后绑定),它在那里也为空。我还跟踪了浏览器网络 url 并注意到 SP 消费者端点 post url 即 /saml/SSO 包含 SAMLResponse 但没有 RelayState 参数(我的理解是它将是一个单独的参数)。

我觉得IdP 可能没有将RelayState 发送到我的SP,但也没有在IdP 端看到任何配置来启用/禁用它,所以不确定。

如果有人可以分享他们的类似经验,我将不胜感激有关调试的建议。

【问题讨论】:

  • 请提供网络跟踪以及 http 请求的流向。这是验证 RelayState 是否由 IDP 传递的最佳方式。
  • @hos 很抱歉这么晚才回复,非常感谢您的回复。超过 15 天没有任何回复,我放弃了,也没有监控更新。我后来可能没有监控的另一个原因是,在我开发之后,我已经使用不同的 IDP 转移到 Pre-prod(我针对公共 IDP ssocircle 开发)。它在新的 IDP 上运行顺利,所以我认为问题出在 ssocircle 而不是我的代码上。事实上,就在最近我意识到 ssocircle IDP 也开始工作了,不确定他们是否进行了一些修复。顺便说一下,网络跟踪在发布到我的 SP 时没有携带 RelayState。

标签: saml-2.0 spring-saml


【解决方案1】:

我不再有这个问题,但也没有明确添加任何修复程序。我最好的猜测是 ssocircle 对其进行了修复,之后 RelayState url 开始为我端到端流动。 感谢@hos 的帮助。不想让问题保持开放,所以添加这个作为答案。

【讨论】:

    猜你喜欢
    • 2020-01-03
    • 1970-01-01
    • 2017-07-06
    • 2021-06-10
    • 1970-01-01
    • 1970-01-01
    • 2020-06-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多