首页 > 解决方案 > 如何使用 Google Cloud Service Account 在两个服务之间进行身份验证

问题描述

我在 Google Compute Engine 上运行了两项服务。这些服务是用 Go 编写的。每个服务都有单独的 GCP 服务帐户。调用另一个服务时,我可以使用此服务帐户对一项服务进行身份验证吗?有适合它的API吗?

我不知道如何验证访问令牌的身份?正如其中一个答案所指出的,我无法将自定义权限(角色+资源)添加到 GCP IAM。

有大量关于验证 Google Cloud Platform API 调用的文档,但没有关于使用服务帐户来保护自己的端点的文档。

关键是,我不想管理单独的一组权限,一个用于服务帐户,另一个用于 KeyCloak 或其他系统。

标签: google-cloud-platformgoogle-compute-enginegoogle-authentication

解决方案


但没有关于使用服务帐户来保护自己的端点。

我不确定你想做什么。您可以使用服务帐户的功能进行自己的检查。

为了简单起见,服务帐户是用于识别呼叫者的私钥和电子邮件。您可以在调用方使用这些信息构建签名令牌。

在接收方,您可以获取此令牌,验证签名并提取调用方服务帐户的电子邮件。如果没问题,您的呼叫就通过了身份验证!

如果你想检查授权,你必须检查它是否在你的应用程序中正确。您不能拥有自定义 GCP 权限,因为您必须在接收方处理每封电子邮件(用户或服务帐户)的权限数据库。


推荐阅读