【问题标题】:Google Cloud storage: Grant permission to OAuth 2.0 client谷歌云存储:向 OAuth 2.0 客户端授予权限
【发布时间】:2017-07-06 10:09:59
【问题描述】:

我尝试通过 REST 从谷歌云驱动器存储桶下载文件。但是,如果我使用我创建的 oAuth 2.0 客户端的 access_token,则会收到“权限不足”错误(它适用于我的 googel 帐户的访问令牌)。

那么,我可以在云平台的哪个位置授予 oAuth2 客户端访问我要下载文件的存储桶的权限?

谢谢

【问题讨论】:

    标签: rest google-app-engine oauth google-cloud-platform google-cloud-storage


    【解决方案1】:

    TL;DR - 在请求 OAuth2.0 访问令牌时,您很可能错过了请求正确范围的步骤。请使用 Google Cloud Storage API 查看supported scopes。访问令牌通常会在 60 分钟后过期,当它过期时,您需要使用刷新令牌来获取新的访问令牌。

    请阅读Google Cloud Storage Authentication页面了解详细信息。

    Scopes

    授权是确定哪些权限的过程 经过身份验证的身份具有一组指定的资源。 OAuth 使用 scopes 确定是否授权了经过身份验证的身份。 应用程序使用凭证(从以用户为中心或 以服务器为中心的身份验证流程)以及一个或多个范围 从 Google 授权服务器请求访问令牌以 访问受保护的资源。

    例如,具有访问权限的应用程序 A 具有read-only 范围的令牌只能读取,而具有 具有read-write 范围的访问令牌可以读取和修改数据。两者都不 应用程序可以读取或修改对象的访问控制列表和 水桶;只有具有full-control 范围的应用程序才能这样做。

    Authentication in Google Cloud

    Google Cloud 服务通常提供 3 种主要的身份验证模式:

    • End User Account credentials - 在这里,您直接使用他们的谷歌帐户或OAuth 2.0 访问令牌作为最终用户进行身份验证。当requesting an access tokenyou will need to provide the scopes 确定使用该访问令牌的客户端可以访问哪些 API。

      OAuth2.0 凭据 - 如果授予权限范围,则可以访问用户的私人数据。此外,Cloud IAM lets you control fine grained permissions 通过向此用户帐户授予角色。

    • Service Accounts - 这里是create a service account,它与特定的 GCP 项目相关联(并因此向该项目计费)。这些主要用于从您的代码或任何 Google Cloud 服务(如 Compute Engine、App Engine、Cloud Functions 等)中自动使用。您可以使用 Google Cloud IAM 创建服务帐户。

      每个服务帐号都有一个关联的电子邮件地址(您在创建服务帐号时指定),并且您需要为此电子邮件地址为您的 Cloud Storage 存储桶/对象授予适当的角色。如果授予正确的角色,这些凭据可以访问用户的私人数据。

    • API keys - 这里你得到一个与 GCP 项目相关的加密字符串。它仅受极少数 Google Cloud API 支持,并且无法限制 API 密钥的范围(与服务帐户或 OAuth2.0 访问令牌不同)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-03-21
      • 1970-01-01
      • 1970-01-01
      • 2015-01-01
      • 1970-01-01
      • 2021-08-01
      • 1970-01-01
      • 2016-06-17
      相关资源
      最近更新 更多