你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
Azure AI 搜索支持文档级访问控制,使组织能够从数据引入到查询执行,在文档级别强制实施精细权限。 此功能对于构建基于数据安全的 AI 代理系统、Retrieval-Augmented 代(RAG)应用程序以及需要进行文档级别授权检查的企业搜索解决方案至关重要。
文档级访问控制的方法
方法 | DESCRIPTION |
---|---|
安全筛选器 | 字符串比较。 应用程序将用户或组标识作为字符串传入,该字符串将填充查询的筛选器,不包括字符串上不匹配的任何文档。 安全筛选器是实现文档级访问控制的技术。 此方法未绑定到 API,因此可以使用任何版本或包。 |
ACL(预览版) | 查询令牌背后的 Microsoft Entra ID 安全主体与搜索结果中返回的文档的权限元数据进行比较,排除任何权限不匹配的文档。 对主体的内置访问控制列表 (ACL) 支持以预览版提供,在提供该功能的 REST API 和预发布 Azure SDK 包中可用。 |
使用筛选器进行安全修整的模式
对于原生 ACL 集成不可行的场景,我们建议使用安全过滤器依据排除标准来过滤结果。 该模式包括以下组件:
- 在索引中创建字符串字段以存储用户或组标识的字符串。
- 使用源文档(包含一个包含标识的字段)加载索引。
- 在查询逻辑中包含用于匹配字符串的筛选器表达式。
- 查询时获取来电者的身份信息。
- 将调用方的标识作为筛选器字符串传入。
可以使用推送或拉取模型 API。 由于此方法与 API 无关,因此只需确保索引和查询具有有效的字符串(标识),以便筛选步骤。
此方法适用于具有自定义访问模型或非Microsoft安全框架的系统。 有关此方法的详细信息,请参阅 用于在 Azure AI 搜索中修整结果的安全筛选器。
针对类似 POSIX 的 ACL 权限的原生支持模式(预览版)
本机支持基于与你要索引和查询的文档相关联的 Microsoft Entra ID 用户和组访问 ID。 建议使用组访问 ID,以便于管理。 该模式包括以下组件:
- 从具有 ACL 分配的文档或文件开始。
- 在索引中启用权限筛选器。
- 将权限筛选器 添加到索引中的字符串字段。
- 将具有关联 ACL 的源文档加载到索引中。
- 查询索引,并在请求标头 中添加
x-ms-query-source-authorization
。
可以使用推送模型 API,将任何 JSON 文档推送到搜索索引,其中有效负载包括一个字符串字段,为每个文档提供类似于 POSIX 的 ACL。
或者,如果数据源为 Azure Data Lake Storage (ADLS) Gen2,则使用拉取模型(索引器)API。
在数据引入过程中检索权限元数据
检索权限的方式因是推送文档负载还是使用 ADLS Gen2 索引器而异。
开始使用提供该功能的预览 API:
- 2025-05-01 预览版 REST API
- 用于 Python 的 Azure SDK 预发行版包
- 用于 .NET 的 Azure SDK 预发行版包
- 用于 Java 的 Azure SDK 预发行版包
对于推送模型方法:
- 确保索引架构也是使用预览版或预发行版 SDK 创建的,并且该架构具有权限筛选器。
- 请考虑使用 Microsoft Graph SDK 获取组或用户 ID。
- 使用 索引文档 或等效的 Azure SDK API 将文档及其关联的权限元数据推送到搜索索引中。
- 使用 ADLS Gen2 访问控制模型验证目录中的文件是否受到保护。
- 使用 创建索引器 或等效的 Azure SDK API 创建索引器、索引和数据源。
在查询时强制实施文档级权限
使用原生令牌查询,Azure AI 搜索会验证用户的 Microsoft Entra 令牌,并将结果集进行过滤,仅包含用户有权访问的文档。
可以通过将用户的 Microsoft Entra 令牌附加到查询请求来实现自动修整。 有关详细信息,请参阅 Azure AI 搜索中的Query-Time ACL 和 RBAC 强制实施。
文档级访问控制的优点
文档级访问控制对于保护 AI 驱动的应用程序中的敏感信息至关重要。 它可帮助组织构建与其访问策略保持一致的系统,从而降低暴露未经授权的或机密数据的风险。 通过将访问规则直接集成到搜索管道中,AI 系统可以提供以安全和授权信息为依据的响应。
通过将权限强制执行卸载到 Azure AI 搜索,开发人员可以专注于构建高质量的检索和排名系统。 此方法有助于减少处理嵌套组、编写自定义筛选器或手动剪裁搜索结果的需求。
Azure AI 搜索中的文档级权限提供了一个结构化框架,用于强制实施符合组织策略的访问控制。 通过使用基于 Microsoft Entra 的 ACL 和 RBAC 角色,组织可以创建支持可靠合规性的系统,促进用户的信任。 这些内置功能减少了自定义编码的需求,为文档级安全性提供了标准化方法。
教程和示例
使用更多文章和示例详细了解 Azure AI 搜索中的文档级访问控制。
- 教程:使用索引器为 ADLS Gen2 权限元数据编制索引
- azure-search-rest-samples/Quickstart-ACL
- azure-search-python-samples/Quickstart-Document-Permissions-Push-API
- azure-search-python-samples/Quickstart-Document-Permissions-Pull-API