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

如何通过Google Workspace Admin API获取未启用MFA用户数据

答复

两个需求均可以通过Google Workspace官方原生能力实现,无需依赖第三方工具。

未开启MFA用户数据提取可行性

  • 完全支持提取。你可以直接通过Google Workspace管理控制台完成导出:使用拥有对应权限的管理员账号进入管理后台,在安全板块的多因素认证配置页,直接筛选未配置MFA的用户,即可导出包含用户基础属性、登录状态等字段的CSV格式报表。
  • 可导出的默认字段包含用户邮箱、姓名、所属组织单元、账号创建时间、上次登录时间、账号状态,你也可以根据需要自定义导出字段范围。
  • 操作前提:操作账号需要拥有超级管理员、用户管理员或报表查看员角色,普通用户账号无权限访问这类安全管控数据。

通过Admin SDK API拉取数据的实现方式

  • 可以通过Admin SDK下的Reports API拉取全量未配置MFA的用户列表及关联数据,接口不需要申请特殊白名单,给调用身份配置对应权限即可正常调用。
  • MFA状态判断逻辑:接口返回的用户字段中,isEnrolledIn2Sv(已注册MFA)、isEnforcedIn2Sv(已被强制要求MFA)两个布尔值均为false的用户,就是未配置MFA的目标用户。
  • 支持拉取的关联数据包括:用户基础账号信息、近180天的登录行为数据(登录IP、设备信息、异常登录记录)、账号权限配置(管理员角色、已授权第三方应用列表)。
  • 基础调用示例(Python):
from googleapiclient.discovery import build
# 提前完成服务账号鉴权,为服务账号开通管理员使用情况报表只读权限
service = build('admin', 'reports_v1', credentials=valid_creds)

# 拉取指定日期的全量用户MFA状态数据
resp = service.userUsageReport().get(
    userKey='all',
    date='2024-06-15', # 替换为实际查询日期
    parameters='accounts:is_enrolled_in_2sv,accounts:is_enforced_in_2sv'
).execute()

# 筛选未配置MFA的用户列表
no_mfa_user_list = [
    entry for entry in resp.get('usageReports', [])
    if not any(
        param.get('boolValue') 
        for param in entry.get('parameters', [])
        if param.get('name') in ['is_enrolled_in_2sv', 'is_enforced_in_2sv']
    )
]
  • 调用注意事项:
    • 接口最长支持回溯拉取近180天的历史数据,超期数据无法通过接口获取
    • 单次接口返回最大数据量为1000条,拉取全量域内用户数据时需要处理分页逻辑
    • 如果域内开启了MFA豁免规则,需要额外结合组织单元的MFA策略配置做交叉校验,避免把豁免用户误判为未合规用户

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.29 15:01:06