nginx - 当与其他服务一起部署到本地 K8s 集群时,如何使 IS4 工作?
问题描述
我已将 IS4 部署到 K8s 集群。在同一个集群上,我有一个用户正在调用的 WebApp。
用户(转到)-> WebApp(未授权时重定向)-> IS4。
我遇到的问题是,当我将options.Authority
WebApp 设置为外部 FQDN 时,WebApp 无法找到发现文档。当我设置options.Authority
为内部服务名称时,用户将被重定向到他们无法访问的授权端点。
我已经尝试在 IS4: 和 & 中配置Authority
所有PublicOrigin
这些IssuerUri
。
虽然 AKS 使我能够解析外部 DNS 并通过某种魔法正确路由,但由于此解析问题,我无法在本地开发。
我能想到的选项是:
- 更新 K8s 以强制 pod 进行“完整”DNS 查找。
- 更新 IS4 以使服务器使用一组 URL 进行通信,而用户使用另一组进行通信。
我在这两个主题上都找不到太多,所以欢迎提出建议。
理想情况下,我希望 K8s 服务使用内部服务名称进行通信,并且当用户需要进行身份验证时,它们会被定向到公开可用的地址。
解决方案
事实证明,不允许使用内部服务名称(“各方必须使用相同的 DNS 名称”):https ://github.com/IdentityServer/IdentityServer4/issues/3568#event-2588006001