Keycloak:使用 nginx 后面的 javascript 适配器的重定向循环

Posted

技术标签:

【中文标题】Keycloak:使用 nginx 后面的 javascript 适配器的重定向循环【英文标题】:Keycloak : Redirection loop using javascript adapter behind nginx 【发布时间】:2019-06-17 05:25:06 【问题描述】:

我有一个 javascript 客户端使用 OIDC 对 keycloak 进行身份验证。

身份验证在开发环境中工作正常,但在客户端和后端之间使用反向代理(包括 keycloak)时以重定向循环结束

看起来身份验证成功(/token 请求以 http 200 结束,响应包括所有令牌)但随后login-status-iframe.html 没有检测到它成功并一次又一次地重新启动身份验证流程

这里有什么问题(nginx配置?)

【问题讨论】:

这可能是由反向代理引入的跨域问题,您可能需要查看 X-Frame-Options 标头或确保 iframe 来自同一域。 【参考方案1】:

我们找到了解决方案。 问题来自我们设置为 HttpOnly 的 cookie:这似乎阻止了 iframe 访问会话数据并强制 iframe 重新进行身份验证,从而导致无限循环。

仅在此 cookie 上停用 HttpOnly 标志 解决了问题。

【讨论】:

您是如何以及在何处禁用 httpOnly cookie 标头的? 能否请您指定在哪里进行此设置? @Alexandre-combe 你能解释一下你在哪里做的这个改变。我们遇到了类似的问题。

以上是关于Keycloak:使用 nginx 后面的 javascript 适配器的重定向循环的主要内容,如果未能解决你的问题,请参考以下文章

Keycloak:使用 nginx 后面的 javascript 适配器的重定向循环

docker 中 nginx 后面的 Keycloak 导致 404 和不定式重定向

keycloak 无效参数:redirect_uri 在反向代理后面

使用反向代理后面的 keycloak 进行身份验证失败

在 Nginx 代理后面时,Keycloak Docker Instace 中的 X-Frame-Options 拒绝加载

nginx登录背后的keycloak失败,帖子中缺少端口号等