你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
注意
Azure AI 搜索可通过Azure门户、REST API 和Azure SDK获取。 它也是 Foundry IQ 的基础;Foundry IQ 是一个托管式知识层,可将企业内容转化为供 Microsoft Foundry 门户中的智能体使用的、可复用且具备权限感知能力的知识库。
重要
标记为“预览”的特性、功能或属性不受服务级别协议 (SLA) 保障,不建议用于生产工作负载,并且在正式发布之前可能会更改或受到限制。 Azure AI 搜索预览条款适用于所有预览功能,无论是独立功能还是正式版功能的一部分。
Azure AI 搜索 支持Microsoft Purview 敏感度标签提取和在查询时强制执行(预览版)。 在编制索引期间,它会自动提取和存储每个文档的敏感度标签元数据。 在查询时,它会根据Microsoft Purview中的现有信息保护策略强制实施基于标签的访问控制,确保只有经过授权的用户才能检索搜索结果中标记的内容。
此功能适用于以下数据源:
先决条件
配置Microsoft Purview敏感度标签策略,并在编制索引之前将其应用于文档。
在Microsoft Entra租户中拥有全局管理员或特权角色管理员角色,以授予搜索服务对 Purview API 和敏感度标签的访问权限。
Azure AI 搜索服务和发出查询的用户必须位于同一Microsoft Entra租户中。
使用 Purview 敏感度标签和 Azure AI 搜索索引器均支持的文件类型的源文档。
使用 REST API 版本 2026-08-01-preview 或等效的预览版 SDK 包。
重要
搜索服务必须使用系统分配的托管标识对Microsoft Purview进行身份验证。 此功能不支持用户分配的托管标识。
限制
Azure门户不支持此功能。
不支持来宾帐户和跨租户查询。
Microsoft Purview 角色分配不支持使用用户分配的托管标识。 只有服务的系统分配托管标识才能持有标签提取所需的
Content.SuperUser和UnifiedPolicy.Tenant.Read角色。 将这些角色直接分配给服务自身的标识 — 它代表索引器执行特权EXTRACT操作(读取加密内容和安全分类)。 请参阅 步骤 1 和 步骤 3。以下索引器功能不支持具有敏感度标签的文档。 如果在技能集或索引器中使用上述任何功能,则不会处理具有敏感度标签的文档。
策略强制实施的工作原理
敏感度标签支持分为两个阶段:索引编制和查询时间强制实施。
索引
按计划配置索引时,索引器将从数据源拉取新文档和更新。 对于每个文档,它记录:
- 文档内容
- 关联的敏感度标签
- 自上次运行索引器以来对内容或标签的更改
注意
在下次成功运行索引器之前,索引不会反映源文档的标签更改。
查询时 ACL 强制
在查询时,Azure AI 搜索 评估敏感度标签,并根据用户的 Microsoft Entra ID 令牌和 Microsoft Purview 标签策略实施 文档级别访问控制。 只有有权在给定标签下访问具有 READ 使用权限 的内容的用户才能在搜索结果中检索相应的文档。
授权管理员还可以发出 elevated read 请求,这些请求会返回调用用户通常无法看到的带标签文档,并为返回的每个文档生成一条 Microsoft Purview 审核日志条目。 提升读取权限需要在搜索服务上具有 搜索索引数据参与者 角色,并使用 2026-05-01-preview 或更高版本的 API。
端到端示例
以下这些图像展示了敏感度标签如何从标记流转到搜索体验。 在第一个图像中,用户将 Confidential 标签应用于Microsoft Word中的文档。 第二个映像中,企业聊天机器人在查询时强制实施标签,阻止机密内容的复制和共享操作。
1. 启用 AI 搜索托管标识
为Azure AI 搜索服务启用系统分配的托管标识 - 此功能不支持用户分配的托管标识。 索引器使用此标识通过Microsoft Purview进行身份验证并提取敏感度标签元数据。 它还必须在 步骤 3 中接收角色分配。
2. 在 AI 搜索服务上启用 RBAC
在Azure AI 搜索服务上启用基于角色的访问控制(RBAC)。 此步骤是必需的,因此与内容相关的操作(如索引内容和查询索引)成功。 保留 RBAC 和 API 密钥,以避免中断依赖于 API 密钥的操作。
3. 授予权限以提取敏感度标签
访问Microsoft Purview敏感度标签元数据涉及高特权操作,包括读取加密内容和安全分类。 若要在Azure AI 搜索中启用此功能,必须向服务托管标识授予特定角色-遵循组织的内部治理和审批流程。
标识全局或特权角色管理员
如果需要确定谁可以授权搜索服务的权限,可以在Microsoft Entra租户中找到活动或符合条件的全局管理员。
在 Azure 门户中,搜索 Microsoft Entra ID。
Microsoft Entra 产品的搜索操作的截图。 在左侧导航窗格中,选择“ 管理 > 角色”和“管理员”。
搜索 全局管理员 或 特权角色管理员 角色,并选择它。
在 “合格分配 ”和 “活动分配”下,查看有权运行权限设置过程的管理员列表。
安全治理审批
让内部安全或合规性团队查看请求。 Microsoft建议遵循公司的标准治理和安全评审过程,然后再继续执行任何角色分配。
获批准后,全局管理员或特权角色管理员必须将以下角色分配给 Azure AI 搜索系统分配的托管标识:
- Content.SuperUser – 用于标签和内容提取
- UnifiedPolicy.Tenant.Read – 用于 Purview 策略和标签元数据访问
通过 PowerShell 分配角色
注意
仅将这些角色分配给 Azure AI 搜索 服务的系统分配的托管标识,不要分配给用户分配的托管标识、服务主体或单个用户帐户。 PowerShell 脚本自动从服务资源检索托管标识对象 ID。
全局管理员或特权角色管理员应使用以下 PowerShell 脚本授予所需的权限。 将占位符值替换为实际订阅、资源组和搜索服务名称。
Install-Module -Name Az -Scope CurrentUser
Install-Module -Name Microsoft.Entra -AllowClobber
Import-Module Az.Resources
Connect-Entra -Scopes 'Application.ReadWrite.All'
$resourceIdWithManagedIdentity = "subscriptions/<subscriptionId>/resourceGroups/<resourceGroup>/providers/Microsoft.Search/searchServices/<searchServiceName>"
$managedIdentityObjectId = (Get-AzResource -ResourceId $resourceIdWithManagedIdentity).Identity.PrincipalId
# Microsoft Information Protection (MIP)
$MIPResourceSP = Get-EntraServicePrincipal -Filter "appID eq '870c4f2e-85b6-4d43-bdda-6ed9a579b725'"
New-EntraServicePrincipalAppRoleAssignment -ServicePrincipalId $managedIdentityObjectId -Principal $managedIdentityObjectId -ResourceId $MIPResourceSP.Id -Id "8b2071cd-015a-4025-8052-1c0dba2d3f64"
# Microsoft Rights Management Services (MRMS) - Service Principal for policy read
$MRMSResourceSP = Get-EntraServicePrincipal -Filter "appID eq '00000012-0000-0000-c000-000000000000'"
New-EntraServicePrincipalAppRoleAssignment -ServicePrincipalId $managedIdentityObjectId -Principal $managedIdentityObjectId -ResourceId $MRMSResourceSP.Id -Id "7347eb49-7a1a-43c5-8eac-a5cd1d1c7cf0"
提供的 PowerShell 脚本中的 appID 角色与以下Azure角色相关联:
| AppID | 服务主体 |
|---|---|
870c4f2e-85b6-4d43-bdda-6ed9a579b725 |
Microsoft信息保护同步服务 |
00000012-0000-0000-c000-000000000000 |
Microsoft 权限管理服务 |
4.配置索引以启用 Purview 敏感度标签
当需要敏感度标签支持时,请在您的purviewEnabled中将true属性设置为。
重要
必须在创建索引时将 purviewEnabled 属性设置为 true。 此设置是永久性的,以后无法修改。
如果 purviewEnabled 设置为 true,则所有文档操作 API 仅支持 RBAC 身份验证。
API 密钥访问仅限于索引架构检索(列表和获取)。
PUT https://{service}.search.windows.net/indexes('{indexName}')?api-version=2026-08-01-preview
{
"purviewEnabled": true,
"fields": [
{
"name": "sensitivityLabel",
"type": "Edm.String",
"filterable": true,
"sensitivityLabel": true,
"retrievable": true
}
]
}
5. 配置数据源
若要启用敏感度标签引入,请使用 indexerPermissionOptions 属性设置为 [“sensitivityLabel”] 配置 数据源 。
{
"name": "purview-sensitivity-datasource",
"type": "azureblob", // < adjust type value according to the data source you are enabling this for: sharepoint, onelake, adlsgen2.
"indexerPermissionOptions": [ "sensitivityLabel" ],
"credentials": {
"connectionString": <your-connection-string>;"
},
"container": {
"name": "<container-name>"
}
}
该 indexerPermissionOptions 属性指示索引器在引入过程中提取敏感度标签元数据,并将其附加到索引文档。
6. 如果适用,在技能集中配置索引投影
如果索引器具有 技能集 ,并且通过 文本拆分技能(如集成矢量化)实现数据分块,请通过 技能集中的索引投影将敏感度标签投影到每个区块上。
有关权限和 ACL 字段何时属于索引器字段映射与索引投影的更广泛规则,请参阅 “选择填充 ACL 字段的位置”。
此步骤对于查询时强制执行以及智能体检索响应都是必需的,以便在每个分块中包含每个文档 sensitivityLabelInfo。 如果没有投影映射,子区块行将无法正确筛选。
PUT https://{service}.search.windows.net/skillsets/{skillset}?api-version=2026-08-01-preview
{
"name": "my-skillset",
"skills": [
{
"@odata.type": "#Microsoft.Skills.Text.SplitSkill",
"name": "#split",
"context": "/document",
"inputs": [{ "name": "text", "source": "/document/content" }],
"outputs": [{ "name": "textItems", "targetName": "chunks" }]
}
// ... (other skills such as embeddings, entity recognition, etc.)
],
"indexProjections": {
"selectors": [
{
"targetIndexName": "chunks-index",
"parentKeyFieldName": "parentId", // must exist in target index
"sourceContext": "/document/chunks/*", // match your split output path
"mappings": [
{ "name": "chunkId", "source": "/document/chunks/*/id" }, // if you create an id per chunk
{ "name": "content", "source": "/document/chunks/*/text" }, // chunk text
{ "name": "parentId", "source": "/document/id" }, // parent doc id
{ "name": "sensitivityLabel", "source": "/document/metadata_sensitivity_label" } // <-- parent → child
]
}
],
"parameters": {
"projectionMode": "skipIndexingParentDocuments"
}
}
}
7. 配置索引器
- 在 索引器定义 中定义字段映射,以将提取的标签元数据路由到索引字段。
如果您的数据源使用不同的字段名称输出标签元数据(例如
metadata_sensitivity_label),请显式映射该字段。
{
"fieldMappings": [
{
"sourceFieldName": "metadata_sensitivity_label",
"targetFieldName": "sensitivityLabel"
}
]
}
- 索引器在计划索引器运行期间检测到对文档的标签、内容或元数据的更改时,会自动为敏感度标签更新编制索引。 按定期计划配置索引器。 支持的最小间隔为每 5 分钟一次。