使用服务帐户进行Google Admin SDK身份验证

时间:2020-02-05 14:45:30

标签: google-cloud-platform google-api google-admin-sdk service-accounts google-directory-api

我的团队当前正在开发一个应用程序,以使用Admin SDK在GCP中列出我公司的域用户,以用于入职和离职。

我们正在使用服务帐户来执行此操作,并且已经在Google Admin的高级设置中添加了admin.directory.user.readonly范围。 Admin SDK API已激活,我们可以在“凭据”区域中看到服务帐户。

当我们使用参数viewType=domain_publicdomain=[our domain]调用https://www.googleapis.com/admin/directory/v1/users端点时,同时使用由oauth2l生成的访问令牌,我们收到以下消息:

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

是否可以应用我们没有愿景的任何域限制?

1 个答案:

答案 0 :(得分:3)

该服务帐户无权为您的G Suite实例调用Directory APi。它有权访问的是在您授予其访问权限的Directory API范围内,充当您域中的用户。

获取服务帐户凭据时,需要添加sub=admin@yourdomain.com参数,以便您充当域管理员,而不是服务帐户。参见:

https://developers.google.com/identity/protocols/OAuth2ServiceAccount

还有一些代码示例,位于:

https://developers.google.com/admin-sdk/directory/v1/guides/delegation