Redmine通过Keycloak的OpenID Connect认证配置遇重定向URI错误求助
Redmine + Keycloak OpenID Connect 「Invalid parameter redirect URI」问题排查
核心排查与修复步骤
- 严格匹配重定向URI格式
Keycloak客户端配置的「Valid Redirect URIs」必须和Redmine插件设置的Redirect URI完全一致,包括:- 协议(http/https):本地测试用http就不能填https,生产环境必须用https
- 域名、端口:比如Redmine跑在
http://redmine.example.com:3000,回调URI就是http://redmine.example.com:3000/oauth2/callback - 路径与后缀:不能随意加末尾斜杠,除非实际请求自动携带
- 检查Keycloak客户端基础配置
- 确认客户端「Access Type」设置为
public(Redmine OpenID Connect插件要求公开客户端类型) - 「Valid Redirect URIs」避免使用通配符
*,必须填写精确的回调地址;「Web Origins」可临时设为*测试,生产环境改为Redmine域名
- 确认客户端「Access Type」设置为
- Redmine插件配置校验
登录Redmine后台进入插件设置页,核对:Client ID与Keycloak客户端ID完全一致,无拼写错误Issuer URL格式正确:Keycloak 17+版本去掉/auth前缀,格式为https://keycloak.example.com/realms/你的领域名;旧版本为https://keycloak.example.com/auth/realms/你的领域名Redirect URI必须和Keycloak配置的「Valid Redirect URIs」完全匹配
- 清除缓存与会话
- 重启Redmine、Keycloak服务
- 清空浏览器缓存和Cookie,避免旧会话数据干扰
- 抓包验证实际请求
用浏览器F12开发者工具查看跳转Keycloak时的请求参数,对比redirect_uri值与Keycloak配置的地址,确认是否存在插件自动拼接错误(比如反向代理导致内部地址暴露)
常见坑点
- Keycloak版本差异:新版本路径移除
/auth,旧教程可能未更新,导致Issuer URL错误进而引发重定向URI问题 - 反向代理影响:如果Redmine前有Nginx等代理,需确保代理传递正确的Host头,否则插件生成的redirect_uri会使用内部地址(如localhost:3000),与Keycloak配置的外部域名不符
- 大小写敏感:URI的域名、路径大小写必须完全一致
内容的提问来源于stack exchange,提问作者Nipun
相关产品推荐
相关产品推荐

