python - 如何使用 python 以编程方式获取 GCP 身份令牌
问题描述
gcloud 命令行的 python 编程替代方案是什么 gcloud auth print-identity-token
?
我正在尝试通过 http 触发器(仅适用于身份验证用户)调用 Google Cloud Function,并且我需要在身份验证标头中传递身份令牌。当我在 GCP 应用程序引擎上运行代码时,我的方法效果很好。但是,当我在自己的机器上运行程序时,我很难找到一种方法来获取这个身份令牌(我可以在其中使用 gcloud 命令行创建令牌 gcloud auth print-identity-token
)
我找到了如何根据这个答案创建访问令牌,但我没有设法理解如何创建身份令牌。
先感谢您!
解决方案
好话题!这是一条漫长的路,需要数月的测试和与谷歌的讨论。
TL;DR:您无法使用用户凭据生成身份令牌,您需要有一个服务帐户(或模拟服务)才能生成身份令牌。
如果您有服务帐户密钥文件,我可以共享一段代码来生成身份令牌,但是生成并拥有服务帐户密钥文件在全球范围内是一种不好的做法。
我在此处和此处发布了一篇关于此和 2 个合并请求的文章,以实现 Java Google auth 库的演变(即使我也为 Python OSS 项目做出贡献,我更像是 Java 开发人员而不是 Python 开发人员)。如果您想了解现在缺少什么以及 gcloud 命令是如何工作的,您可以阅读它们。
在最新的合并请求中,我了解到某些东西来自谷歌,内部,但到目前为止,我没有看到任何东西......
推荐阅读
- javascript - 如何将jquery代码行转换为vue
- r - 当在 R 中使用管道功能并且您正在切换顺序时,它们会改变您的数据集吗?
- java - 当应用程序处于 onStop 状态时尝试录制视频时,CameraDevice.StateCallback 获取 onError(值 3)
- python - 蛇游戏不工作我的算法有问题吗?
- sql - 如何在 PostgreSQL 中将列的单元格组合/合并到具有通用用户 ID 的列表中?
- mulesoft - MuleSoft RTF - 工人和控制器的核心
- java - 带有数组和队列的 SJF Java
- python - 将带有 html 元素的字符串转换为 html 标签以在页面上使用
- c++ - 读取文件并忽略空格
- c - 读取陀螺仪数据需要帮助