通过 2 个公共 URL 公开的 Keycloak 服务器

Posted

技术标签:

【中文标题】通过 2 个公共 URL 公开的 Keycloak 服务器【英文标题】:Keycloak server exposed via 2 public URLs 【发布时间】:2020-09-26 16:22:33 【问题描述】:

Keycloak 引入了“前端 URL”的概念,以便为 Keycloak 的前通道和后通道请求启用不同的 URL。

我们有一个用例,其中相同的 Keycloak 服务器通过 Kubernetes 集群中的单独 nginx 代理通过 2 个公共 URL(超过 2 个相互无法访问的独立 ***)公开:

domain1.company.com
domain2.company.com 

和一个内部 URL:

internal.company.com

问题是我们只能设置一个前端 URL。例如,假设我们将其设置为domain1.company.com。现在,当公共客户端使用 OIDC 发现端点通过 domain2.company.com 访问 Keycloak 时,他们会得到 authorization_endpoint 作为 https://domain1.company.com/auth/realms/realm-name/protocol/OpenID-connect/auth,由于单独的 ***,无法访问。

通过只允许前端 URL 的一个值,Keycloak 假设服务器只能通过一个公共 URL 访问,这可能与我们的示例不同。

这个问题有解决办法吗?

【问题讨论】:

【参考方案1】:

为您的用例提出了一项增强功能:https://issues.redhat.com/browse/KEYCLOAK-15553

【讨论】:

以上是关于通过 2 个公共 URL 公开的 Keycloak 服务器的主要内容,如果未能解决你的问题,请参考以下文章

如何更改通过 Keycloak 令牌交换创建的访问令牌的内容

Keycloak 公开与机密客户

是否可以通过 KeyCloak 为一组 webapp 配置 2 个不同的 SSO (AD)?

我可以通过不同的“API”DLL 只公开一个 .NET DLL 的公共类的一部分吗?

Keycloak公共客户端和授权

gRPC - 公开公共 API