什么是gcloud命令行gcloud auth print-identity-token
的python编程替代方案?
我试图通过http触发器调用Google Cloud Function(仅适用于auth用户),我需要在Authentication头中传递身份令牌。我有一个方法,当我运行GCP应用程序引擎的代码时,它工作得很好。然而,当我在自己的机器上运行这个程序时,我很难找到一种方法来获得这个身份令牌(在那里我可以用gcloud命令行gcloud auth print-identity-token
创建令牌)。
我发现了如何根据this answer创建access-token,但我没有设法理解如何创建identity-token。
感谢您的评分
3条答案
按热度按时间os8fio9y1#
好主题!这是一个很长的路,和几个月的测试和讨论与谷歌。
TL;DR:您不能用您的用户凭证生成身份令牌,您需要有一个服务帐户(或模拟服务)来生成身份令牌。
我发布了an article on this和2个合并请求,以实现Java Google auth库的演变(我更像是Java开发人员,而不是Python开发人员,即使我也为Python OSS项目做出了贡献)here和here。* 如果你想了解gcloud命令缺少了什么,以及它现在是如何工作的,你可以阅读它们。*
在最新的合并请求中,我知道有些东西来自谷歌内部,但到目前为止,我没有看到任何东西……
9udxz4iz2#
如果你有一个服务帐户,你可以模拟,这是从本地/dev机器获取Python中的ID令牌的一种方法。
yiytaume3#
您可以通过
subprocess.check_output
从python运行shell命令,并使用返回值。这对我很有效: