【发布时间】:2018-03-16 03:33:54
【问题描述】:
这可能与Google Directory API returns 403 for user_list with showDeleted=true 有关,但很遗憾我还无法发表评论,也无法提供答案。
我收到了来自学校 G Suite 的 service account 并获得了许可
https://www.googleapis.com/auth/admin.directory.user.readonly
G Suite 管理员表示他已将域范围的权限委派给该帐户,并且我能够创建服务帐户 JWT 并检索访问令牌以使用 HTTP/REST 流调用 API。但是,当我致电user get endpoint 请求有关帐户的信息时-
https://www.googleapis.com/admin/directory/v1/users/redacted%40redacted.com?projection=full
我收到以下信息:
The remote server returned an error: (403) Forbidden.
{
"error": {
"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 管理面板,因此无法在自己周围闲逛,但管理员已确认我们的客户在他能找到的任何地方都可以访问 admin.directory.user.readonly 权限,如上所述,我们处于具有域范围访问权限的角色。我愿意接受有关管理员可能缺少分配权限的地方的建议,或者我的方法中可能缺少的任何内容(尽管 JWT 构建/签名和访问令牌检索似乎按预期工作)。如果我可以提供任何其他有用的信息,请告诉我,我会更新。
更新:帐户的权限似乎是正确的——我能够从用户那里检索信息/在 API Explorer 中获取信息。但是,API Explorer 使用的是 URL
https://www.googleapis.com/admin/directory/v1/users/redacted%40redacted.com?projection=full&key={YOUR_API_KEY}
而且我在服务帐户或用户/获取文档中都找不到任何关于 key 参数的文档。我将 access_token 作为不记名令牌包含在规范中定义的身份验证标头中,当我尝试将其作为密钥查询字符串参数发送时,我仍然收到上面记录的相同 403 错误。 Stack (Google API Client users().get(userKey='name@domain.com') returns Not Authorized to access this resource/api) 上有一个类似的问题没有答案。
【问题讨论】:
标签: google-admin-sdk