google-app-engine - App Engine 和 Bigquery 身份验证

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

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

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

最佳答案

我认为我们都需要更多细节。您如何向客户颁发凭据?您是否希望客户端的运算符(operator)知道您域中的用户名/密码,以便对您的服务客户端进行身份验证?

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

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

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

关于google-app-engine - App Engine 和 Bigquery 身份验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12980537/

相关文章:

java - 在 Google App Engine 上安排备份

python - 是否可以同时将 Pub/Sub 和 BigQuery 作为 Google Dataflow 中的输入?

google-analytics - 谷歌大查询 : number of sessions that visited a set of pages

php - GAE - 如何从 php 获取谷歌云存储对象的上次修改/重命名日期时间

google-app-engine - 谷歌应用引擎中的ndb.OR操作

python - 通过 Nose 测试与多个实体组运行事务时出错

python - 谷歌应用引擎 blob 存储创建

node.js - 如何在不分区的情况下从bigquery获取所有表id?

node.js - 使用 NodeJS 从 Google Cloud Storage Bucket 下载文件夹

google-cloud-storage - 如何计算桶中对象的数量?