App Engine和Bigquery身份验证

时间:2012-10-19 18:45:54

标签: google-app-engine google-bigquery google-cloud-storage

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

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

1 个答案:

答案 0 :(得分:2)

我认为我们都需要更多细节。您是如何向客户发放凭证的?您是否希望客户的运营商知道您域中的用户名/密码,以便为您的服务验证客户端?

一个选项可能是向客户端发出OAuth 2.0刷新令牌,并将这个刷新令牌放入其应用配置中(安全地),或者在下载应用时自动捆绑它。刷新令牌无限期有效,除非被撤销。

然后将OAuth 2.0刷新令牌直接通过app引擎应用程序传递到BigQuery / Google Cloud Storage。然后,可以在Cloud Storage / BigQuery中本地处理所有ACL(客户端具有哪些权限)。

如果他们有凭据,您也可以让他们自己在网络浏览器中获取令牌。他们在设置应用程序时只需要一次执行此操作,并且应用程序将存储令牌。有关为已安装的应用程序使用OAuth 2.0的指南中的更多信息: https://developers.google.com/accounts/docs/OAuth2InstalledApp