如何在Kubernetes上部署Identity Server?

时间:2018-01-08 11:48:25

标签: kubernetes identityserver4 azure-acs

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

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

因此,我设置了一个具有dns名称的Azure负载均衡器,并且可以通过域名作为PublicOrigin URL从外部访问配置的Identity Server。

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

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

我的问题是:

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

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

1 个答案:

答案 0 :(得分:3)

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

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