0

我试图理解以下问题:

有:

  • app1.gatekeeper-test.com
  • app2.other-url.com

这两个客户端(app1,app2)在同一个领域(受 2 个关守保护)都指向同一个资源服务器 - Cookie 是全范围的。

  1. user1app1.gatekeeper-test.com.
  2. app2.other-url.com在一个新选项卡中打开它会自动将我登录为user1.
  3. 如果我app1.gatekeeper-test.com在私人窗口中打开,我需要再次登录。
  4. 没有什么是全局范围的,我找不到 keycloak 如何确定用户的原因。

这怎么可能?必须有一些前端状态机制让 Keycloak 知道,这是user1,它正在尝试访问 app2?我很困惑......(在 Chrome 80.0.3987.87 上测试)

4

1 回答 1

1

这就是 SSO 的工作方式,它是跨浏览器选项卡共享的浏览器会话 UUID。

一旦您从新选项卡重定向到 keycloak,它会通过您的浏览器会话检测到在同一领域下已经有该会话的经过身份验证的用户,因此它将令牌返回给您。

在隐身窗口中,您有一个新的会话 UUID,因此您需要重做身份验证机制,即使是同一用户,您也会获得具有不同到期时间的不同令牌。

于 2020-08-30T21:25:26.510 回答