1

我可以使用获取服务帐户的访问令牌

gcloud auth print-access-token --impersonate-service-account=<my-service-account>

假设我从某个地方(例如在环境变量中)有这样的令牌,我如何使用它来验证例如Google Cloud Storage Client SDK

我查看了Google Auth包中各种包的文档,但我发现没有一个似乎接受令牌作为授权方法。

4

2 回答 2

0

如果您查看需要提供更多配置数据(例如项目 ID 等)的代码,我不确定访问令牌对于 Python SDK 是否足够......(也可以通过环境设置,但需要完成)。通常,如果您设置了所有正确的环境变量,则身份验证应该使用令牌工作。

您遇到的错误是什么,也许您缺少其他一些配置?

于 2020-10-21T11:11:15.213 回答
0

我已经能够在 python 中获取和使用 GCloud 访问令牌,如下所示(进程所有者需要该Service Account Token Creator服务的权限):

from google.cloud.iam_credentials_v1 import IAMCredentialsClient
from google.oauth2.credentials import Credentials
import googleapiclient.discovery

response = IAMCredentialsClient().generate_access_token(
    name=f'projects/-/serviceAccounts/{service_id}',
    scope=['https://www.googleapis.com/auth/gmail.insert'],
)
service = googleapiclient.discovery.build(
    'gmail',
    'v1',
    credentials=Credentials(response.access_token), <= use your token here
)

不幸的是,我无法使用这种语法设置域范围的委派

于 2021-08-02T11:19:57.627 回答