注释
此功能目前处于公开预览状态。 此预览版未随附服务级别协议,建议不要用于生产工作负载。 某些功能可能不受支持或者受限。 有关详细信息,请参阅 Azure 预览版的使用条款。
在查询时,Azure AI Search强制实施Microsoft Purview中定义的敏感度标签策略。 这些策略包括评估绑定到每个文档的 READ 使用权限。 因此,用户只能检索允许查看的文档。
此功能将文档级别的访问控制扩展到与贵组织在 Azure Purview 中管理的信息保护和合规性要求相一致。
启用 Purview 敏感度标签索引后,Azure AI Search在查询期间检查每个文档的标签元数据。 它根据 Purview 策略应用访问筛选器,只返回请求用户被允许访问的结果。
本文介绍查询时敏感度标签强制实施的工作原理,以及如何发出安全搜索查询。
先决条件
在查询启用了敏感度标签的索引之前,必须满足以下条件:
Azure AI Search service和发出查询的用户必须属于同一Microsoft Entra 租户。
必须使用最新的 预览版 API 版本 2025-11-01-preview 或兼容的 beta SDK 来查询索引。
必须使用Azure基于角色的access control(RBAC)(而不是 API 密钥)对查询进行身份验证。 仅当启用 Purview 敏感度标签功能时,API 密钥访问才限制为索引架构检索。
局限性
- 不支持 Microsoft Entra Guest 用户和跨租户查询。
- 已启用 Purview 的索引不支持自动完成和建议 API。
- 如果标签评估失败(例如 Purview API 暂时不可用),服务将返回 5xx , 并且不 返回部分或未筛选的结果集。
- 系统仅在上次索引器运行时评估现有的标签;最近的标签更改可能无法立即反映,需等到下一个计划的重新编制索引。
查询时敏感度标签强制执行的工作原理
查询包含Microsoft Purview敏感度标签的索引时,Azure AI Search在返回结果之前检查关联的 Purview 策略。 这样,查询仅返回用户令牌允许访问的文档。
1.用户标识和应用程序角色输入
在查询时,Azure AI Search验证两者:
- 调用应用程序的 RBAC 角色,在
Authorization标头中提供。 - 标头中
x-ms-query-source-authorization提供的通过令牌的用户标识。
两者都需要授权基于标签的可见性。
| 输入类型 | Description | 示例源 |
|---|---|---|
| 应用程序角色 | 确定调用应用是否有权对索引执行查询。 | Authorization: Bearer <app-token> |
| 用户标识 | 确定最终用户可以访问哪些敏感度标签。 | x-ms-query-source-authorization: Bearer <user-token> |
2. 敏感度标签评估
收到查询请求后,Azure AI Search计算结果:
- 每个索引文档中的 sensitivityLabel 字段(从引入期间Microsoft Purview提取)。
- 用户的有效 Purview 权限,由 Microsoft Entra ID 和 Purview 标签策略定义。
如果用户没有获得具有提取权限的文档敏感度标签的授权,该文档将从查询结果中排除。
注释
在内部,该服务会生成类似于 RBAC 强制机制的动态访问筛选器。
这些筛选器不可见,无法在查询有效负载中修改。
3.保护结果筛选
Azure AI Search在所有用户定义筛选器和评分步骤之后应用安全筛选器。
仅当满足以下条件时,文档才会被包含在最终结果集中。
- 调用应用程序具有有效的角色分配(通过 RBAC 进行),并且
- 表示
x-ms-query-source-authorization的用户标识令牌有效,并允许使用文档的敏感度标签查看内容。
如果任一条件失败,则会从结果中省略文档。
查询示例
下面是使用Microsoft Purview敏感度标签强制执行的查询请求的示例。
查询令牌在请求头中传递。 这两个标头都必须包含表示应用程序和最终用户的有效持有者令牌。
POST {{endpoint}}/indexes/sensitivity-docs/docs/search?api-version=2025-11-01-preview
Authorization: Bearer {{app-query-token}}
x-ms-query-source-authorization: Bearer {{user-query-token}}
Content-Type: application/json
{
"search": "*",
"select": "title,summary,sensitivityLabel",
"orderby": "title asc"
}
Azure AI Search中的敏感度标签处理
当Azure AI Search索引包含来自 SharePoint、Azure Blob 等源敏感度标签的文档内容时,它将存储内容和标签元数据。 搜索查询返回索引内容和用于标识文档应用的敏感度标签的GUID,前提是用户对该文档具有读取权限。 此 GUID 唯一标识标签,但不包括可读属性,例如标签名称或关联权限。
请注意,仅 GUID 就不足以包含用户界面的方案,因为敏感度标签通常携带由Microsoft Purview Information Protection强制实施的其他策略控制,例如:打印权限或屏幕截图和屏幕捕获限制。 Azure AI Search不会展示这些功能。
若要显示标签名称和/或强制实施特定于 UI 的限制,应用程序必须调用 Azure Purview Information Protection 终结点才能检索完整的标签元数据和关联权限。
可以使用Azure AI Search返回的 GUID 解析标签属性,并调用 Purview 标签 API提取标签名称、说明和策略设置。 此 端到端演示示例 包含演示如何从用户界面调用终结点的代码。 它还演示如何提取标签名称,并将其作为 RAG 应用程序或代理中使用的引文的一部分公开。