Google 端点:IDE(或终端)在上传代码时如何向 GAE 进行身份验证?

Google Endpoints: How does the IDE (or terminal) authentify to GAE when uploading code?

我是 Google 端点和数据存储的新手。我已经学习了几个教程,例如这个教程:https://github.com/GoogleCloudPlatform/endpoints-codelab-android

我的问题是:当我们将 Endpoints 后端应用程序部署到 Google App Engine 时使用的安全机制是什么? Google App Engine 如何知道您是项目的所有者?对于通过终端部署(参见上述教程的第 6 步)和通过 IDE(例如通过 Eclipse 中的 Maven)部署,我都有同样的问题。

我想象终端(或 IDE)以某种方式从浏览器获取您的凭据,该凭据已登录到 GAE 控制台,但我完全不确定这是不是一个很好的解释。

谢谢! :-)

部署到 Google App Engine 时,有多种身份验证方法。推荐的方法使用 OAuth2 与 Google 进行身份验证(另一种方法见下文)。 OAuth2是你说的教程中使用的方法(在你发的link中搜索oauth),通过setting

激活
appcfg {
  oauth2 = true
}

在该教程的 build.gradle 文件中。如果您更喜欢命令行 appcfg 界面,请使用标志 appcfg --oauth2.

当您安装 Google Cloud SDK 时,您会看到一个网页,您在该网页中授权 SDK 访问和修改各种 Google 云服务,包括 App Engine。 SDK 在本地存储一个令牌,表示允许使用您的用户名将其部署到 App Engine。 oauth2 = true 行告诉 appcfg 使用此令牌请求访问 App Engine。

如果愿意,您可以导航至 Google 的 Account Permissions 页面来查看(和撤销)此授权。您应该会看到 Google Cloud SDK 的条目,单击它会显示 SDK 已获得访问 App Engine 的授权。如果您点击 "Revoke",本地存储的令牌将不再有效,您需要重新授权才能使用 Cloud SDK 的大部分功能。

如果出于某种原因你不想依赖 oauth2(例如,如果出于安全原因你想在每次部署时输入密码),那么你可以删除 oauth2 = true 行(或--oauth2 命令行参数)。这将导致 appcfg 在您每次部署时提示您输入 Google 用户名和密码。但是,这不太方便,因为 appcfg 不会存储您的密码,而且它不支持双因素身份验证。因此,如果您的 Google 帐户使用双因素身份验证(强烈推荐),您将需要使用此方法的应用密码。