当前位置: 首页 > 知识库问答 >
问题:

如何使用用于存储的GCP python sdk验证凭据(google service account json key

端木涵润
2023-03-14

我想验证google服务帐户凭据,我从我的google服务帐户以JSON密钥的形式获得了这些凭据。

我尝试通过在存储云上执行列表桶操作来验证凭据,并取得了成功。

现在,我尝试了一个否定的场景,从json文件中删除了几个键,如:“type”:“yy”,“private_key_id”:“dsfdngdhgdsafa”,“client_id”:“12133423123”,

但我仍然能够访问我的遗愿列表,没有错误,但当我改变任何其他键,除了上面显示的:“private_key”,然后它失败。

有谁能帮我解释一下,这些钥匙根本不是必需的或者是专用的吗?为什么会出现这种情况?或其他验证凭据的方法?

共有1个答案

黎玺
2023-03-14

唯一需要的项目是私钥private_key和电子邮件地址client_email。其他所有内容都是注释供您使用(或客户端库),或者提供其他信息供在Google端查找,例如:private_key_id

我不是为客户机库说话,这些客户机库可能实现也可能不实现它们自己的常识性错误检查。有关详细信息,请研究您正在使用的库。

Google没有/提供任何服务帐户JSON密钥文件的安全性或验证。您负责保护文件及其内容。

您可以使用服务帐户,创建一个签名的JWT,并调用Googleendpoint。无效的JWT将返回错误。

https://www.googleapis.com/oauth2/v4/token

我写过一篇文章,介绍了如何使用服务帐户、创建签名的JWT并交换OAuth访问令牌。我的文章包括工作的Python源代码。您可以使用我的代码作为示例来创建您自己的验证函数。

 类似资料:
  • 如果你使用的是 SSH 方式连接远端,并且设置了一个没有口令的密钥,这样就可以在不输入用户名和密码的情况下安全地传输数据。 然而,这对 HTTP 协议来说是不可能的 —— 每一个连接都是需要用户名和密码的。 这在使用双重认证的情况下会更麻烦,因为你需要输入一个随机生成并且毫无规律的 token 作为密码。 幸运的是,Git 拥有一个凭证系统来处理这个事情。 下面有一些 Git 的选项: 默认所有都

  • 通过证书口述的正确方法是什么?

  • 我试图与谷歌云存储使用凭证令牌进行身份验证。在node.jsGCS api文档中找不到关于如何做到这一点的示例。它们指示生成并下载包含私钥的json文件,然后链接到文件系统上的路径,如下所示: 这个很好用。 然而,我不想将我的密钥保存为JSON文件,而是创建凭据并将其保存为环境变量: 我尝试使用服务号HMAC访问密钥从桶的设置、互操作性菜单中获取此令牌。 当我尝试使用上面的身份验证方法从bucke

  • 我试着遵循这些说明:https://stackoverflow.com/a/40312117/21728基本上是这样做的: 但是当我执行任何网络操作时,我收到此错误: 我想这是合乎逻辑的,因为确实没有X11显示屏。 如何让Git凭证缓存在Windows上的Ubuntu(WSL)上工作?

  • 我从以下链接获得代码:为服务器到服务器生产应用程序设置身份验证 问题是,我的代码遇到了这个问题: Dialogflow-ixksso@maintest-vskxxy.iam.gServiceAccount.com没有对项目160007643358的Storage.Buckets.List访问权限。 我是在我的‘谷歌云平台’上的免费选项。可能free选项不允许以这种方式进行身份验证。 我在这方面没有