使用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敏感度标签,并在查询时强制执行基于标签的访问控制。 此功能在公共预览版中提供,使组织能够将搜索体验与 Azure Purview 中定义的现有信息保护策略保持一致。

使用敏感度标签索引,Azure AI 搜索提取和存储描述每个文档敏感度级别的元数据。 它还强制实施基于标签的access control,确保只有经过授权的用户才能在搜索结果中查看或检索标记的内容。

此功能适用于以下数据源:

先决条件

  • 在编制索引之前,必须配置Microsoft Purview敏感度标签策略并将其应用于文档

  • Global AdministratorPrivileged Role Administrator 角色在您的 Microsoft Entra 租户中需要授予搜索服务对 Purview API 和敏感度标签的访问权限。

  • Azure AI 搜索服务和发出查询的用户必须位于同一Microsoft Entra 租户中。

  • 文件类型必须包含在 Purview 敏感度标签支持的格式列表中,并且也可以被Azure AI 搜索索引器识别为 Office 支持的文件类型

  • REST API 版本 2026-05-01-preview 或等效的预览版 SDK 包。

局限性

  • 初始版本仅支持 REST API 版本 2025-11-01-preview 和关联的 beta SDK。 没有用于配置或管理的门户体验。

  • 已启用 Purview 的索引不支持自动完成建议 API,因为它们尚不能强制实施基于标签的访问控制。

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

  • 不支持用于权限分配的用户托管标识,以允许搜索服务提取敏感度标签和敏感度标记的内容。

  • 以下索引器功能不支持具有敏感度标签的文档。 如果在技能集或索引器中使用上述任何功能,则不会处理具有敏感度标签的文档。

策略强制实施的工作原理

敏感度标签支持分为两个阶段:索引编制和查询时间强制实施。

索引

按计划配置时,索引器将从数据源拉取新文档和更新。 对于每个文档,它捕获:

  • 文档内容
  • 关联的敏感度标签
  • 自上次运行索引器以来对内容或标签的更改

注释

在下次成功运行索引器之前,源文档上的标签更改不会反映在索引中。

1. 启用 AI 搜索托管标识

Azure AI 搜索 service 启用系统分配的托管标识。 索引器需要此标识以安全地访问 Microsoft Purview 并提取标签元数据。

2. 在 AI Search service上启用 RBAC

在 Azure AI 搜索 服务上启用基于角色的访问控制(RBAC)。 此步骤是必需的,因此与内容相关的操作(如索引内容和查询索引)成功。 保留 RBAC 和 API 密钥,以避免中断依赖于 API 密钥的作。

3. 授予权限以提取敏感度标签

访问 Microsoft Purview 敏感度标签元数据涉及的高特权操作包括读取加密内容和安全分类。 若要在Azure AI 搜索中启用此功能,必须按照组织的内部治理和审批流程,向服务的托管标识授予特定角色。

标识全局或特权角色管理员

如果需要确定谁可以授权搜索服务的权限,可以在 Microsoft Entra 租户中找到活跃或符合条件的全球管理员。

  1. Azure portal 中,搜索 Microsoft Entra ID

    Microsoft Entra 产品搜索动作的屏幕截图。

  2. 在左侧导航窗格中,选择“ 管理 > 角色”和“管理员”。

    Entra 角色和管理员页面的屏幕截图。

  3. 搜索 Global AdministratorPrivileged Role Administrator 角色并选择它。

    全球管理员角色选择的截图。

  4. “合格分配 ”和 “活动分配”下,查看有权运行权限设置过程的管理员列表。

    符合条件的角色和活动分配的屏幕截图。

安全治理审批

让内部安全或合规性团队查看请求。 Azure建议遵循公司的标准治理和安全评审过程,然后再继续执行任何角色分配。

批准后,Global Administrator或特权角色管理员必须将以下角色分配给由Azure AI 搜索系统分配的托管标识:

  • Content.SuperUser - 用于标签和内容提取
  • UnifiedPolicy.Tenant.Read - 用于 Purview 策略和标签元数据的访问

通过 PowerShell 分配角色

Global Administrator 或 特权角色管理员 应使用以下“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"

# ARM Service Principal for policy read
$ARMSResourceSP = Get-EntraServicePrincipal -Filter "appID eq '00000012-0000-0000-c000-000000000000'"
New-EntraServicePrincipalAppRoleAssignment -ServicePrincipalId $managedIdentityObjectId -Principal $managedIdentityObjectId -ResourceId $ARMSResourceSP.Id -Id "7347eb49-7a1a-43c5-8eac-a5cd1d1c7cf0"

提供的 PowerShell 脚本中的 appID 角色与以下Azure角色相关联:

AppID 服务主体
870c4f2e-85b6-4d43-bdda-6ed9a579b725 Microsoft信息保护同步服务
00000012-0000-0000-c000-000000000000 Azure 资源管理器

4.配置索引以启用 Purview 敏感度标签

当需要敏感度标签支持时,请在您的purviewEnabled中将true属性设置为

重要

必须在创建索引时将 purviewEnabled 属性设置为 true。 此设置是永久性的,以后无法修改。

如果 purviewEnabled 设置为 true,则所有文档操作 API 仅支持 RBAC 身份验证。

API 密钥访问仅限于索引架构的检索功能(包括列表和获取)。

PUT https://{service}.search.azure.cn/indexes('{indexName}')?api-version=2026-05-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.在技能集中配置索引投影(如果适用)

如果索引器具有 技能集 ,并且通过拆分技能实现数据分块,例如,如果已集成向量化,则必须确保通过 技能集中的索引投影将敏感度标签映射到每个区块。

PUT https://{service}.search.azure.cn/skillsets/{skillset}?api-version=2026-05-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 分钟一次。

后续步骤