我尝试通过 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 服务通常提供 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] 删除。
我来说两句