如何从MERN堆栈应用程序中的身份识别代理获取用户组或角色

问题描述

我有一个用例,其中有2个应用程序:

  • 反应SPA前端,在web.myportal.example上运行
  • Node Express后端,在api.myportal.example上公开了一个REST api

这两个应用程序均已部署到GCP Compute Engine中,并且可以从Internet访问。我能够配置IAP来防止未经授权的访问。我可以指定允许使用UI和API的电子邮件帐户的列表。

我需要的是GCP IAP的授权功能。有一个吗? 简单示例-某些API端点仅应由具有特定组/角色成员身份的人员访问。如何从IAP中提取出来? IAP唯一给我的东西是一个GCP_IAAP_AUTH_TOKEN cookie,由于它的定义,我什至不能使用它。

解决方法

您可以尝试在每个服务(一个用于API,另一个用于APP)之前放置一个LB,并配置IAP以使用它们和grant access accordingly

当应用程序或资源受IAP保护时,它只能是 由具有以下特征的成员(也称为用户)通过代理访问 正确的身份和访问管理(IAM)角色。当您授予 用户通过IAP访问应用程序或资源时, 使用中的产品实施的细粒度访问控制 不需要VPN。当用户尝试访问受IAP保护的 资源,IAP进行身份验证和授权检查。

但是无法配置IAP来根据登录者的身份授予API方法不同的访问级别。它看起来并不像允许这样细粒度的authorisation管理-只有您可以访问或不;

身份验证后,IAP将应用相关的IAM策略来检查是否 用户有权访问所请求的资源。如果用户 在Cloud Console项目上具有受IAP保护的Web App用户角色 资源所在的地方,他们被授权访问 应用。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...