背景:
内网有一个服务是用keycloak来认证的,临时要修改一个设置,没想到访问 keycloak的nodeport 地址后,auth 页面正常,点击 admin console后,出现了无限的转圈圈,卡在了 "Loading the Admin UI"这里。
排查:
浏览器网络和console似乎看到这样的提示“Refused to frame 'http://keycloak-url/' because it violates the following Content Security Policy directive: "frame-src 'self'".”
换了访问环境也是这样,检查对应的服务日志,没看出异常,于是搜到了这里
https://stackoverflow.com/questions/73883728/keycloak-admin-console-loading-indefinitely
里面有1句,the value for KC_HOSTNAME should match that IP address。 KC_HOSTNAME 地址要匹配服务地址
还有一段,开启debug模式,检查下 KC_HOSTNAME 相关的输出
开启后,访问debug页面地址 ,结果3个failed
http://10.17.0.13:31422/auth/realms/master/hostname-debug
这就是卡loading 的原因,地址不一致。
想了一下,访问地址换成 集群ip 看看。 http://10.233.26.226/auth/realms/master/hostname-debug
有进步,除frontend 继续failed 外,其他backend和admin 都ok了
继续排查, 想了一下,把环境变量中的 KC_HOSTNAME 改成集群 ip 10.233.26.226 试试。 果然3个ok。
后来把 hostname 改成节点 10.17.0.13 , 也能3个 ok了。
直接访问 http://10.233.26.226/auth/admin/master/console/ 看看,果然正常了,使用集群 ip 绕行成功。
一些线索
里面有人提到这个参数已经废弃了
一点背景
- Frontend. Used for in-browser authentication flows, account console, etc.
- Backend. Used for backend communication between a client (an application secured by Keycloak) and Keycloak itself. This might be over a local network, avoiding a reverse proxy.
- Admin Console. A URL used for Admin Console. It is used for redirect URLs, loading resources (CSS, JS), etc.
文章评论