Azure AI 搜索 中 Microsoft Purview 敏感度标签在查询时的强制执行(预览版)

重要

这些特性和功能是 2026-05-01 预览版 REST API 的一部分。 2026-05-01-preview 作为Azure订阅的一部分获得许可,并受Microsoft产品条款Microsoft产品和服务数据保护附录(“DPA”)和Azure预览版补充使用条款的约束。

2026-05-01-preview 支持连接到其他 Microsoft 服务和第三方服务。 使用这些服务受其各自的条款的约束,可能会导致数据处理或存储超出Azure符合性边界,以及流入Azure符合性边界的数据。

2026-05-01-preview 无法修改在 2026-05-01-preview 之外设置的访问权限。 如果您使用 2026-05-01-preview 处理受访问限制或权限限制的内容,则在 2026-05-01-preview 识别到这些访问或权限限制的更改之前,会存在一段时间延迟。

您有责任管理您的数据是否会流出您组织的合规和地理边界之外及其任何相关影响,并确保已配置适当的权限、边界和审批。

你负责仔细查看和测试在特定用例上下文中生成的应用程序,并做出所有适当的决策和自定义。 这包括实施自己的负责任的 AI 缓解措施,例如元系统、内容筛选器或其他安全系统,并确保应用程序满足适当的质量、可靠性、安全性和可信度标准。

在查询时,Azure AI 搜索强制实施Microsoft Purview中定义的敏感度标签策略。 这些策略包括评估绑定到每个文档的 READ 使用权限。 因此,用户只能检索允许查看的文档。

此功能扩展了 document 级访问控制,以符合组织在 Azure Purview 中管理的信息保护和合规性要求。

启用 Purview 敏感度标签索引后,Azure AI 搜索在查询期间检查每个文档的标签元数据。 它根据 Purview 策略应用访问筛选器,只返回请求用户被允许访问的结果。

本文介绍查询时敏感度标签强制实施的工作原理,以及如何发出安全搜索查询。

先决条件

局限性

  • 不支持来宾帐户和跨租户查询。

  • 已启用 Purview 的索引不支持自动完成建议 API。

  • 如果标签评估失败(例如 Purview API 暂时不可用),服务将返回 5xx ,并且不返回部分或未筛选的结果集。

  • 系统仅在上次索引器运行时评估标签的存在状态。 在下次计划的重新编制索引之前,可能不会反映最近的标签更改。

查询时敏感度标签强制执行的工作原理

查询包含Microsoft Purview敏感度标签的索引时,Azure AI 搜索在返回结果之前检查关联的 Purview 策略。 这样,查询仅返回用户令牌允许访问的文档。

1.用户标识和应用程序角色输入

在查询时,Azure AI 搜索验证两者:

  • 调用应用程序的 RBAC 角色,在 Authorization 标头中提供。 所需的最低角色为 Search Index Data Reader。 有关更多详细信息,请查看 Azure AI 搜索 RBAC 指南
  • 标头中 x-ms-query-source-authorization 提供的通过令牌的用户标识。

两者都需要授权基于标签的可见性。

输入类型 Description 示例源
应用程序角色 确定调用应用是否有权对索引执行查询。 Authorization: Bearer <app-token>
用户标识 确定最终用户可以访问哪些敏感度标签。 x-ms-query-source-authorization: <user-token>

2. 敏感度标签评估

收到查询请求后,Azure AI 搜索计算结果:

  1. 每个索引文档中的 sensitivityLabel 字段(在引入过程期间从 Microsoft Purview 提取)。
  2. 用户的有效 Purview 权限,由 Microsoft Entra ID 和 Purview 标签策略定义。

如果用户没有获得具有 EXTRACT 权限的文档敏感度标签的授权,该文档将从查询结果中排除。

注释

在内部,该服务会生成类似于 RBAC 强制机制的动态访问筛选器。
这些筛选器不可见,无法在查询有效负载中修改。

3.保护结果筛选

Azure AI 搜索在所有用户定义筛选器和评分步骤之后应用安全筛选器。
仅当满足以下条件时,文档才会被包含在最终结果集中。

  • 调用应用程序具有有效的角色分配(通过 RBAC 进行),并且
  • 表示 x-ms-query-source-authorization 的用户标识令牌有效,并允许使用文档的敏感度标签查看内容。

如果任一条件失败,则会从结果中省略文档。

获取用户访问令牌

若要使用用户上下文查询Azure AI 搜索,必须获取表示已登录用户的访问令牌。 使用的方法取决于是使用自己的令牌在本地进行测试,还是有权访问源文档,还是实现需要传递最终用户令牌的应用程序流。

对于测试场景

对于本地测试,可以使用Azure CLI检索用户访问令牌:

$token = az account get-access-token `
  --resource https://search.azure.cn `
  --query accessToken `
  --output tsv

此方法依赖于您当前的 Azure CLI 登录会话,因此,您可以在通过敏感度标签分配有EXTRACT权限的文档上使用该上下文。 此方法仅适用于开发和验证方案。

查询示例

下面是使用Microsoft Purview敏感度标签强制执行的查询请求的示例。

应用程序令牌作为持有者令牌传递在Authorization标头中。 用户令牌作为标头中的 x-ms-query-source-authorization 原始令牌值传递,没有 Bearer 前缀。

POST  {{endpoint}}/indexes/sensitivity-docs/docs/search?api-version=2025-11-01-preview
Authorization: Bearer {{app-query-token}}
x-ms-query-source-authorization: {{user-query-token}}
Content-Type: application/json

{
    "search": "*",
    "select": "title,summary,sensitivityLabel",
    "orderby": "title asc"
}

当Azure AI 搜索索引来自源(如 SharePoint、Azure Blob 等)的敏感度标签的文档内容时,它将存储内容和标签元数据。 仅当用户具有通过敏感度标签定义分配的文档的数据 EXTRACT 访问权限时,搜索查询才会返回索引内容以及标识应用于文档的敏感度标签的 GUID。 此 GUID 唯一标识标签,但不包括可读属性,例如标签名称或关联权限。

请注意,仅靠 GUID 在涉及用户界面的情况下是不够的,因为敏感度标签通常包含其他策略控制,这些策略由 Microsoft Purview 信息保护 强制实施,例如打印权限或屏幕截图和屏幕录制限制。 Azure AI 搜索不会呈现这些功能。

若要显示标签名称和/或强制实施特定于 UI 的限制,应用程序必须调用 Azure Purview 信息保护 终结点才能检索完整的标签元数据和关联权限。

可以使用Azure AI 搜索返回的 GUID 解析标签属性,并调用 Purview 标签 API提取标签名称、说明和策略设置。 此 端到端演示示例 包含演示如何从用户界面调用终结点的代码。 它还演示如何提取标签名称,并将其作为 RAG 应用程序或代理中使用的引文的一部分公开。

端到端测试设置

此存储库演示:

  • 如何在Azure AI 搜索中配置敏感性标签的同步和遵从
  • 如何测试带有敏感度标签的文档在引入和查询时的强制执行方案
  • 如何提取标签名称并将其作为 RAG 应用程序或代理中使用的引文的一部分公开。