企业级工作区搜索与生成式 AI 助手的可信度,完全取决于底层的访问控制架构。当 IT 管理员在 Google Workspace 和 Slack 中部署 Glean 时,核心安全诉求非常明确:搜索结果和 AI 生成的回答绝不能将机密文档、受限的私密频道或个人的直接消息(DM)泄露给未授权员工。
Glean 并不是在源系统之上重写或重新定义一套权限规则,而是通过双引擎架构严格镜像源系统的访问控制列表(ACL):对于 Google Drive 这类非即时、文档型存储,采用入库时权限感知索引(Ingestion-time Permission-Aware Indexing);对于 Slack 这类高频实时的协作沟通平台,则采用联邦零拷贝实时搜索(Slack RTS, Real Time Search)。在此基础之上,Glean 凭借自动化的身份图谱(Identity Graph),将企业身份提供商(IdP)中的人员、多系统别名、跨平台 UID 以及嵌套群组层级完整打通。
本文为企业 IT 管理员、系统架构师及安全运营团队提供详尽的操作指南,讲解如何在 Glean 中完成 Google Workspace 与 Slack 连接器配置、身份与权限映射、源系统原生可见性控制及合规验证。
一、核心架构:双引擎权限模型与统一身份图谱
要准确配置 Glean 并保障数据隔离,首先需要理解 Glean 处理不同源系统权限的底层机制:
+-------------------------------------+
| 企业身份提供商 (IdP) |
| (Okta / Entra ID / Google 身份) |
+------------------+------------------+
|
v
+-------------------------------------+
| Glean 统一身份图谱 |
| - 用户主账号与邮箱别名归一化 |
| - 嵌套群组成员关系递归扁平化 |
| - 跨系统 UID 解析 (如 Slack 用户ID)|
+------------------+------------------+
|
+------------------------+------------------------+
| |
v v
+-------------------------------------+ +-------------------------------------+
| Google Workspace 连接器 | | Slack 连接器体系 |
| (Google Drive / Gmail / Groups) | | (Slack 元数据连接器 + Slack RTS) |
+------------------+------------------+ +------------------+------------------+
| |
- GCP 服务账号与全域委派 (Domain-Wide) - 官方 Marketplace 中心化 OAuth 应用
- 入库时索引文档内容及对应 ACL 令牌集 - 定期身份抓取与交互行为信号采集
- 增量变更 API 与 Webhook 维持实时性 - 零拷贝联邦查询:按需调用 Slack 原生检索
- 严格镜像云端硬盘“链接共享”可见性规则 - 原生校验私密频道与直接消息成员身份
| |
+------------------------+------------------------+
|
v
+-------------------------------------+
| 查询期安全过滤拦截器 |
| 用户当前主体集 ∩ 文档安全令牌 (ACL) |
| + 实时联邦会话级返回流 |
+------------------+------------------+
|
v
+-------------------------------------+
| 严格遵从源权限的检索结果与 AI 回答 |
+-------------------------------------+
1. 入库时权限感知索引(Google Drive)
对于 Google Drive 等异步存储系统,Glean 在爬取文档内容的同时抓取其绑定的安全主体(用户账号、Google Groups、全员共享属性等),并将文档与 ACL 令牌集一同存入索引。当员工发起搜索时,Glean 的安全拦截器会根据当前用户的身份和所继承的所有群组权限构建有效主体列表,在毫秒级内完成权限求交计算,未授权文档直接在打分排名前被剔除。
2. 联邦实时搜索(Slack RTS)
Slack 的消息流产生极快且频道权限变更频繁,传统的定期爬取索引难以兼顾时效与安全性。为此,Glean 采用了 Slack Real Time Search(RTS) 联邦架构。Glean 的核心索引库不持久化存储 Slack 的消息正文,而是采用零拷贝机制:当用户在 Glean 发起搜索时,系统直接代表该用户实时调用 Slack 原生的搜索 API(如 assistant.search.context 和 search.messages)。Slack 自身负责验证当前查询用户是否属于该公开频道、私密频道或多人群聊(MPDM),未加入的私密对话从协议层便无法返回。
3. 统一身份图谱(Identity Graph)
权限对齐的最大难点在于多系统账号标识不统一。例如同一个员工,在 Google Workspace 中是 name@company.com,在 Slack 中是唯一的内部用户 ID U12345678。Glean 通过与企业的核心 IdP(如 Okta、Microsoft Entra ID 或 Google Workspace)集成,构建全局身份映射,关联员工的主邮箱、别名邮箱和第三方系统 UID,确保无论数据在哪个系统产生,权限校验都能精准对应到同一实体。
二、Google Workspace 连接器与权限同步配置
Glean 连接 Google Workspace 依赖 Google Cloud Platform(GCP)服务账号与全域授权委派(Domain-Wide Delegation)。这允许 Glean 以指定管理员身份安全抓取目录结构并维护文档级安全性(DLS)。
步骤 1:创建 GCP 服务账号
- 登录企业的 Google Cloud Console。
- 进入 IAM 与管理 → 服务账号,点击 创建服务账号。
- 输入服务账号名称(例如
glean-enterprise-connector)和说明。 - 创建后进入该账号的 密钥(Keys) 选项卡,选择 添加密钥 → 创建新密钥,选择 JSON 格式并下载妥善保管。
- 在服务账号详情页面,复制该账号的纯数字 OAuth 2 客户端 ID(Client ID)。注意:全域委派必须使用纯数字客户端 ID,而非服务账号邮箱。
步骤 2:在 Google Workspace 管理控制台配置全域委派
- 以超级管理员身份登录 Google Workspace 管理控制台(
admin.google.com)。 - 前往 安全性 → 访问权限和数据控制 → API 控制 → 管理全网域委派。
- 点击 添加新项,在“客户端 ID”框中粘贴上一步复制的数字 Client ID。
- 在“OAuth 范围”框中输入逗号分隔的必要 API 范围(注意字符串需完全一致,无多余空格):
https://www.googleapis.com/auth/drive.readonly(用于抓取 Google Drive 文件元数据、内容及 ACL)https://www.googleapis.com/auth/admin.directory.user.readonly(用于读取用户属性与账号状态)https://www.googleapis.com/auth/admin.directory.group.readonly(用于读取 Google Groups 及其成员)https://www.googleapis.com/auth/apps.groups.settings(用于读取群组安全设置)- 如需索引邮件与日历,可按需补充
https://www.googleapis.com/auth/gmail.readonly及 Calendar 相关范围。
- 点击 授予访问权限(Authorize)。
步骤 3:在 Glean 管理控制台完成连接器配置
- 登录 Glean Admin Console,导航至 Platform → Connectors。
- 选择 Google Drive(或 Google Workspace)并点击 Setup。
- 提示:对于 2026 年 8 月 14 日之后创建的 Glean 部署实例,系统已提供自动化配置向导,默认启用相关只读工具并简化索引流;若是更早的部署,需手动上传先前下载的 GCP 服务账号 JSON 密钥。
- 配置 Directory Admin Email:指定一个具备 Google Workspace 目录与活动日志读取权限的管理员邮箱。Glean 将使用该身份调用 Google Workspace Reports API 抓取增量变更事件与活跃度信号。
- 设置爬取范围与限制规则:指定需纳入搜索的组织单元(OU)或限制特定受限共享网盘。
步骤 4:核心细节:Google Drive 链接共享与可见性控制
Google Drive 的共享机制容易引起安全隐患。Glean 在权限匹配上严格遵守 Google Drive 的原生逻辑,其具体表现如下:
- 明确授权文件:仅直接指定的用户或 Google Groups 成员可检索到。
- “知道链接的任何人”及全公司共享文件:如果一个文件设置为“全公司可访问”或“知道链接者可查看”,Glean 不会盲目向全体员工展示该文件,除非满足以下条件之一:
- 用户此前已在 Google Drive 中主动打开或访问过该文档;
- 文件的“在搜索结果中可找到”(Searchable → Can find in search results)属性被显式开启;
- 该文件的链接被分享到了当前用户所属的 Slack 频道中(可按需在 Glean 中开启或关闭此关联规则);
- 管理员针对特定受众为该文件设置了 Pin(置顶推荐)。
- AI 助手与 Slack 公开模式联动:当在 Slack 中将 Glean 助手设为“公开模式(Public Mode)”或发布对所有人可见的 Agent 时,Glean 仅会引用“在搜索结果中可找到”的文件生成回答,严格屏蔽设置为“必须凭链接访问(Must have link to access)”的文档,彻底杜绝隐蔽的数据越权。
三、Slack Enterprise 连接器与实时搜索(RTS)配置
Slack 的接入由两个相互配合的连接器组成:负责身份元数据与行为排名的 Slack 连接器,以及负责实时零拷贝调用的 Slack Real Time Search(RTS)连接器。
步骤 1:模式选择与前提条件
- 版本要求:跨多工作区的大型企业建议使用 Slack Enterprise Grid 模式;单一工作区企业选择 Single Workspace 模式。
- 管理员权限:Enterprise Grid 模式必须由 Slack Org Owner(组织所有者) 操作安装;单工作区模式需要 Workspace Owner 或 Workspace Admin。
- 收集信息:
- Slack 域名:如
company.slack.com(单工作区)或company.enterprise.slack.com(Enterprise Grid)。 - Slack 工作区 ID(以
T开头)与 Enterprise ID(以E开头,可从浏览器访问 Slack 时的 URLapp.slack.com/client/E12345678/...中获取)。
- Slack 域名:如
步骤 2:安装基础 Slack 连接器(元数据与交互信号)
- 在 Glean 管理控制台中,前往 Platform → Connectors → Slack(或 Slack Enterprise),点击 Setup。
- 输入 Slack 域名与 Enterprise ID。
- 授权 Glean 在 Slack 官方 Marketplace 中的中心化应用。主要授权范围包含:
users:read,users:read.email(构建跨系统用户身份映射)channels:read,groups:read,im:read,mpim:read(抓取频道架构与成员清单)usergroups:read(映射 Slack 用户组结构)assistant:write,reactions:write,commands(支撑 Gleanbot 交互与/glean命令)
- 在 Slack 组织层级确认全员工作区覆盖并完成安装。
步骤 3:配置 Slack Real Time Search(RTS)连接器
- 在基础 Slack 连接器状态健康后,返回 Platform → Connectors,选择 Slack Real Time Search (RTS)。
- 点击 Setup,完成 OAuth 授权流程。
- 接口能力确认:RTS 会调用 Slack 的核心实时检索 API:
assistant.search.context与search.messages:在用户发起检索时,以实时联邦方式请求 Slack 原生检索接口;conversations.history与conversations.replies:动态抓取匹配结果周围的上下文消息及回帖线索;conversations.members与users.info:实时确认会话成员关系。
- 零拷贝安全验证:确认不存储消息正文。RTS 仅在内存中处理查询并即刻丢弃,若某员工未加入私密频道(例如
#exec-salary),Slack 接口层直接返回空数据,彻底隔绝信息泄露。
步骤 4:敏感频道隔离与外部通信保护
- 频道黑名单(Redlisting):对于涉及核心机密(如高管薪酬、待办并购、敏感合规调查)的公开或私密频道,可联系 Glean 支持团队或在连接器设置中通过 Channel ID(以
C开头)将其列入排除黑名单,禁止任何检索触达。 - Slack Connect 外部频道防护:Glean 默认自动禁用包含外部第三方的 Slack Connect 共享频道响应,防止内部机密或 AI 回复被外部伙伴查看。
- 私密对话与个人 DM 授权:直接消息(DM)与受限私密频道在部分企业合规策略下要求个人显式授权,Glean 支持在需要时引导用户授权其个人 Slack 令牌,确保查询严格绑定于个人视界。
四、权限映射、群组递归展开与同步生命周期
理解权限变更的同步机制与延迟指标,有助于 IT 人员在安全审计或员工异动时精准判断生效节点。
+-----------------------------------------------------------------------------------+
| 权限与身份数据同步路径说明 |
+-----------------------------------------------------------------------------------+
| 来源系统 | 同步触发机制 | 任务类型 | 典型生效时延 / 同步频率 |
+---------------+---------------------+---------------+-----------------------------+
| Google Drive | 基础内容抓取 | 批量全量抓取 | 定期执行 (建立基线) |
| Google Drive | Google Reports API | 增量变更抓取 | 定期拉取 (数分钟至数小时) |
| Google Drive | 推送 Webhooks | 实时事件推送 | 秒级近实时响应 |
| Google Groups | Admin Directory API | 身份抓取 | 周期性全量/增量展开 |
| Slack 架构 | Slack Users API | 身份抓取 | 周期性拉取用户与频道清单 |
| Slack 动态 | Slack Events API | Webhook | 实时捕捉用户加群、退群事件 |
| Slack 消息正文| Slack RTS 实时 API | 联邦零拷贝 | 查询触发即刻判定 (0 秒延迟) |
+-----------------------------------------------------------------------------------+
嵌套群组递归展开机制
大型企业中普遍存在嵌套 Google Groups(例如:Security-Team 属于 Tech-Ops,Tech-Ops 又属于 Engineering)。Glean 在执行身份抓取时,会在身份图谱中对群组关系进行递归扁平化展开(Flattening)。当某个 Google Doc 仅授权给 Engineering 时,处于最底层的 Security-Team 成员也会在 Glean 身份引擎中自动获得合法的匹配令牌。一旦该员工从 Google Workspace 管理后台的子群组中被移除,Glean 增量身份抓取会立即移除该继承令牌,使其失去在搜索中触达该文档的权限。
实时权限撤销的表现
- Slack 频道退出:实时生效。因为 Slack RTS 依赖查询时刻向 Slack 发起的实时鉴权,用户一旦被移出私密频道,后续发起的任何搜索均无法检索该频道历史消息。
- Google Drive 权限撤销:用户从文档共享列表中移除后,Google Drive 的变更日志会触发 Webhook 与增量抓取,Glean 会使索引库中对应的 ACL 令牌失效,通常在数分钟内即在搜索端生效。
五、管理后台验证、审计与排错实战
IT 管理员在完成配置后,必须通过确定性的验证工具确保权限控制真实生效。
1. 使用 Document Lookup 验证文档可访问性
- 登录 Glean Admin Console,进入 Content management → Document lookup。
- 在 Document URL 输入框中,粘贴一份敏感的 Google Doc 链接或文档 ID。
- 在 User (optional) 下拉菜单中,选择需要测试的目标员工。
- 点击 Check document。
- 查看诊断结果:
- Last crawled:Glean 上次抓取该文档元数据的时间;
- Last indexed:该文档内容与 ACL 令牌被编译进可搜索索引的时间;
- Document visibility on Glean:标识文档处于正常可检索状态还是被管理规则隐藏;
- Document access:明确显示该员工的访问权限状态(
Allowed或Restricted),并列出其权限来源(如直接分享、继承自特定 Google Group,或因“链接共享”限制而受限)。
2. 使用前台诊断语法进行多源验证
管理员可使用指定测试账号在前台搜索栏中运行限定指令:
app:gdrive <关键词>:仅在 Google Drive 数据源中检索,验证敏感文档是否被隔离;app:slack <关键词>:仅在 Slack RTS 数据流中检索,验证私密频道消息的隔离性;*(通配符):返回当前用户在系统中可访问的全部公开与私有内容,便于核对是否有未授权文件出现。
3. 查看与导出管理审计日志(Audit Logs)
Glean 记录了完整的管理操作与系统状态变化:
- 导航至 Users & permissions → Audit logs(或 Management → Audit Logs)。
- 根据时间窗口、操作管理员或事件类型(如连接器修改、OAuth 范围变更、可见性规则调整)进行筛选。
- 支持导出为 CSV 格式,并可与企业 SIEM 平台(如 Splunk、Datadog)对接,满足 SOC 2、HIPAA 及 ISO 27001 等合规审计要求。
六、总结与企业上线前核对清单
通过在 Google Drive 上应用“入库时 ACL 深度索引”,并在 Slack 上采用“联邦零拷贝实时查询(RTS)”,Glean 完美平衡了检索性能与实时权限控制,彻底解决了传统 RAG(检索增强生成)方案容易引发的数据越权漏洞。
企业 IT 管理员上线前自检清单
- 企业核心 IdP(Okta / Entra ID / Google 身份)已完成集成并打通用户基础。
- GCP 服务账号已创建,JSON 密钥已就绪,已获取纯数字 OAuth 2 Client ID。
- Google Workspace 管理后台已完成全网域委派授权,API Scopes 拼写完全一致。
- 已在 Glean 中指定 Directory Admin Email 用于活动与变更抓取。
- 已评估 Google Drive 链接共享规则(确认“在搜索结果中可找到”相关策略)。
- Slack Enterprise Grid 已由 Slack Org Owner 完成官方 Marketplace 应用授权。
- Slack Real Time Search(RTS)连接器已完成部署与连通性测试。
- 敏感法务、财务与高管私密频道已加入排除黑名单(Redlist)。
- Slack Connect 外部频道响应隔离设置已确认为开启状态。
- 通过 Document Lookup 对高管账号与普通员工账号完成权限隔离验证。
- 审计日志(Audit Logs)导出与 SIEM 接入管道已测试跑通。
遵循此规范进行部署,IT 团队可以在保障企业零信任安全防线的前提下,为全员提供安全、智能且高效的统一工作区搜索体验。