gpt4 book ai didi

Keycloak .well-known/openid-configuration 没有响应端点的 "https"协议(protocol)

转载 作者:行者123 更新时间:2023-12-04 03:00:03 25 4
gpt4 key购买 nike

我们在 F5 负载均衡器后面部署了 Keycloak。 OIDC 客户端位于公共(public)网络中,使用“https”进行所有通信。 SSL 在 F5 中终止,数据包被转发到 Keycloak(比如在端口 8080 上)。
OIDC 客户端的设计方式是使用它在对 /token 的响应中收到的端点(如 .well-known/openid-configuration 等)。要求。

这里的问题是 .well-known config 使用协议(protocol)为 http 的 URL 进行响应对于客户端期望使用 https 协议(protocol)的所有端点.由于此客户端无法与这些 URL 建立安全连接。

问题是 - 我们如何才能得到 .well-known/openid-configuration 的回复?使用协议(protocol) 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-Forx-Forwarded-Proto并按照文档中的说明进行了相应的 keycloak 配置更改。
是否有任何我可能遗漏的配置或设置?

最佳答案

我一直在为同样的问题苦苦挣扎好几天,终于弄明白了。问题是 Keycloak 使用 X-Forwarded-Proto在代理后面运行时的 HTTP header ,以确定传入请求是否是通过 HTTPS 发出的。您的负载均衡器(在我的情况下为 AWS ELB)需要正确设置此 header (请参阅 similar issue)。

使用 ELB 时,您需要确保:

  • 您的监听器设置为 HTTPS
  • 您的监听器设置为 TCP并且接收后端支持Proxy Protocol

  • 就我而言,我的听众设置为 TCP但后端没有相应地配置。我发现 NGINX和 Kubernetes 的 NGINX Ingress Controller支持这个选项。

    关于Keycloak .well-known/openid-configuration 没有响应端点的 "https"协议(protocol),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50045489/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com