我们希望借助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(云存储),则禁止访问.
最佳答案 我想我们都需要更多这方面的细节.您是如何向客户发放凭证的?您是否希望客户的操作符知道您域中的用户名/密码,以便为您的服务验证客户端?
一种选择可能是向客户端发出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