权限感知检索

本页说明如何用 Azure AI Search 的安全过滤模式(Security Filter Pattern),让检索结果只包含当前用户有权访问的文档,并在 RAG 流程中保持这一限制。适用于文档按用户或组分级授权的企业知识库。

适用场景

  • 不同员工或部门只能看到部分文档,例如人力资源文件只对人力资源组开放。
  • 希望在 RAG 中限制送入模型的上下文,使回答不引用用户无权访问的内容。
  • 不能使用或暂不使用 Azure AI Search 内置的文档级 ACL 支持,需要过滤方案。

前提

项目
说明
身份字符串
每个文档需要一个字符串字段保存用户或组的标识,例如 Microsoft Entra 对象 ID
调用方身份
原文说明,该模式不做身份认证或授权,身份只是过滤表达式中的字符串。应用需先确认调用者身份,再把其所属组写入过滤器
文档内容
其他字段提供可检索的内容,例如名称与描述

步骤

  1. 设计索引。新增一个安全字段(示例名为 group_ids),并设置下表所列属性。
  1. 写入文档。在上传文档时为每个文档填入允许访问的组。若组列表变化,可用 mergeOrUpload 更新,无需重写整篇文档。
  1. 查询时加过滤器。每次查询都使用 group_ids/any(g:search.in(g, '组1, 组2')),其中组列表为当前调用者所属的组。
  1. 验证。用不同的组查询,确认每个组只返回其有权访问的文档。原文示例中,属于 group_id1 或 group_id2 的文档会被返回,属于其他组的文档不会被返回。
  1. 在 RAG 中接入。编排器的检索步骤必须带上同一个过滤器,只有通过过滤的块才能进入提示词。

索引字段属性

属性
设置
作用
类型
Collection(Edm.String)
允许一个文档对应多个组
filterable
true
允许在过滤器中使用该字段
retrievable
false
搜索结果中不返回该字段
文档键
如 file_id
索引必需的键,用于更新文档
原文指出,search.in 替代多个等值 or 条件,可明显降低组较多时的查询延迟。原文称可达到亚秒级响应,具体表现待核实。

验证

检查项
通过标准
有权用户
返回的文档都包含该用户的某个组
无权用户
不返回不属于其组的文档,包括在搜索关键词直接命中时
变更同步
修改文档的组后,新查询结果随之变化
RAG 回答
回答引用的块都来自该用户可访问的文档

排错与注意事项

风险或现象
说明
处理
把 retrievable=false 当作字段级安全
原文说明它不是内容混淆或字段级安全机制,仍可能通过其他查询特性或响应格式泄露
所有查询都加过滤器;敏感内容不要进入索引
过滤器漏加
某个查询路径没有过滤,会返回全部文档
在编排器或服务端统一生成过滤器,不让前端自行拼接
组列表由客户端提供
客户端可伪造组,导致越权
由服务端根据已认证身份查询组,再生成过滤器(建议做法,原文未展开)
组变化后结果未更新
文档中的组字段未随权限同步
建立同步流程,使用 mergeOrUpload 更新
查询慢
使用多个等值 or 条件
改用 search.in
分块后权限丢失
文档被切成多个块后,只有部分块带上安全字段
每个块文档都写入同样的安全字段(建议做法,原文示例针对整文档)
另外,企业基线参考架构指出,Foundry Agent Service 不按用户校验会话归属,应用必须确认用户拥有会话 ID,否则存在越权访问风险。若 RAG 通过该服务运行,权限控制需同时覆盖会话和检索两层。

来源与核对

  • 来源:
  • https://learn.microsoft.com/en-us/azure/search/search-security-trimming-for-azure-search
  • https://learn.microsoft.com/en-us/azure/architecture/ai-ml/architecture/baseline-microsoft-foundry-chat
  • read_scope:正文已读
  • 核对说明:安全过滤页的正文通过网页抓取工具获取,工具返回的是整理后的文本。示例 api-version 与 JSON 结构以页面为准,使用前待核实。页面提到的“内置文档级 ACL 支持”未在本次阅读中展开,待核实。基线页的会话授权说明据前约 10 万字符的正文整理。本页不含图片。
上一篇
Tool calling 概念
下一篇
RAG 评测指标
Loading...
文章列表
分享AI实践与思考
入门
Microsoft Foundry
开发工具
治理与网络
观测与评测
工具与知识
模型与部署
Azure OpenAI
Azure AI Search
性能与基准
索引与分块
概念解释
快速上手
Foundry Tools
RAG 与知识工程
检索质量与评测
数据准备
智能体与工具
评测、观测与安全
企业架构与成本
成本与容量
架构
解决方案场景
文档与服务
知识与分析
样例与学习资源
附录