我们希望借助 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),则禁止访问。