如何使用 Google Cloud IAM 角色使用 Google OAuth 进行基于角色的 Web 应用程序控制

How to use Google Cloud IAM Roles for Role Based Web Application control using Google OAuth

我使用 Google OAuth 登录我的 Web 应用程序,该应用程序是在 Google Cloud Platform 中作为项目创建的,即 Project1。

我有一个用户在此项目中具有自定义角色。使用 Google 帐户登录后,我可以使用 Google_Client(PHP 库 - google/apiclient)获取用户信息。但是,我很难弄清楚如何为登录用户获取自定义角色。我尝试使用 Google_Service_iam 但未捕获 Google_Service_Exception: 404 Not Found.

这是利用 Google IAM 构建基于角色的控制 Web 应用程序的正确方法吗?

虽然自己构建它在某种程度上是可能的,但我不会直接使用 IAM 作为身份验证提供程序。相反,请使用 Identity Platform or something like Auth0 or Okta. Myself, I prefer Firebase Authentication,它可以轻松与所有流行的语言和框架集成。

IAM 旨在授权 GCP 内的用户,而不是自定义 web-app。在您的设置中,您必须将每个未来的用户添加到 Gsuite 和 IAM,这非常昂贵并且不是为此目的而设计的。

我建议您查看面向应用程序开发人员的 Authentication Strategies

由于您需要代表最终用户授予 Google 云 API,您可以使用协议 OAuth 2.0 协议。该应用程序启动 OAuth 同意流程,您的应用程序将在其中接收用户的凭据。使用这些凭据,它可以代表用户调用 Google 云 API。

Nebulastic 还建议的另一个解决方案是 Cloud Identity Platform,您可以在其中配置自定义声明以根据用户的角色限制用户对资源的访问。