Superset 1.3.2与Keycloak集成后登录重定向异常问题
修复Superset + Keycloak登录重定向异常方案
1. 修正Superset核心配置参数
在superset_configs.py中添加或调整以下参数,让Superset正确识别外部访问的真实地址:
- 明确设置外部可访问的服务名称:
SERVER_NAME = "localhost:8088" - 启用反向代理适配,确保Superset能读取代理传递的真实请求头:
ENABLE_PROXY_FIX = True PREFERRED_URL_SCHEME = "http" - 强制指定OIDC回调地址为外部可访问的URL:
OIDC_REDIRECT_URI = "http://localhost:8088/oauth-authorized/keycloak"
2. 调整Docker容器启动配置
如果用docker-compose部署,在docker-compose.yml的superset服务块中添加环境变量,覆盖容器内部的默认地址设置:
services: superset: environment: - SERVER_NAME=localhost:8088 - ENABLE_PROXY_FIX=true
3. 校验Keycloak客户端配置
- 登录Keycloak控制台,进入对应Superset客户端的配置页面
- 确认
Valid Redirect URIs设置为http://localhost:8088/* - 将
Web Origins设置为http://localhost:8088(测试环境可临时用*,生产环境建议限制为具体地址)
4. 修复HPM代理的请求头传递
如果使用了HPM代理(比如docker-compose中的nginx或Superset内置代理),需确保转发请求时传递正确的客户端请求头:
- 若为nginx代理,在转发规则中添加以下配置:
proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; - 若为Superset内置HPM代理,检查启动脚本中的转发规则,确保将外部请求的
Host头完整传递到容器内部
5. 重启服务验证
修改所有配置后,重启相关容器生效:
docker-compose restart superset
重新访问http://localhost:8088完成登录,验证是否正确重定向回localhost地址。
内容的提问来源于stack exchange,提问作者Pali
相关产品推荐
相关产品推荐

