我应该怎么做才能从 GCP IAM 检索用户在我的项目中的特定角色

What should I do to retrieve specific role of user in my project from GCP IAM

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

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

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