【发布时间】:2018-10-07 07:13:22
【问题描述】:
我们在 F5 负载均衡器后面部署了 Keycloak。 OIDC 客户端位于公共网络中,使用“https”进行所有通信。 SSL 在 F5 中终止,数据包被转发到 Keycloak(例如端口 8080)。
OIDC 客户端的设计方式是使用它在响应.well-known/openid-configuration 请求时收到的端点(如/token 等)。
这里的问题是,.well-known 配置响应的 URL 的协议为 http,对于客户端期望协议为 https 的所有端点。由于此客户端无法与这些 URL 建立安全连接。
问题是 - 我们如何才能对 .well-known/openid-configuration 请求返回的响应带有协议 https 的端点;就像下面提到的那样
{
"issuer":"https://<domain>/auth/realms/master",
"authorization_endpoint":"https://<domain>/auth/realms/master/protocol/openid-connect/auth",
"token_endpoint":"https://<domain>/auth/realms/master/protocol/openid-connect/token"
.......
}
我们已按照documentation 中提到的步骤进行操作。
即在 F5 中添加了 x-Forwarded-For 和 x-Forwarded-Proto 并按照文档中的说明进行了相应的 keycloak 配置更改。
是否有任何我可能遗漏的配置或设置?
【问题讨论】:
-
你能解决这个问题吗?我在 Kubernetes Ingress 后面使用 Keycloak 遇到了同样的问题
-
我也遇到了同样的问题,请分享一下你是怎么解决的