谷歌云API通过证书进行身份验证(C#)

谷歌云API通过证书进行身份验证(C#),c#,google-cloud-platform,C#,Google Cloud Platform,谷歌云似乎提供了两个版本的API客户端库:和。后者似乎是前者的继承者 现在,传统的Google API客户端库提供了一种通过FromCertificate()方法从证书创建ServiceAccountCredential的方法。在谷歌云客户端库中,我似乎找不到这样做的方法。似乎当您不在GCP中运行时,使用Google云客户端库访问Google服务的唯一方法是下载服务帐户密钥(JSON)并将其存储在文件中,然后通过环境变量将其提供给库 那么,是否不支持来自Google云客户端库的证书的身份验证 那

谷歌云似乎提供了两个版本的API客户端库:和。后者似乎是前者的继承者

现在,传统的Google API客户端库提供了一种通过
FromCertificate()
方法从证书创建
ServiceAccountCredential
的方法。在谷歌云客户端库中,我似乎找不到这样做的方法。似乎当您不在GCP中运行时,使用Google云客户端库访问Google服务的唯一方法是下载服务帐户密钥(JSON)并将其存储在文件中,然后通过环境变量将其提供给库

那么,是否不支持来自Google云客户端库的证书的身份验证

那么,来自谷歌云客户端库的证书的身份验证不是吗 支持

取决于使用证书进行身份验证的定义。谷歌云SDK和各自的API不支持证书授权。谷歌使用的证书的唯一部分是私钥。存在于P12/PFX证书文件和JSON密钥文件中的相同私钥

P12/PFX证书格式是传统的,不再推荐使用。较新的JSON密钥格式包含更多信息,可改进验证期间的密钥查找等项。但是,唯一需要的项是私钥,这两种格式相同,但编码不同(二进制与PEM)

似乎是使用谷歌浏览器访问谷歌服务的唯一途径 当您不在GCP中运行时,云客户端库是下载 服务帐户密钥(JSON)并将其存储在文件中,然后提供 通过环境变量连接到库

我认为您做出了一个错误的假设,即您可以创建自己的证书文件并将其用于授权。您只能使用谷歌云生成的私钥。因此,您对P12/PFX证书文件和JSON密钥文件都有相同的限制。您必须下载这两种类型,除非您正在使用服务帐户模拟或在支持元数据服务器获取令牌的Google云服务上运行

现在,遗留的GoogleAPI客户端库提供了一种创建 通过FromCertificate()从证书获取ServiceAccountCredential 方法。在谷歌云中,我似乎找不到这样做的方法 客户端库

这些库支持从JSON加载服务帐户。您可以从P12/PFX证书中提取私钥,在PEM中编码,构建JSON结构,然后继续,就像您最初拥有JSON密钥格式的服务帐户一样

在我的网站上有许多关于P12证书服务帐户的文章,包括从P12转换为JSON

我的建议是切换到JSON格式的服务帐户

那么,来自谷歌云客户端库的证书的身份验证不是吗 支持

取决于使用证书进行身份验证的定义。谷歌云SDK和各自的API不支持证书授权。谷歌使用的证书的唯一部分是私钥。存在于P12/PFX证书文件和JSON密钥文件中的相同私钥

P12/PFX证书格式是传统的,不再推荐使用。较新的JSON密钥格式包含更多信息,可改进验证期间的密钥查找等项。但是,唯一需要的项是私钥,这两种格式相同,但编码不同(二进制与PEM)

似乎是使用谷歌浏览器访问谷歌服务的唯一途径 当您不在GCP中运行时,云客户端库是下载 服务帐户密钥(JSON)并将其存储在文件中,然后提供 通过环境变量连接到库

我认为您做出了一个错误的假设,即您可以创建自己的证书文件并将其用于授权。您只能使用谷歌云生成的私钥。因此,您对P12/PFX证书文件和JSON密钥文件都有相同的限制。您必须下载这两种类型,除非您正在使用服务帐户模拟或在支持元数据服务器获取令牌的Google云服务上运行

现在,遗留的GoogleAPI客户端库提供了一种创建 通过FromCertificate()从证书获取ServiceAccountCredential 方法。在谷歌云中,我似乎找不到这样做的方法 客户端库

这些库支持从JSON加载服务帐户。您可以从P12/PFX证书中提取私钥,在PEM中编码,构建JSON结构,然后继续,就像您最初拥有JSON密钥格式的服务帐户一样

在我的网站上有许多关于P12证书服务帐户的文章,包括从P12转换为JSON


我的建议是切换到JSON格式的服务帐户。

您的问题似乎假设有两个不同的身份验证库,但实际上没有。您可以使用加载了
FromCertificate
的ServiceAccountCredential在Google云客户端库中进行身份验证。乔恩,谢谢你的评论。抱歉,我找不到您链接到的页面上的什么地方,该页面描述了如何使用ServiceAccountCredential登录到Google云客户端库。我根本看不到ServiceAccountCredential在该页面上列出。不,因为它不是SAC特定的-它是任何凭据。遵循
UserCredential
示例,仅使用ServiceAccountCredential.Ah,thx。我试试看。你的问题似乎假设有两个不同的auth库,但实际上没有。您可以使用加载了
FromCertificate
的ServiceAccountCredential在Google云客户端库中进行身份验证。乔恩,谢谢你的评论。对不起,我在那页找不到你的位置