4

我们希望借助 Bigquery 和 Cloud Storage 服务实现分析工具。该工具应在 App Engine 上运行并公开 REST 接口,以便所有请求都通过该接口并随后转发到 Bigquery。授权对 Bigquery 的访问应基于 App Engine 服务帐户(App Identity API)。但是,我们还需要对工具客户端进行身份验证。客户端始终是另一个应用程序或服务,因此 OAuth 2.0 和基于 Web 浏览器的身份验证对我们来说是不可接受的。有没有办法我们可以实现这种身份验证并以某种方式将其与 Bigquery 云存储 ACL 绑定?

考虑如下情况。我们域中的客户已获得 Google 帐户。它向我们的 REST 接口发送请求,并提供凭据(电子邮件和密码)以及其他详细信息。该工具对客户端进行身份验证并代表其向 Bigquery(或云存储)发送请求。如果客户端在没有正确权限(通过 Bigquery/Cloud Storage ACL 设置)的情况下尝试访问 Dataset(Bigquery)或 Bucket/Entity(Cloud Storage),则禁止访问。

4

1 回答 1

2

我认为我们都需要更多细节。您如何向客户颁发凭据?您是否希望客户端的操作员知道您域上的用户名/密码来验证客户端对您的服务的身份?

一种选择可能是向客户端颁发 OAuth 2.0 刷新令牌,然后他们将该刷新令牌(安全地)放入他们的应用程序配置中,或者您在他们下载应用程序时自动捆绑它。除非被撤销,否则刷新令牌无限期有效。

然后将 OAuth 2.0 刷新令牌直接通过应用引擎应用传递到 BigQuery/Google Cloud Storage。然后可以在 Cloud Storage/BigQuery 中本地处理所有 ACL(哪个客户端有权访问什么)。

您也可以让他们自己在 Web 浏览器中获取令牌,前提是他们有凭据。他们只需在设置应用程序时执行一次,令牌将由应用程序存储。有关将 OAuth 2.0 用于已安装应用程序的指南中的更多信息: https ://developers.google.com/accounts/docs/OAuth2InstalledApp

于 2012-10-20T22:15:31.817 回答