我试图连接到使用Cloud (托管)运行的服务。该实例不是公共的,仅在开发中。因此,我使用id令牌进行身份验证,以验证这个链接中给出的连接。
我在这里看到,他们使用身份令牌而不是访问令牌来发出请求。那是为什么?另外,我是否可以使用访问令牌来代替?
发布于 2020-07-28 16:44:46
访问令牌是针对谷歌自己的API (*.googleapis.com)的。例如,(服务帐户,用户帐户)访问令牌允许他们调用Google的API。
然而,“身份标记”是您持有该帐户的证明。这些仍然是标记,但他们是由谷歌签署来证明。您不能使用这些对Google进行API调用。
想象一下这样的场景:有人入侵了您正在调用的私有服务。但是,云运行服务没有执行任何操作的权限。如果您发送了您的access_token,它们可以截获并提取它,以便使用“调用方”服务的权限进行API调用。但是,如果你发送你的identity_token,它除了证明“调用者”是它声称的人之外,没有别的用处。
如果您在使用身份标识时遇到问题,请随时回答另一个问题。
发布于 2020-07-28 18:54:05
除了Ahmet的答案(关于身份令牌和访问令牌之间的区别),我想补充一些见解。
gcloud auth print-identity-token命令并将结果传递给您的应用程序并在代码->中使用它,但是在本地代码执行与用户帐户(以及gcloud命令技巧)之间,以及在GCP (或其他地方)上使用服务帐户的代码执行之间没有一致性。希望这有助于了解如何前进。
https://stackoverflow.com/questions/63138429
复制相似问题