我们正在尝试与Google Admin SDK集成,以便能够在我们的域内检索,更新和创建帐户。但是,我们不断收到403错误,指示我们无权访问资源/ 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发送请求。我们将访问令牌作为Bearer令牌包括在标头中。 在响应中,我们收到以下消息:
{
"error": {
"errors": [
{
"domain": "global",
"reason": "forbidden",
"message": "Not Authorized to access this resource/api"
}
],
"code": 403,
"message": "Not Authorized to access this resource/api"
}
}
是否有可能弄清楚我们做错了什么?
答案 0 :(得分:1)
为此,您必须通过设置domain wide delegation来执行此操作,然后您的服务帐户才能访问有问题的数据。
答案 1 :(得分:0)
问题在于JWT必须包含sub
字段:应用程序正在请求其委派访问权限的用户的电子邮件地址。