Google cloud platform &引用;没有OAuth的服务帐户授权;,我们可以通过这种方法从谷歌云存储中获取文件吗?
根据这份文件,它说 如果要调用的API在中发布了服务定义,则可以使用JWT而不是访问令牌进行授权API调用 我在Github存储库上看到了发布,但我似乎无法使用文档中的方法在Google云存储上获取文件。根据文档步骤3中显示的JWT头和有效负载示例,我做了以下调整Google cloud platform &引用;没有OAuth的服务帐户授权;,我们可以通过这种方法从谷歌云存储中获取文件吗?,google-cloud-platform,google-cloud-storage,Google Cloud Platform,Google Cloud Storage,根据这份文件,它说 如果要调用的API在中发布了服务定义,则可以使用JWT而不是访问令牌进行授权API调用 我在Github存储库上看到了发布,但我似乎无法使用文档中的方法在Google云存储上获取文件。根据文档步骤3中显示的JWT头和有效负载示例,我做了以下调整 将kid从abcdef1234567890更改为我的服务帐户private\u key\u id 将iss和sub更改为我的服务帐户client\u email 将aud更改为https://storage.googleapis.c
- 将
从kid
更改为我的服务帐户abcdef1234567890
private\u key\u id
- 将
和iss
更改为我的服务帐户sub
client\u email
- 将
更改为aud
https://storage.googleapis.com/
- 将
和iat
更改为现在和现在+1小时exp
http://storage.googleapis.com//path/file
但我一直收到这样的回复
<?xml version='1.0' encoding='UTF-8'?><Error><Code>AuthenticationRequired</Code><Message>Authentication required.</Message></Error>
我们真的可以在谷歌云存储中使用这种方法吗?我做错什么了吗
请注意,我可以使用oauth访问令牌访问文件,但我不希望在请求获取文件之前先请求获取访问令牌。是的,您可以使用这种方法。重要的一点是,服务帐户私钥用于对请求进行签名,以验证您是否具有适当的权限。然而,这种方法在谷歌云中正在消亡。我建议使用OAuth访问令牌而不是签名JWT。向谷歌额外发出的用JWT交换代币的请求很小,每小时只需执行一次。我不确定,但是Google查找公钥以验证您的私钥签名可能会增加开销,从而增加延迟。是的,您可以使用这种方法。重要的一点是,服务帐户私钥用于对请求进行签名,以验证您是否具有适当的权限。然而,这种方法在谷歌云中正在消亡。我建议使用OAuth访问令牌而不是签名JWT。向谷歌额外发出的用JWT交换代币的请求很小,每小时只需执行一次。我不确定,但谷歌查找公钥以验证私钥签名可能会增加开销,从而增加延迟。