问题描述
我正在尝试为我的后端服务设置身份识别代理,该服务的一部分位于GCP内,其他位于本地,根据以下链接中的说明 Enabling IAP for on-premises apps和 Overview of IAP for on-premises apps
之后,按照指南,我最终处于局部状态,可以通过IAP完美访问在https端点上服务于GCP的服务。但是,无法通过pods *和外部loadbalancer *访问在本地运行的应用程序。
遵循的当前架构:
已执行的步骤
在GCP项目上
-
在我的情况下(asia-southeast1)在任何具有一个子网的区域中创建了VPC网络
-
使用过的IAP连接器https://github.com/GoogleCloudPlatform/iap-connector
-
为2个域配置了映射。
For app in GCP
-
源:gcp.domain.com
-
目的地:app1.domain.com(位于https端点)
For app in on-prem(Another GCP project)
-
源:onprem.domain.com
-
目的地:app2.domain.com(位于https端点,但不暴露于Internet)
-
在两个项目之间配置了VPN隧道,以便网络被对等
-
为部署创建的负载均衡器启用了IAP。
On-prem
-
在具有一个子网(asia-southeast1)的区域中创建VPC网络
-
在该区域的VPC上创建的VM
-
将该虚拟机分配给实例组
-
创建了内部Https负载均衡器并选择了实例组作为后端
-
带有ssl的安全负载均衡器http
-
设置到第一个项目的VPN隧道
我尝试了什么?
预期行为:
- 用户向app1.domain.com上的loadbalancer请求,IAP通过IAuth对用户进行身份验证和授权,并授予对Webapp的访问权限。
- 用户向app2.domain.com上的loadbalancer请求,IAP通过IAuth对用户进行身份验证和授权,并授予对在本地运行的Webapp的访问权限。
实际行为
- 对app1.domain.com的请求会在验证网站后返回给用户,提示OAuth屏幕。
- 对app2.domain.com的请求在对浏览器进行身份验证后返回OAuth屏幕,返回503-“上游没有健康状况”
注意:
- 我正在使用一个单独的GCP项目来模拟内部部署。
- 两个项目都通过VPN隧道对等。
- 两个对等项目的子网都在同一区域。
- 我在内部部署项目中使用了内部https负载平衡器,以使我的VM在宿主项目中可见,以便外部负载平衡器可以将请求路由到VM的https端点。
**我怀疑如果pod能够访问远程VM,那么问题也可能会得到解决。这只是一个疯狂的猜测。
非常感谢你们。我期待着您的答复。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)