【问题标题】:How do you deploy Identity Server on Kubernetes?如何在 Kubernetes 上部署 Identity Server?
【发布时间】:2018-01-09 17:05:09
【问题描述】:

我想在 Kubernetes 1.8 上部署 Identity Server 4,并将其用作我的 Web 应用程序和 Azure Active Directory(开始)之间的联合网关。

如果我使用本地 k8s 服务名称从我的 Web 应用程序调用 Identity Server,我的用户会在登录期间被重定向到错误的 Identity Server URL(包含本地 k8s 服务名称),这显然无法正常工作。我们使用的是隐式流。

因此,我使用 dns 名称设置 Azure 负载均衡器,并将 Identity Server 配置为可通过域名作为 PublicOrigin URL 进行外部访问。

但是,我的 Web 应用程序在同一集群中运行 无法使用 Identity Server 的外部 URL 访问 Identity Server(发现失败)。

如果我在另一个 Kubernetes 集群上运行 Identity Server,那么一切正常。

我的问题是:

如何在 Kubernetes 中正确部署 Identity Server?我真的需要另一个 Kubernetes 集群吗?

注意:我在 Azure 上使用由 ACS 引擎创建的 Kubernetes(因为我们有混合的 windows 和 linux 容器)。

【问题讨论】:

  • 我正在使用 AKS(Azure 托管 kubernetes),并且在与我的 IS4 服务相同的群集中拥有一个客户端 asp.net core 2 Web 应用程序,没有任何问题。两个 Web 应用程序都由 Nginx 前端和 kube-lego 支持 LetsEncrpyt TLS,DNS 由 Azure DNS 提供。我没有使用 PublicOrigin,而是客户端应用程序的授权(在 openidconnect 设置中)使用 IS4 服务的完整(外部 Azure)DNS 名称。如果您想使用来自客户端的集群服务命名,您可以使用 PublicOrigin。
  • 我只是补充一点,我正在为客户端使用混合流,但我怀疑你使用隐式应该会有所作为。
  • 我刚刚用 AKS 测试了这个,你说得对,它可以工作。似乎 Azure ACS 引擎 (v0.8) 正在以一种奇怪的方式配置我的 kubernetes,即 pod 无法使用外部 URL 连接到其他 pod。如果您提出您的解决方案作为答案,我会接受。
  • 了解 ACS 的不同之处会很有趣,以防它有助于防止 AKS 将来出现问题。

标签: kubernetes identityserver4 azure-acs


【解决方案1】:

我正在使用 AKS(Azure 托管 kubernetes),并且在与我的 IS4 服务相同的群集中有一个客户端 asp.net core 2 Web 应用程序,没有任何问题。两个 webapps 都由 Nginx 前端和 kube-lego 支持 LetsEncrpyt TLS,而 DNS 由 Azure DNS 提供。

我没有使用 PublicOrigin,而是客户端应用程序的授权(在 openidconnect 设置中)使用 IS4 服务的完整(外部 Azure)DNS 名称。如果您想使用来自客户端的集群服务命名,您可以使用 PublicOrigin

【讨论】:

  • 从我的角度来看,这是公认的答案。我在使用 Identity Server 的外部 URL 连接我的 pod 时遇到了一些奇怪的问题,但事实证明这是我使用 Azure ACS 创建的集群的问题。我可以确认切换到 Azure AKS 工作正常,如 Mark 上面所述。
猜你喜欢
  • 2020-05-22
  • 2017-07-22
  • 2020-07-24
  • 2022-01-13
  • 1970-01-01
  • 2023-02-21
  • 2020-04-08
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多