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

Jac*_*ack 3 python python-3.x google-cloud-platform google-iam

gcloud 命令行的 python 编程替代方案是什么 gcloud auth print-identity-token

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

我找到了如何根据此答案创建访问令牌,但我无法理解如何创建身份令牌

先感谢您!

gui*_*ere 5

很棒的话题!这是一条漫长的道路,需要与谷歌进行数月的测试和讨论。

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

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


在此处此处发布了一篇关于此问题的文章和 2 个合并请求,以在 Java Google auth 库中实现演变(我是 Java 开发人员而不是 Python 开发人员,即使我也为 Python OSS 项目做出了贡献)。如果您想了解缺少的内容以及 gcloud 命令目前的工作原理,您可以阅读它们。

在最新的合并请求中,我了解到有些内容来自谷歌内部,但到目前为止,我没有看到任何内容......