我想在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容器)。
答案 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