如何从Google API中分配G Suite用户的自定义角色?

问题描述 投票:0回答:1

我有一个内部应用程序,用户应该可以使用我们公司的G Suite凭据登录。我在G Suite中做了几个自定义角色,我打算在应用程序中使用这些角色来确定他们可以在其中做什么。

我正在使用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/<MY_CUSTOMER_ID>/roleassignments?userKey=<MY_USER_ID>,并获得用户已分配给他们的角色列表。

问题是,如果我使用我的超级管理员用户,一切都很好,但是当使用没有超级管理员权限的测试用户时,我会从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 Suite中创建的自定义角色的访问权限,但是我不知道该怎么做。我尝试在Role Admin Privileges视图中打勾所有内容,但没有任何效果。仅当我赋予我的测试帐户“超级管理员”特权时,对Google API的调用才能起作用。

google-api google-oauth2 gsuite
1个回答
0
投票

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

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

© www.soinside.com 2019 - 2024. All rights reserved.