微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

SAML中的SLO是否可以在不同的浏览器上运行?

如何解决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

  1. 从SP获取IDP列表
  2. 选择一个IDP并使用给定的IDP登录页面登录
  3. IDP向/saml/SSO发送请求
  4. 身份验证成功,会话开始

现在在此过程中,只要我打开另一个SP并尝试使用相同的IDP登录,它就会自动登录

对于SLO,以下是我要遵循的步骤

  1. 我正在通过点击/saml/logout上进一步处理的SAMLlogoutFilter上的SP来发起SLO请求
  2. 会话无效
  3. 我在浏览器A上所有已登录的SP的日志中看到一个logoutRequest。
  4. 注销成功,现在它要求浏览器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 举报,一经查实,本站将立刻删除。