如何解决SAML中的SLO是否可以在不同的浏览器上运行?
我想知道Spring SAML for SP的实际情况,并以ADFS作为IDP对其进行测试,因为我所期望的SLO并没有发生。
- Spring Boot版本:2.1.8.RELEASE
- Java版本:1.8
- ADFS版本:2.0
注意:我在所有不同的浏览器上都使用一个用户凭据,例如: user / user @ 123
我正在按照以下步骤实现SSO
现在在此过程中,只要我打开另一个SP并尝试使用相同的IDP登录,它就会自动登录。
对于SLO,以下是我要遵循的步骤
- 我正在通过点击
/saml/logout
上进一步处理的SAMLlogoutFilter
上的SP来发起SLO请求 - 会话无效
- 我在浏览器A上所有已登录的SP的日志中看到一个logoutRequest。
- 注销成功,现在它要求浏览器A中所有SP的凭据。
当我在不同的浏览器上尝试SSO时,它会为第一个SP上的每个浏览器询问一次凭据,其余的SP会自动登录,我可以理解,因为其他浏览器没有该用户与之进行的用户会话数据想登录,但是在所有SP从不同的浏览器登录后,我猜IDP知道连接的SP,并且据我了解,当从任何SP启动SLO时,它应该在浏览器中注销所有SP。>
但是问题是,当从浏览器A启动SLO时,我看到注销请求以及SP都被注销,只有那些在同一浏览器A上登录的请求以及其余浏览器B和C SP仍被记录进入,并且如果没有为该浏览器实例显式启动/saml/logout
,他们就不会要求提供凭据
SLO示例
SP1,SP2使用浏览器A登录
使用浏览器B登录的SP3
SP4和SP5使用浏览器C登录
从浏览器A-SP2启动SLO,然后注销SP1,但仍登录SP3,4和5
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。