【发布时间】:2020-09-23 13:23:11
【问题描述】:
我们正在使用 React 构建一个小型 Web UI,将由 GCP App-Engine(标准)提供服务。当客户的员工单击其内部 GIS 系统内的链接时,UI 将向他们显示图像轮播以及一些图像元数据。我们正在寻求对这些调用进行身份验证,因为 App-Engine 端点将公开,并希望使用 GCP 服务帐户私钥,客户端将使用该私钥创建一个限时 JSON Web 令牌,该令牌将提供临时访问 GIS 用户时,他们打开 web-UI。我们关注this GCP documentation。总结:
- 我们在 GCP 中创建一个具有必要 IAM 权限的新服务帐户以及一个密钥
- 我们与客户端共享私钥,然后他们使用该私钥签署 Json Web 令牌,当用户从其 GIS 系统访问我们的 Web-UI 时,该令牌在调用中传递给我们的端点
- 调用由 GCP 后端 (ESP/OpenAPI) 进行身份验证
问题:这是外部系统访问 GCP 资源的推荐方法还是有更好的模式更适用于这种情况(外部系统访问 GCP 资源)?
【问题讨论】:
-
您好,当您谈到端点时,您建议您使用谷歌云端点吗?还是您指的是 Appengine 上托管的简单 URL?
-
简单的 app-engine 端点虽然我们也对 Cloud Endpoints 开放
-
嗯,读到你,我不会自发地想到你描述的身份验证流程。对我来说,它适合调用后端可能位于 Appengine 上的 API 的场景。在单页应用程序的情况下,您宁愿考虑像 Express (Node)、SpringBoot (Java) 这样的框架......在您的特定情况下,它可能看起来有点矫枉过正或不合适,您是否考虑过 Google IAP? cloud.google.com/iap/docs 使用它,您的前提“因为 App-Engine 端点将被公开”消失了。
-
@chaiyachaiya:感谢 IAP 参考。不知道这是一个选项,但是客户需要一个更简单的实现,我认为我们最初的 JWT 方法可能适合我们的需求。
标签: authentication google-app-engine google-cloud-platform jwt