【问题标题】:What should I do to retrieve specific role of user in my project from GCP IAM我应该怎么做才能从 GCP IAM 检索我的项目中用户的特定角色
【发布时间】:2023-04-07 18:44:01
【问题描述】:

我正在创建 Node.js 服务器,它使用 Google Oauth2 对用户进行身份验证。我在 Google Cloud Platform 中创建了我的组织中的项目。而且我已经设置了 Oauth2,因此只有我组织的用户可以被授权使用该服务。 所有用户都将被描述为项目的 IAM 成员,因此每个人都将拥有特定的角色和为其角色授予的权限。现在可以使用 Oauth2 在我的应用程序中对用户进行身份验证和授权(仅限我组织的用户)。问题是我不知道如何从 IAM 检索他们在我的项目中的角色。起初我以为我只需要在授权方法中传递特定的范围(我使用的是 Passport.jsGoogleStrategy)。但后来我意识到只有在用户获得下一个 API 请求的授权后才能完成(这对吗?)。 我已经读过IAM API documentation 很多次,但最终得到的方法是允许我检索角色或策略或可测试权限或在我的项目中创建和使用的东西的预设数组。但我看不到任何方法允许我要求服务检索用户的特定角色和权限(通过电子邮件或谷歌 ID)并将其发回给我,所以我的节点服务器知道这个用户被允许做什么做。也许我需要在其他地方挖掘..

【问题讨论】:

  • 让我重新表述一下:您正在尝试使用 IAM 服务来添加和检查特定于您的应用程序的角色和权限,对吧?不是特定于 Google Cloud 的角色。你能确认一下吗?
  • @guillaume-blaquiere 是的,特定于我的应用程序。

标签: node.js google-cloud-platform oauth-2.0 google-iam google-cloud-iam


【解决方案1】:

您可以使用 CloudResourceManager 服务来检索项目的 IAM 政策。这将包括特定于项目(非继承)的角色绑定:帐户(包括user's)及其 IAM 角色:

https://cloud.google.com/resource-manager/reference/rest/v3/projects/getIamPolicy

【讨论】:

  • 谢谢,伙计!帮了大忙。
  • 我是否必须执行任何其他请求才能检索特定角色的权限?
  • 您将获得一个表示策略 (cloud.google.com/resource-manager/reference/rest/Shared.Types/…) 的 JSON 文档。它由角色键入,因此您需要遍历角色并计算前缀为 user: 的成员条目。重要的是要知道项目的政策只列出了该项目的明确角色分配; 不是继承的分配。
猜你喜欢
  • 2020-08-30
  • 2013-04-18
  • 2018-12-11
  • 1970-01-01
  • 2018-12-30
  • 1970-01-01
  • 1970-01-01
  • 2011-06-01
  • 1970-01-01
相关资源
最近更新 更多