使用域范围委派调用Google Workspace Directory API遇403权限问题求助
排查Google Workspace Directory API 403权限问题的建议
确认JWT令牌包含正确的模拟用户
服务账号使用域范围委派时,必须在获取令牌的请求中指定sub参数,值为域内拥有Directory API操作权限的管理员账号(比如超级管理员)。如果没有设置sub,令牌不会关联任何域内用户身份,自然无法访问需要域权限的资源。验证令牌的权限范围
调用https://www.googleapis.com/oauth2/v3/tokeninfo?access_token=[你的令牌],检查返回结果中的scope字段是否包含https://www.googleapis.com/auth/admin.directory.user。如果范围不匹配,说明获取令牌时请求的scope与域委派配置的不一致,或者请求时未正确传递scope参数。检查模拟账号的权限角色
确保sub指定的管理员账号在Google Workspace管理控制台中拥有足够权限:- 至少分配「用户管理管理员」角色,或者直接使用「超级管理员」账号
- 普通用户账号即使被模拟,也没有调用Directory API的权限
核对域范围委派的Client ID
确认Google Workspace管理控制台中配置的Client ID是服务账号对应的Client ID,而非OAuth客户端ID。可以在Google Cloud Console的服务账号详情页找到正确的Client ID。确认Admin SDK API已启用
登录Google Cloud Console,检查你的项目中是否已经启用「Admin SDK API」。未启用API的情况下,即使权限配置正确,也会返回403错误。检查请求的正确性
- 确认
users.list接口使用的是GET请求,而非POST - 核对
domain参数的域名拼写是否完全正确,与你的Workspace域名一致
- 确认
内容的提问来源于stack exchange,提问作者RyanB
相关产品推荐
相关产品推荐

