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