我在Kubernetes部署Keycloak时发现了一个奇怪的行为,让我无法理解。
用例:
- 以admin:admin(默认创建)身份登录 - 单击“管理帐户”
( manage account dialog screenshot)
我比较了(相同的)图像(quay.io/keycloak/keycloak:17.0.0)在Docker或Kubernetes(K3S)中运行时的行为。
如果我从Docker运行它,则会加载帐户控制台。换句话说,我获得了请求的成功(204)。
GET /realms/master/protocol/openid-connect/login-status-iframe.html/init?client_id=account-console 从相同的映像在Kubernetes中部署时,相同的请求将失败并显示错误403。但是,在此同一应用程序上,我获得了请求的成功(204)。
GET /realms/master/protocol/openid-connect/login-status-iframe.html/init?client_id=security-admin-console
用例:
- 以admin:admin(默认创建)身份登录 - 单击“管理帐户”
( manage account dialog screenshot)
我比较了(相同的)图像(quay.io/keycloak/keycloak:17.0.0)在Docker或Kubernetes(K3S)中运行时的行为。
如果我从Docker运行它,则会加载帐户控制台。换句话说,我获得了请求的成功(204)。
GET /realms/master/protocol/openid-connect/login-status-iframe.html/init?client_id=account-console 从相同的映像在Kubernetes中部署时,相同的请求将失败并显示错误403。但是,在此同一应用程序上,我获得了请求的成功(204)。
GET /realms/master/protocol/openid-connect/login-status-iframe.html/init?client_id=security-admin-console
由于我可以调用security-admin-console,这看起来不像是与Kubernetes Ingress网关或任何与路由相关的问题。
然后我考虑了Keycloak访问控制配置问题,但在两种情况下我都使用默认图像而没有进行任何更改。我进行了交叉检查以确保,管理员用户和account-console客户端在docker和k8s应用程序中完全相同地配置。
我不知道问题可能是什么,你有什么建议吗?