Google Cloud 存储:授予 OAuth 2.0 客户端权限

流水

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

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

谢谢

晚礼服

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

请阅读Google Cloud Storage 身份验证页面了解详细信息。

范围

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

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

Google Cloud 中的身份验证

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

  • 最终用户帐户凭据- 在这里,您可以直接使用最终用户的 google 帐户或OAuth 2.0访问令牌进行身份验证请求访问令牌则需要提供范围,其确定哪些API是要使用访问令牌的客户端访问。

    OAuth2.0 凭证 - 如果授予正确的范围,则可以访问用户的私人数据。此外,Cloud IAM 允许您通过向此用户账户授予角色来控制细粒度的权限

  • 服务帐户- 在此处创建与特定 GCP 项目相关联的服务帐户(并由此向该项目收费)。这些主要用于从您的代码或任何 Google Cloud 服务(如 Compute Engine、App Engine、Cloud Functions 等)中自动使用。您可以使用 Google Cloud IAM 创建服务帐户。

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

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

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

Spring Security中具有密码授予权限的oAuth2客户端

是否可以在不授予访问客户端GCP项目额外权限的情况下启用Google Cloud Endpoints Portal?

Google OAuth-存储客户端ID的位置

Google Cloud OAuth授权错误:此客户端仅限于其组织内的用户

Spring Security 5 OAuth2客户端密码授予类型

Azure 应用 oauth2 在客户端凭据授予类型中生成错误的访问令牌

OAuth2:使用JWT客户端身份验证的JWT授权授予和客户端凭据授予之间有什么区别?

如何覆盖Spring Cloud OAuth2客户端自动配置?

是否可以授予服务器读/写权限,但不能授予对Google Cloud Storage存储桶的删除权限?

如何在不将凭据存储在本地的情况下建立google oAuth客户端?

将Spring Boot和OAuth2客户端从使用客户端凭据流转换为授权代码授予流

在Google OAUTH2上找不到客户端密钥

Google OAuth2的客户端机密到底是什么?

带有Google提供者的Spring Oauth2客户端不断要求认证

从 Google Passport 策略中检索 OAuth2 客户端

OAuth2 客户端凭据

如何授予Google Cloud App Engine访问Firebase存储桶的权限

向第三方授予对Google Cloud Storage存储桶的访问权限

在NoSQL数据库中实现Spring oauth2客户端数据存储

如何发送oauth2令牌到客户端并存储它们?

OAuth2刷新令牌。如何在客户端存储它

Google Cloud Storage客户端

为什么授权请求在OAuth2授权代码授予流程中不需要客户端机密?

R:eBay OAuth - 客户端凭据授予请求

使用客户端库授予 OAuth 授权码?

是否可以使用OAuth-客户端凭据授予类型获取Azure Blob存储的访问令牌?

gRPC / proto Google Cloud客户端库与GAPIC Google Cloud客户端库

Google Cloud SDK Python客户端:如何在Cloud Storage存储桶中列出文件?

OAuth2 Open ID客户端身份验证,后跟LDAP用户详细信息和权限