You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

登录Keycloak时出现Too many redirects错误求助

解决Keycloak通过AWS ELB访问时登录重定向过多的问题

我之前在生产环境里碰到过一模一样的场景,这种重定向循环问题几乎都和请求头识别、Keycloak外部URL配置或者Cookie属性不匹配有关,下面是几个经过验证的解决方案:

1. 让Keycloak正确识别代理传来的请求信息

AWS ELB会把用户的原始HTTPS请求信息通过X-Forwarded-Proto、X-Forwarded-Port这类头传递给后端,但Keycloak默认没开启解析这些头的功能,导致它误以为自己在处理HTTP请求,进而强制重定向到HTTPS,形成死循环。

需要修改Keycloak的核心配置文件(比如standalone.xml或standalone-ha.xml):

  • 在undertow子系统里,给HTTP/HTTPS监听器开启proxy-address-forwarding:
<server name="default-server">
    <http-listener name="default" socket-binding="http" redirect-socket="https" proxy-address-forwarding="true"/>
    <https-listener name="https" socket-binding="https" security-realm="ApplicationRealm" proxy-address-forwarding="true"/>
</server>
  • 同时在Keycloak控制台(或配置文件的spi节点)设置**前端URL(Frontend URL)**为ELB的公网HTTPS地址,比如https://your-elb-domain.com/auth(Keycloak 17+版本路径可能是/)。这个配置会让Keycloak生成跳转链接时用外部公网地址,而不是内部的8443端口。

2. 检查ELB的转发规则和头传递

不管是经典型ELB还是ALB,都要确保:

  • 监听器会把X-Forwarded-Proto、X-Forwarded-Port、X-Forwarded-For这些头完整传递给后端Keycloak
  • ALB的目标组要选择和Keycloak匹配的协议版本(比如HTTP/1.1),避免协议不兼容导致头丢失
  • 健康检查路径要用Keycloak的健康端点(比如/auth/health或/health),确保ELB只会把请求转发到正常运行的实例

3. 强制Cookie使用Secure属性

第一次访问时Keycloak生成的Cookie可能是HTTP属性,但后续请求是HTTPS,浏览器会拒绝发送这些Cookie,导致Keycloak认为用户未登录,再次重定向到登录页,形成循环。

可以在Keycloak配置里强制Cookie为Secure:
在standalone.xml的keycloak-server子系统中添加:

<spi name="cookie">
    <provider name="default" enabled="true">
        <properties>
            <property name="secure" value="true"/>
            <property name="sameSite" value="None"/>
        </properties>
    </provider>
</spi>

这样生成的Cookie只会通过HTTPS传输,避免浏览器因协议不一致拒绝Cookie。

4. 用浏览器工具排查重定向细节

如果以上配置都没解决问题,打开浏览器开发者工具的Network面板,查看每次重定向的:

  • 状态码(302)和目标URL,确认是跳转到ELB的外部地址还是Keycloak的内部8443地址
  • 请求头里是否有X-Forwarded-Proto: https,如果没有,说明ELB没正确传递这个头,Keycloak会误判请求协议

总结

核心就是让Keycloak明确知道自己是通过HTTPS代理对外提供服务的,这样它生成的跳转链接、Cookie属性都会符合HTTPS环境要求,从根源上消除重定向循环。按上面的步骤配置后,不需要清理缓存也能彻底解决问题。

内容的提问来源于stack exchange,提问作者France Belua

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.15 07:49:54