我使用saml一路通过ADFS将Auth0 SSO用于Spring安全应用程序时已设置好。因此,它看起来像这样:ADFS中的单一注销第二个请求失败
Auth0 ----> ADFS ----> SpringSecurity App.
我Auth0的控制,但它模拟的第三方将与我们的ADFS服务器集成。
这工作正常。
要做注销,我最低限度希望销毁SpringSecurity应用程序和ADFS应用程序上的会话。当我第一次呼叫注销时,SAML注销请求会传递给ADFS。然后,ADFS将注销请求传递给Auth0,并在该处结束。这破坏了会话。但是,如果在没有关闭浏览器的情况下再次登录I SSO,然后注销,则ADFS会拒绝该登出请求,并显示urn:oasis:names:tc:SAML:2.0:status:Requester
,这意味着它不喜欢我的请求。
我已经能够缩小到事实,有一个SAMLLogout
cookie,与我的ADFS服务器域的设置。当注销反弹到Auth0时,这似乎会被设置,但不会被删除。当该cookie存在时调用注销会导致错误。当我删除一个cookie时,我可以成功注销(因为它破坏了ADFS会话并向Auth0发送注销请求)。该Cookie有效期为Session
,因此关闭和打开浏览器也可以。
我可以发布令牌请求和响应,但我不认为它与令牌本身有关。它们都被正确签名,并且在执行注销时ADFS不报告任何错误。
我不一定需要ADFS来调用Auth0(或任何IdP)来销毁该会话,我只需要它来销毁它自己的会话。
对不起,我没有字面意思是一些调用“摧毁”或“未设置”,我的意思是更多的内置功能的Spring Security和ADFS – Ronnie76er