如何审计 Google Workspace 中的第三方 OAuth 应用
问大多数 IT 管理员有多少第三方应用能访问其 Google Workspace 数据,得到的往往是猜测,而不是确切数字。这种不确定性正是问题所在。每当用户点击“使用 Google 登录”或安装一个 Marketplace 插件,他们就为该 OAuth 应用授予了一份对组织数据的持久访问权限——而这份授权的存续时间,往往超过了用户本身的兴趣、供应商的相关性,甚至管理员的知情范围。
本文提供一套实用的审计方法:去哪里查找这些授权、如何判断哪些存在风险,以及如何安全地清理。
OAuth 授权到底是什么
当用户“通过 Google”对某个应用进行授权时,他们并没有交出自己的密码,而是授予了该应用一个限定权限范围的令牌——即 *scope(作用域)*——使其能够代表用户(或组织)调用 Google API。一个作用域可以窄至“查看你的电子邮件地址”,也可以宽至“查看、编辑、创建并删除你所有的 Google Drive 文件”。
这些授权有两个特性,使其值得被审计:
- 它们会持续存在。 令牌会一直有效,直到被明确撤销、应用被移除,或账户被禁用。“我一年前就不用那个工具了”并不能撤销任何权限。
- 它们由用户发起。 访问权限是由点击“允许”的那个人授予的,而不是由 IT 部门配置的。这正是影子 IT 的教科书式定义,也意味着你的访问权限清单默认就是不完整的。
去哪里查找这份清单
有两个观察角度。
用户视角位于每个人的 Google 账户中,路径为 *安全性 → 第三方应用和服务*(原名为“有权访问你账户的应用”)。它显示的是单个用户已授权的内容,适合抽查,但难以大规模应用。
管理员视角位于 Google Admin 控制台中,路径为 *安全性 → API 控制 → 应用访问权限控制*(以及旁边的已连接应用报告)。这是组织全局视图:哪些应用已连接、它们持有哪些作用域,以及各有多少用户对其进行了授权。审计工作应从这里入手。
如果你拥有相应的管理员权限,Admin SDK 的令牌报告功能可以以编程方式枚举出同样的数据——这正是持续、自动化审查得以实现的关键,而不必依赖一年一次的人工苦活。
如何判断风险
并非每个已连接的应用都构成问题。一个只能读取空闲/忙碌时间的日历排程工具风险很低;而一个由单人使用、却拥有完整 Drive 访问权限的笔记应用则完全是另一回事。可以从以下几个维度对每个应用打分:
- 作用域广度。 完整的 Drive 访问、Gmail 读取/发送权限,以及管理员目录访问权限,都属于高风险作用域。一个能够读取并窃取所有文件的应用,无论它看起来多么可信,都应是你的首要关注对象。
- 可触及数据的敏感程度。 Drive 内容和邮箱访问权限的优先级,高于个人资料或日历元数据。
- 用户数量与覆盖面。 一个仅由一人使用、却持有广泛访问权限的应用,属于隐匿而集中的风险;而一个全公司都在用的应用,由于其影响范围巨大,同样值得仔细审查。
- 发布者可信度。 经过验证的发布者和知名供应商比未经验证或匿名的应用更可靠。Google 的应用验证状态是一个有用的信号,但并非绝对保证。
- 活跃程度。 一个几个月都没人用过的应用纯粹是负资产:承担了全部风险,却毫无价值。
一个简单的综合判断方式是:凡是同时具备高风险作用域*且*信任度低*或*近期无使用记录的应用,都应排在清理清单的最前面。
一套可重复执行的审计流程,逐步展开
- 枚举清单。 从 Admin 控制台(或通过 API)拉取已连接应用及其作用域的完整列表。
- 对作用域分类。 标记出高危项——完整 Drive、Gmail 发送/读取、目录权限,以及任何管理员级作用域。
- 交叉比对使用情况。 找出近期无活动的应用,以及仅被极少数用户持有的应用。
- 核查发布者。 留意未经验证或来源不明的发布者。
- 做出决定。 针对每个应用:保留、限制,或撤销。记录理由——这份决策日志能让下一次审计更加高效。
- 安全地撤销。 移除你决定淘汰的应用的访问权限,并与依赖该工具的少数用户提前沟通。
- 建立防护机制。 从清理转向预防:将 Marketplace 安装限制为需经管理员批准,并对高风险作用域的访问设置阻止或允许名单,防止乱象死灰复燃。
撤销权限而不影响业务
阻碍大多数清理工作的顾虑是:“如果我撤销了别人需要的权限怎么办?”可以这样缓解:
- 从毫无争议的项目入手:未经验证、拥有广泛作用域且近期零使用记录的应用。
- 对于用户基数较小的应用,在撤销前先发出提醒;如果无人反对,再执行撤销。
- 保留撤销内容和时间的记录,这样万一出现问题,你可以迅速、有针对性地恢复。
Google 工具中的撤销操作是即时且可逆的——如果用户确实需要某个应用,随时可以重新授权,而这一次,你的防护机制已经就位。
让它成为持续性工作
一次性审计做完时感觉很好,但效果会立刻开始衰减。就在你完成审计的第二天,新的应用又会被连接进来。持久的解决方案是持续发现:自动枚举已连接应用及其作用域,对每个应用打分,并在出现新的高风险授权,或休眠应用持有广泛权限时发出警报。
从周期性表格排查转向始终最新的清单——这种转变,正是“了解你今天的 OAuth 暴露面”与“靠猜测”之间的分水岭。这也是更广泛的Google Workspace 安全体系的支柱之一,与身份、共享和配置管理并列。
应当引起你警觉的作用域
由于作用域广度是最大的单一风险因素,了解哪些 OAuth 作用域真正具有分量会很有帮助。以下是几种在阅读应用权限列表时值得留意的模式:
- `drive`(完整 Drive 权限)——读取、创建、修改并删除用户*所有*的 Drive 文件。这是应用可持有的最广泛的数据作用域,而且比它本应出现的频率高得多;许多应用在只需更窄的按文件作用域即可满足需求时,依然申请了这一权限。
- `gmail.send` / `gmail.modify` / `mail.google.com`——以用户身份发送邮件,或读取、修改邮箱的能力。拥有邮箱访问权限的应用既能窃取往来信件,也能冒充用户与他人联系。
- **
admin.directory.***——读取或管理你的用户和群组目录。持有该权限的应用影响的是整个组织,而不仅仅是单个用户。 - `spreadsheets` / `documents`——对 Sheets 和 Docs 内容的访问权限,而这些文件中往往恰好存放着你最想保护的敏感数据(财务信息、计划文档、“临时”粘贴进去的凭证)。
窄范围、只读的作用域——userinfo.email、calendar.readonly、drive.file(仅能访问应用自身创建的文件)——才是应当鼓励使用的类型。在评估新工具时,优先选择申请权限最少的版本。
把审计转化为一项制度
如果一次干净的审计能以建立长期制度、而非一次性清理告终,其价值会大得多。以下三项制度可以防止大部分乱象死灰复燃:
- 管理员批准的 Marketplace 安装。 要求用户安装 Marketplace 应用前须经管理员批准,让新连接成为一项决策,而非默认行为。
- 基于作用域的访问控制。 对高风险作用域(完整 Drive、Gmail、目录权限)设置阻止或明确的允许名单。想获得完整 Drive 访问权限的应用应当先过这道关;而只想要一个电子邮件地址的应用则不需要。
- 一位负责定期复审的责任人。 指派专人按计划定期复审新增和高风险授权。无人负责的复审是不会真正发生的。
这些防护机制将默认设置从“任何用户都可以授予任何应用任何权限”转变为“广泛权限是经过审慎评估的选择”——同时不会阻碍人们真正需要的正当工具。
8200.dev 可以发现连接到你 Workspace 的第三方应用,依据作用域、发布者可信度和使用情况对其打分,并优先呈现出高风险项——只读且持续进行。查看我们检查的内容以了解全貌。
想立即了解哪些应用能够访问你的数据? 开始你的免费安全审计,获取一份按风险排序的 Google Workspace 已连接 OAuth 应用清单。