3.8. 带有跟踪保护的现代浏览器
在一些浏览器的最新版本中,应用各种 Cookie 策略以防止由第三方跟踪用户,如 Chrome 中的 SameSite 或完全阻止第三方 Cookie。这些策略可能会加大限制并被其他浏览器使用。最终,第三方上下文中的 Cookie 可能会完全不受支持且被浏览器阻止。因此,受影响的适配器功能最终可能会被弃用。
该适配器依赖于 Session Status iframe、静默 check-sso
以及部分常规(非静默) check-sso
。这些功能具有有限的功能,或者根据浏览器与 Cookie 的限制而完全禁用。适配器会尝试检测此设置并相应地响应。
3.8.1. 带有 "SameSite=Lax default" 策略的浏览器 复制链接链接已复制到粘贴板!
如果在红帽构建的 Keycloak 端以及应用程序端配置了 SSL / TLS 连接,则支持所有功能。例如,Chrome 会受到影响,从版本 84 开始。
3.8.2. 带有 Blocked Third-Party Cookies 的浏览器 复制链接链接已复制到粘贴板!
不支持 Session Status iframe,如果适配器检测到此类浏览器行为,则会自动禁用。这意味着适配器无法对单点登录检测使用会话 Cookie,且必须完全依赖令牌。因此,当用户在另一个窗口中退出时,在应用程序尝试刷新访问令牌前,不会退出使用适配器的应用程序。因此,请考虑将访问令牌生命周期设置为相对较短的时间,以便尽快检测到注销。如需了解更多详细信息,请参阅 会话和令牌超时。
不支持静默 check-sso
,会默认回退到常规(非静默)check-sso
。通过在传递给 init
方法的选项中设置 silentCheckSsoFallback: false
来更改此行为。在这种情况下,如果检测到限制性浏览器行为,check-sso
会被完全禁用。
常规 check-sso
也会受到影响。因为 Session Status iframe 不支持,在适配器初始化以检查用户的登录状态时,必须进行到红帽构建的 Keycloak 的额外重定向。当 iframe 用于确定用户是否登录时,这个检查与标准行为不同,并且仅在用户注销时才执行重定向。
受影响的浏览器示例是从版本 13.1 开始的 Safari。