Google api 如何从Google API获得G套件用户的自定义角色?

Google api 如何从Google API获得G套件用户的自定义角色?,google-api,google-oauth,google-workspace,Google Api,Google Oauth,Google Workspace,我有一个内部应用程序,用户应该能够使用我们公司的G套件凭据登录。我在G套件中创建了两个自定义角色,我计划在应用程序中使用这些角色来确定他们可以在那里做什么 我使用Passport进行OAuth2调用,我使用的范围如下: scope: [ 'email', 'https://www.googleapis.com/auth/userinfo.profile', 'https://www.googleapis.com/auth/admin.directory.rolemanagement.

我有一个内部应用程序,用户应该能够使用我们公司的G套件凭据登录。我在G套件中创建了两个自定义角色,我计划在应用程序中使用这些角色来确定他们可以在那里做什么

我使用Passport进行OAuth2调用,我使用的范围如下:

scope: [
  'email',
  'https://www.googleapis.com/auth/userinfo.profile',
  'https://www.googleapis.com/auth/admin.directory.rolemanagement.readonly'
]
列表中的最后一个允许我列出已登录用户在我的应用程序中的所有角色

然后我打电话到
https://www.googleapis.com/admin/directory/v1/customer//roleassignments?userKey=
并获取用户分配给他们的角色列表

问题是,如果我使用超级管理员用户,一切都很好,但是当使用没有超级管理员权限的测试用户时,我从Google API获得以下信息:

{
  errors: [
    {
      domain: 'global',
      reason: 'forbidden',
      message: 'Not Authorized to access this resource/api'
    }
  ],
  code: 403,
  message: 'Not Authorized to access this resource/api'
}

我非常确定我需要授予在G套件中创建的自定义角色的一些访问权限,但我不知道如何做到这一点。我尝试在角色管理权限视图中勾选所有内容,但没有任何效果。只有给我的测试帐户超级管理员权限,对Google API的调用才会起作用。

经过一番调查,显然不可能这样做

由于某些原因,即使经过身份验证,用户也无法获得自己的自定义角色。因此,我必须创建一个服务帐户,并让它模拟一个具有管理员权限的用户来获得角色分配