Zik*_*iko 8 redhat google-chrome single-sign-on keycloak keycloak-services
最近,我使用 Keycloak 的应用程序在身份验证后停止处理 400 令牌请求。
到目前为止,我发现在令牌请求中,Keycloak cookie(AUTH_SESSION_ID、KEYCLOAK_IDENTITY、KEYCLOAK_SESSION)未在请求标头中发送,导致令牌请求失败并且应用程序收到会话错误。
通过深入研究,我发现 Chrome 现在阻止了没有设置 SameSite 属性的 cookie,keycloak cookie 就是这种情况,这就是为什么它们在身份验证后从未在令牌获取请求中解析的原因。
我得到的错误:-
https://blog.chromium.org/2019/10/developers-get-ready-for-new.html
https://adzerk.com/blog/chrome-samesite/
这是非常严重的,因为它阻止了 Keycloak 库保护的应用程序能够与 keycloak 服务器通信。
更新:使用新的 google chrome cookie SameSite 属性,任何使用 cookie 的第三方库没有正确设置 SameSite 属性,cookie 将被忽略。 https://blog.chromium.org/2019/10/developers-get-ready-for-new.html
小智 8
如果您在使用keycloak-js适配器时遇到此问题。
那么这个问题的原因是:
默认情况下,JavaScript 适配器会创建一个隐藏的 iframe,用于检测是否发生单点注销。这不需要任何网络流量,而是通过查看特殊状态 cookie 来检索状态。
解决方法(不是修复):
可以通过在传递给 init 方法的选项中设置 checkLoginIframe: false 来禁用此功能。
例如。,
keycloak.init({ onLoad: '需要登录', checkLoginIframe: false })
对于那些在更新库之前寻找短期解决方案的人。
您可以在 Chrome 中执行以下操作:-
| 归档时间: |
|
| 查看次数: |
7410 次 |
| 最近记录: |