当前位置: 首页 > 知识库问答 >
问题:

如何授权服务帐户访问Google Admin API

戎桐
2023-03-14

我们正在尝试创建一个与谷歌管理SDK的集成,以便能够检索,更新和创建帐户在我们的领域。但是,我们不断收到一个403错误,表明我们没有被授权访问Resource/API。

我们正在使用从一个服务帐户获得的凭据,该帐户启用了域范围的授权,并且具有以下两个作用域:https://www.googleapis.com/auth/admin.directory.user.readonly,https://www.googleapis.com/auth/admin.directory.user。我们正在生成JWT(它也包括这两个作用域),然后向https://www.googleapis.com/oauth2/v4/token发送请求以检索访问令牌。

然后,我们使用访问令牌向https://www.googleapis.com/admin/directory/v1/users?domain=xxxx.com发送请求。我们将访问令牌作为承载令牌包括在内,作为报头的一部分。在响应中,我们得到以下消息:

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

有没有可能澄清一下我们做错了什么?

共有2个答案

居晗日
2023-03-14

问题是JWT必须包括 字段:应用程序请求委托访问的用户的电子邮件地址。

周阳成
2023-03-14

为了使其工作,您必须设置域范围的委托,通过这样做,您的服务帐户将有权访问所讨论的数据。

    <在表中重新定位新创建的服务帐户。在“操作”下,单击“更多vert”,然后单击“编辑”。/LI>
  1. 在服务帐户详细信息中,单击expand_more显示域范围委派,然后确保选中启用G套件域范围委派复选框。/li> 程序的oauth同意屏幕,则必须先进行配置,然后才能启用域范围的委派。按照屏幕上的说明配置oauth同意屏幕,然后重复上述步骤并重新选中复选框。 i="">
 类似资料:
  • 如何在Ruby中为Google Calendar API授权服务帐户?我试过快速入门指南,但失败了。 https://developers.google.com/calendar/quickstart/ruby#step_3_set_up_the_sample 用于授权服务帐户的(过时的)文档只有Java和Python的示例。 https://developers.google.com/ident

  • 文档建议将服务帐户添加到GApps的第三方oauth访问列表必须由域管理员手动完成:https://developers.google.com/drive/delegation#delegate_domain-wide_authority_to_your_service_account 有没有一种方法可以通过身份验证页面来实现这一点?

  • 我已经创建了一个Google云平台服务帐户,,具有存储管理员()角色。 现在,我希望限制此帐户,使其只能访问特定的谷歌云存储(GCS)存储桶()。 现在的问题是,可以访问所有GCS存储桶。我无法从其他GCS存储桶中删除,因为被继承。 那我该怎么办?

  • 我想使用谷歌驱动器作为一个网站的准CMS工作,我正在使内容所有者可以编辑他们的内容使用谷歌驱动器。我希望使用一个可以访问Google Drive的特定用户帐户(在写这篇文章时,服务帐户不能直接访问Google Drive),并且能够与内容所有者共享文档。 在阅读了API和教程之后,我在委托中找到了答案:https://developers.google.com/drive/development

  • 我正在尝试使用django-storages为带有服务帐户json文件的google云存储桶授予权限。但是,只有当我向所有具有对象视图权限的用户授予访问权限时,才能访问桶中的项目。我如何限制桶的公共访问。