SAML 注销请求未向 IdP 发送 cookie

SAML logout request is not sending cookies to IdP

我们正在尝试实现从服务 Provider/Relying 方到 IdP(在本例中为 AD FS 3.0)的 SAML 注销。我们的注销不会使 AD FS 中的 session 失效。我们已经缩小了由于某种原因没有在 HTTPS 请求中发送 ADFS 身份验证 cookie 的范围,尽管我们不知道为什么。这是为 SAML 流使用 HTTPS 重定向。

我们已尝试让请求 headers 与成功发送 cookie 的后续登录请求相同,但无济于事。

我有一个 Fiddler 跟踪记录了多次注销尝试(以及其间的自动登录)。这是在一个带有虚拟数据的隔离实验室网络中。

Fiddler trace

有什么想法可以尝试在注销请求时将这些 cookie 发送到 AD FS 服务器吗?

一位同事找到的答案是,重定向请求是一个 XHR 请求,因为它是在 JavaScript 开始的,而不是“正常”的浏览器重定向。只有在目标服务器允许请求者访问的情况下,才允许在跨域 XHR 请求中包含 Cookie。因此,修复涉及终止 XHR 请求的重定向链并执行正常的浏览器重定向。这允许浏览器将 cookie 与重定向请求一起发送到新站点。