首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Keycloak .well-known/openid-对于端点,配置未使用"https“协议进行响应

Keycloak .well-known/openid-对于端点,配置未使用"https“协议进行响应
EN

Stack Overflow用户
提问于 2018-04-26 22:24:30
回答 2查看 10.8K关注 0票数 4

我们已经在一个负载均衡器F5后面部署了Keycloak。OIDC客户端坐在公共网络中,所有通信都使用"https“。SSL在F5中终止,数据包被转发到Keycloak (比方说在端口8080上)。

OIDC客户端被设计成使用它在.well-known/openid-configuration请求的响应中接收到的端点(如/token等)。

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

问题是-如何通过使用协议https的端点返回.well-known/openid-configuration请求的响应;就像下面提到的那样

代码语言:javascript
复制
{
  "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,并按照文档中的说明进行了相应的密钥罩配置更改。是否有我可能遗漏的配置或设置?

EN

回答 2

Stack Overflow用户

发布于 2018-09-14 01:51:17

几天来,我一直在为同样的问题而苦苦挣扎,终于找到了答案。问题是,当在代理后面运行时,Keycloak使用HTTPS头来确定传入的请求是否通过X-Forwarded-Proto发出。您的负载均衡器(在我的例子中是AWS ELB)需要正确地设置这个头(参见similar issue)。

使用ELB时,您需要确保以下任一条件:

如果您的监听器设置为HTTPS

,则

  1. 将设置为TCP

在我的例子中,我的监听器被设置为TCP,但后端没有相应地配置。我发现NGINX和Kubernetes的NGINX Ingress Controller都支持这个选项。

票数 4
EN

Stack Overflow用户

发布于 2018-04-26 22:46:50

据我所知,它可以在领域级别上完成(我没有亲自使用过它)。尽管这是一个漫长的过程,但这完全超出了本答案的范围。取而代之的是,我提供了一个文档的链接。

https://www.keycloak.org/docs/3.3/server_installation/topics/network/https.html

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50045489

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档