【问题标题】:SAML SSO intermittently fails - InResponseToField of the Response doesn't correspond to sent messageSAML SSO 间歇性失败 - 响应的 InResponseToField 与发送的消息不对应
【发布时间】:2022-08-19 21:11:44
【问题描述】:

在我的 webapp 的 SSO 流程中,我在 IDP 的回发中抛出了一个错误:

org.opensaml.common.SAMLException:响应的 InResponseToField 与发送的消息 a39276f2g3bf914ekjhg376ghdhd 不对应

我不知道是什么导致了这个问题,因为它间歇性地发生并且难以重现。不幸的是,出于安全原因,我无法按照此处所述禁用此检查:https://docs.spring.io/spring-security-saml/docs/current/reference/html/chapter-troubleshooting.html

    标签: saml


    【解决方案1】:

    间歇性失败的原因是 Chrome 在 SAML 回发到应用程序期间如何处理会话 cookie。在我的情况下,我的应用程序被认为是我的 IDP 的第三方,因此在身份验证后不会将 cookie 发送回(如果登录时间超过 2 分钟),实际上会丢失登录会话。

    供参考:https://www.chromium.org/updates/same-site/。在该页面上,“请注意,“Lax+POST”的 2 分钟窗口是临时干预,将在未来某个时间点(Chrome 80 稳定发布后的某个时间)删除,此时这些流程中涉及的 cookie 需要 SameSite=NoneSecure,即使不到 2 分钟。”

    就我而言,我的解决方案看起来像这样。 - 在我的 saml 入口点中,我包括以下内容:

    HttpSession session = ((HttpServletRequest)request).getSession();
                        ((HttpServletResponse)response).addHeader("Set-Cookie", "JSESSIONID=" + session.getId() +"; Secure; HttpOnly; SameSite=None; Path=/to/sso/endpoint;");
    

    【讨论】:

      猜你喜欢
      • 2017-12-25
      • 2018-07-23
      • 2018-02-28
      • 2019-11-25
      • 2017-08-21
      • 2019-12-22
      • 1970-01-01
      • 2015-03-13
      • 1970-01-01
      相关资源
      最近更新 更多