如何使用 python 以编程方式获取 GCP 身份令牌

时间:2021-02-06 12:04:13

标签: python python-3.x google-cloud-platform google-iam

gcloud 命令行 gcloud auth print-identity-token 的 Python 编程替代方法是什么?

我正在尝试通过 http 触发器调用 Google Cloud Function(仅适用于 auth 用户),我需要在 Authentication 标头中传递身份令牌。当我在 GCP 应用引擎上运行代码时,我有一个很好的方法。但是,当我在自己的机器上运行程序时,我很难找到获取此身份令牌的方法(我可以在其中使用 gcloud 命令行 gcloud auth print-identity-token 创建令牌)

我找到了如何根据 this answer 创建访问令牌,但我没能理解如何创建身份令牌

先谢谢你!

1 个答案:

答案 0 :(得分:1)

好话题!这是一个漫长的过程,需要与 Google 进行数月的测试和讨论。

TL;DR:您无法使用用户凭据生成身份令牌,您需要拥有服务帐户(或模拟服务)才能生成身份令牌。

如果您有服务帐户密钥文件,我可以共享一段代码来生成身份令牌,但生成和拥有服务帐户密钥文件在全球范围内都是不好的做法。


我发布了 an article on this 和 2 个合并请求,以实现 Java Google 身份验证库的演变(即使我也为 Python OSS 项目做出贡献,我更像是 Java 开发人员而不是 Python 开发人员)herehere如果您想了解现在缺少什么以及 gcloud 命令的工作原理,可以阅读它们。

在最新的合并请求中,我了解到有一些东西来自谷歌内部,但到目前为止,我什么也没看到......