>Chrome 80将引入一个新属性,即SameSite。
- 严格 - 仅为"同一站点"请求附加 Cookie。
- 宽松 - 为"同站点"请求发送cookie,以及使用安全HTTP方法的"跨站点"顶级导航,例如(GET HEAD OPTIONS TRACE(。
- 无 - 为所有"同站点"和"跨站点"请求发送 Cookie。
有关更多信息,本文很好地解释了SameSite。
来自 Azure 文档:
云服务(服务提供商(使用 HTTP 重定向绑定将 AuthnRequest(身份验证请求(元素传递给 Azure AD(标识提供者(。然后,Azure AD 使用 HTTP 发布绑定将响应元素发布到云服务
我的问题是为什么 SameSite 会中断 SAML 流? 🔍 "saml" 同网站问题
当 IdP POST 响应回 SP 时,如果 SameSite=Lax,则用户代理将不会发送具有 SP 域的 Cookie。即使它不发送cookie,我也没有看到SP有任何问题。
当 IdP POST 响应回 SP 时,如果 SameSite=Lax,用户代理将 不发送具有 SP 域的 Cookie。即使它不发送饼干 我认为SP没有任何问题。
在 IdP-init 上,可能不会有任何问题,因为发送的 SAML 响应之外没有状态。
但是,SP-init 流很可能会被破坏。原因是大多数 SP 产品在将用户发送到 IdP 之前通过设置的 cookie 跟踪浏览器会话。浏览器将重定向到 IdP,进行身份验证,然后通过开机自检响应发送回 SP。如果 cookie 未设置SameSite=None;Secure
(不要忘记 - 需要SameSite=None
的 cookie 也必须使用Secure
进行设置(,则 SP 的 cookie 不会通过 POST 传递回 SP,这样 SP 就没有安全配置会话所需的所有部分。
一种查看方式是用户需要两组密钥才能在 SP 上建立安全会话:第一种是它希望从 cookie 获得会话密钥,另一种是它希望从 IdP 获得密钥。
>> Even if it does not send cookies I don't see there is any problem with SP.
如果未使用 SameSite=None 正确设置 IdP Cookie,则不会根据 SP 的请求将其发送到 IdP,并且将要求用户再次登录 IdP。
来源 : https://support.okta.com/help/s/article/FAQ-How-Chrome-80-Update-for-SameSite-by-default-Potentially-Impacts-Your-Okta-Environment
这就是ShibbolethIDP所做的:https://issues.shibboleth.net/jira/browse/IDP-1476
使用 Lax,浏览器将仅通过顶级导航 (GET( 传递跨站点请求的 cookie。因此,cookie 不会与通过 GET 以外的 HttpMethods(如 POST(发出的跨站点请求一起传递。 您可以在此处找到更多信息 : https://thilankadeshan.wordpress.com/2020/11/09/jsession-new-samesite-cookie-policy-in-google-chrome-and-spring/