google-cloud-platform - 如何使用 Google Cloud Service Account 在两个服务之间进行身份验证
问题描述
我在 Google Compute Engine 上运行了两项服务。这些服务是用 Go 编写的。每个服务都有单独的 GCP 服务帐户。调用另一个服务时,我可以使用此服务帐户对一项服务进行身份验证吗?有适合它的API吗?
我不知道如何验证访问令牌的身份?正如其中一个答案所指出的,我无法将自定义权限(角色+资源)添加到 GCP IAM。
有大量关于验证 Google Cloud Platform API 调用的文档,但没有关于使用服务帐户来保护自己的端点的文档。
关键是,我不想管理单独的一组权限,一个用于服务帐户,另一个用于 KeyCloak 或其他系统。
解决方案
但没有关于使用服务帐户来保护自己的端点。
我不确定你想做什么。您可以使用服务帐户的功能进行自己的检查。
为了简单起见,服务帐户是用于识别呼叫者的私钥和电子邮件。您可以在调用方使用这些信息构建签名令牌。
在接收方,您可以获取此令牌,验证签名并提取调用方服务帐户的电子邮件。如果没问题,您的呼叫就通过了身份验证!
如果你想检查授权,你必须检查它是否在你的应用程序中正确。您不能拥有自定义 GCP 权限,因为您必须在接收方处理每封电子邮件(用户或服务帐户)的权限数据库。
推荐阅读
- python - 使用 matplotlib 垂直对齐子图标题
- python - 无法在“显式等待”条件下包装“driver.execute_script()”
- python - 重新排序数据并创建新的数据文件
- operator-overloading - 如何获得两个浮点数的平均值
- delphi - Indy FTP 突然断开连接
- python - Cygwin 编译错误(windows 10、python 3.7、visual studio 2019)
- python - 使用 PyLint 计算圈复杂度
- javascript - JointJS 版本 3 中的命名空间问题
- python - 在python脚本内循环执行awk
- php - 如何在 Where 子句中记录没有敏感数据的 SQL 查询?