【问题标题】:Setting up Authentication for API hosted in Google App Engine Flexible为托管在 Google App Engine Flexible 中的 API 设置身份验证
【发布时间】:2018-01-11 15:35:30
【问题描述】:

我在 Google App Engine 中托管了一个 REST API。 (API 位于灵活环境中的 Docker 容器中)。

我只需要支持内部 API 调用(来自同一个 App Engine 项目中的另一个服务)并且开发人员测试能够直接调用它(我不想要用户身份验证,但我应该仍然可以访问它使用 application_default_credentials...我只是不确定如何)

您能否指导我查看有关如何设置的文档或示例?
谷歌文档非常缺乏。

【问题讨论】:

  • 某种相关(减去特定于 cron 的内容),请查看 answer 中的第一个项目符号。我实际上并没有使用 flex env,所以 YMMV。值得一试,我会说。
  • 因此,虽然这确实保护了它(现在禁止 403),但没有关于如何允许服务器到服务器通信的文档。我所做的所有阅读都表明,设置login: admin 还需要其他服务器以管理员帐户身份登录。
  • 嗯,login: admin 应该允许从同一个 GAE 应用程序访问(例如,不同的服务)......但它不允许应用程序之外的其他服务器,所以如果你需要的话您需要重新考虑该方法的访问类型 - 您几乎必须使用身份验证,并且您需要自己实现“内部”访问控制。就我个人而言,我会放弃手动测试要求,或者更确切地说,以某种方式通过应用程序本身的另一项服务将其集中起来,这样我就可以保留更简单的 login: admin 解决方案。

标签: google-app-engine authentication app-engine-flexible


【解决方案1】:

您有多种选择,包括:

App Engine 文档指出 recommended approach is OAuth 用于需要身份验证的微服务。

第二种选择是使用Cloud Endpoints 和service account authentication。

第三,您可以使用Identity-Aware Proxy 来保护服务器。客户端可以从metadata server 获取身份令牌。

【讨论】:

  • 哈哈,谢谢回复(3年后)。我们最终使用 Kubernetes 并在其前面使用了一个 api 网关。
猜你喜欢
  • 2017-10-09
  • 2015-04-23
  • 1970-01-01
  • 2014-04-30
  • 2011-03-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-01-02
相关资源
最近更新 更多