最近我的使用Keycloak的应用程序在认证后的400令牌请求中停止工作。
目前我发现的是在令牌请求中,Keycloak cookies(AUTH_SESSION_ID、KEYCLOAK_IDENTITY、KEYCLOAK_SESSION)没有在请求头中发送,导致令牌请求失败,应用程序得到一个会话错误。
通过深入研究,我发现Chrome现在会屏蔽没有设置SameSite属性的Cookie,而keycloak的Cookie就是这种情况,这也是为什么在认证后的令牌获取请求中永远不会解析它们的原因。
我得到的错误是:-
https:/blog.chromium.org201910developers-get-ready-for-new.html。
https:/adzerk.comlogchrome-sameite。
这是非常严重的,因为它阻止了由Keycloak库保护的应用程序能够与Keycloak服务器通信。
更新: 有了新的google chrome cookie的SameSite属性,任何使用cookie的第三方库如果没有正确设置SameSite属性,cookie将被忽略。https:/blog.chromium.org201910developers-get-ready-for-new.html。
对于那些正在寻找短时间解决方案的人,直到他们更新他们的库。
你可以在Chrome浏览器中进行以下操作:-