用于 Keycloak 管理控制台重定向的 ProxyPass
Posted
技术标签:
【中文标题】用于 Keycloak 管理控制台重定向的 ProxyPass【英文标题】:ProxyPass for Keycloak Admin Console Redirection 【发布时间】:2021-12-18 14:01:57 【问题描述】:目前 Keycloak 正在 Docker 容器 (8080:8080) 中运行,并且可以通过 Apache 的 ProxyPass 在前端和管理控制台中访问,一切正常。 Keycloak 有没有办法直接为 / 映射管理控制台?
ProxyPreserveHost on
RequestHeader set "Host" "auth.myapp.com"
RequestHeader set "X-Forwarded-For" "auth.myapp.com"
RequestHeader set "X-Forwarded-Server" "auth.myapp.com"
RequestHeader set "X-Forwarded-Proto" "https"
RequestHeader set "X-Forwarded-Port" "443"
RequestHeader set "X-Forwarded-Host" "auth.myapp.com"
ProxyPass / http://localhost:8080/
ProxyPassReverse / http://localhost:8080/
当我浏览到 https://auth.myapp.com 时,Keycloak 前端会将我重定向到 https://auth.myapp.com/auth,并且我必须另外单击“管理控制台”。
管理控制台登录名是https://auth.myapp.com/auth/admin(并且会自动重定向到https://auth.myapp.com/auth/realms/master/protocol/openid-connect/auth?client_id=security-admin-console) - 但在此之后我可以从管理控制台看到登录名。到目前为止,一切都很好。但是有没有办法自动重定向到控制台页面?
ProxyPass / http://localhost:8080/auth/realms
ProxyPassReverse / http://localhost:8080/auth/realms
不工作
ProxyPass / http://localhost:8080/auth/admin
ProxyPassReverse / http://localhost:8080/auth/admin
不工作
感谢您的帮助。
【问题讨论】:
使用RedirectMatch/RewriteRule
在Apache级别重定向/
->/auth/admin
。
【参考方案1】:
谢谢你的提示。这解决了我的问题。
ProxyPassMatch ^/auth(/(index.html)?)?$ !
RedirectMatch ^/auth(/(index.html)?)?$ /auth/admin
【讨论】:
以上是关于用于 Keycloak 管理控制台重定向的 ProxyPass的主要内容,如果未能解决你的问题,请参考以下文章
根据角色将不同的用户重定向到 Keycloak 登录的不同页面