首页 > 解决方案 > 如何使用 python 以编程方式获取 GCP 身份令牌

问题描述

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

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

我找到了如何根据这个答案创建访问令牌,但我没有设法理解如何创建身份令牌

先感谢您!

标签: pythonpython-3.xgoogle-cloud-platformgoogle-iam

解决方案


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

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

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


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

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


推荐阅读