You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

调用Google Admin Directory API获取组成员时遇403权限错误求助

解决Google Admin Directory API 403权限错误问题

问题根源

  • 你当前给服务账号分配的BigQuery Resource Viewer、Folder Viewer、Organization Viewer、Viewer角色均不包含访问Google Admin Directory API的权限,这类角色仅针对云资源或组织层级的查看,和Google Workspace域内的群组管理无关。
  • 调用Admin Directory API必须完成域范围委派(Domain-Wide Delegation),这是服务账号访问Workspace域数据的必要前提,目前你的配置缺少该步骤。
  • 代码中使用的scope为旧版Groups Feed接口的,与当前调用的Admin Directory API不匹配。

分步解决方法

1. 启用Google Admin Directory API

在你的Google Cloud项目中操作:

  • 打开API库,搜索Admin Directory API
  • 点击「启用」按钮,确保API处于可用状态

2. 给服务账号分配正确的IAM角色

给服务账号添加能读取群组成员的预定义角色:

  • 进入Google Cloud IAM页面,找到目标服务账号
  • 点击「添加角色」,搜索并选择Groups Reader(该角色允许读取Workspace域内的群组及成员信息)
  • 保存更改

3. 配置域范围委派(关键步骤)

此步骤需由Google Workspace域管理员在Admin控制台操作:

  • 登录Workspace Admin控制台,进入「安全」→「API控制」→「域范围委派」
  • 点击「添加新的客户端ID」,输入服务账号的客户端ID(可在Google Cloud服务账号详情页获取)
  • 在「OAuth范围」中添加Admin Directory API的正确scope:
    • 仅读取群组成员:https://www.googleapis.com/auth/admin.directory.group.member.readonly
    • 读取群组及成员:https://www.googleapis.com/auth/admin.directory.group.readonly
  • 点击「授权」完成配置

4. 修正代码中的错误

4.1 替换正确的Scope

将代码中的scope替换为Admin Directory API的:

scopes=['https://www.googleapis.com/auth/admin.directory.group.member.readonly']

4.2 添加用户模拟

服务账号调用Admin API必须模拟域内有权限查看目标群组的用户(如域管理员或群组管理员),修改credentials初始化代码:

credentials = service_account.Credentials.from_service_account_file(
    '/home/key.json',
    scopes=['https://www.googleapis.com/auth/admin.directory.group.member.readonly']
).with_subject('admin@test.ai')  # 替换为你域内有权限的用户邮箱

4.3 清理重复导入

代码中重复导入了Credentials和service_account,可删除重复行简化:

from google.oauth2.credentials import Credentials
from google.auth.transport.requests import Request
from google.oauth2 import service_account
from google.auth.exceptions import RefreshError
import requests

5. 验证权限

重新运行代码,确认是否能成功获取群组成员。若仍报错,检查:

  • 模拟的用户是否真的有权限查看目标群组
  • 域范围委派的scope是否正确添加
  • 服务账号的角色是否已生效(可能需等待几分钟)

内容的提问来源于stack exchange,提问作者develop

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.25 21:57:34