Google Cloud似乎提供了两个版本的API客户端库:Google API客户端库和Google Cloud客户端库。后者似乎是前者的继承者。
现在,旧版Google API客户端库提供了一种ServiceAccountCredential
通过FromCertificate()
方法通过证书创建证书的方法。我似乎无法在Google Cloud Client库中找到实现此目的的方法。当您不在GCP中运行时,似乎唯一使用Google Cloud Client Libraries访问Google服务的方法是下载服务帐户密钥(JSON)并将其存储在文件中,然后通过环境将其提供给库变量。
因此,是否不支持来自Google Cloud Client库证书的身份验证?
因此,是否不支持来自Google Cloud Client库证书的身份验证?
取决于auth
使用证书的定义。Google Cloud SDK和相应的API不支持证书授权。Google使用的证书的唯一部分是私钥。P12 / PFX证书文件和JSON密钥文件中都存在相同的私钥。
P12 / PFX证书格式是旧格式,不再建议使用。较新的JSON密钥格式包含更多信息,这些信息改进了验证期间的密钥查找等项目。但是,唯一需要的项是私钥,这两种格式都相同,但编码方式不同(二进制与PEM)。
当您不在GCP中运行时,似乎唯一使用Google Cloud Client Libraries访问Google服务的方法是下载服务帐户密钥(JSON)并将其存储在文件中,然后通过环境将其提供给库变量。
我认为您做出的错误假设是可以创建自己的证书文件并将其用于授权。您只能使用由Google Cloud生成的私钥。因此,您对P12 / PFX证书文件和JSON密钥文件都具有相同的限制。除非您正在使用服务帐户模拟或在支持元数据服务器获取令牌的Google Cloud服务上运行,否则必须下载两种类型。
现在,旧版Google API客户端库提供了一种通过FromCertificate()方法从证书创建ServiceAccountCredential的方法。我似乎无法在Google Cloud Client库中找到实现此目的的方法。
这些库支持从JSON加载服务帐户。您可以从P12 / PFX证书中提取私钥,使用PEM进行编码,构建JSON结构,然后像最初拥有JSON密钥格式的服务帐户一样进行操作。
我的网站上有许多有关P12证书服务帐户的文章,包括从P12到JSON的转换。
我的建议是切换到JSON格式的服务帐户。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句