首页 > 解决方案 > 当与其他服务一起部署到本地 K8s 集群时,如何使 IS4 工作?

问题描述

我已将 IS4 部署到 K8s 集群。在同一个集群上,我有一个用户正在调用的 WebApp。

用户(转到)-> WebApp(未授权时重定向)-> IS4。

我遇到的问题是,当我将options.AuthorityWebApp 设置为外部 FQDN 时,WebApp 无法找到发现文档。当我设置options.Authority为内部服务名称时,用户将被重定向到他们无法访问的授权端点。

我已经尝试在 IS4: 和 & 中配置Authority所有PublicOrigin这些IssuerUri

虽然 AKS 使我能够解析外部 DNS 并通过某种魔法正确路由,但由于此解析问题,我无法在本地开发。

我能想到的选项是:

  1. 更新 K8s 以强制 pod 进行“完整”DNS 查找。
  2. 更新 IS4 以使服务器使用一组 URL 进行通信,而用户使用另一组进行通信。

我在这两个主题上都找不到太多,所以欢迎提出建议。

理想情况下,我希望 K8s 服务使用内部服务名称进行通信,并且当用户需要进行身份验证时,它们会被定向到公开可用的地址。

标签: nginxkubernetesidentityserver4

解决方案


事实证明,不允许使用内部服务名称(“各方必须使用相同的 DNS 名称”):https ://github.com/IdentityServer/IdentityServer4/issues/3568#event-2588006001


推荐阅读