Использование индексатора поиска ИИ Azure для приема меток конфиденциальности Microsoft Purview и обеспечения безопасности на уровне документа

Замечание

Эта функция сейчас доступна в общедоступной предварительной версии. Этот предварительный просмотр предоставляется без соглашения об уровне обслуживания и не предназначается для производственных рабочих нагрузок. Некоторые функции могут не поддерживаться или их возможности могут быть ограничены. Для получения дополнительной информации см. Дополнительные условия использования для предварительных версий Microsoft Azure.

Поиск по искусственному интеллекту Azure теперь поддерживает автоматическое извлечение меток конфиденциальности Microsoft Purview на уровне документа во время индексирования с применением контроля доступа на основе меток во время запроса. Эта функция доступна в общедоступной предварительной версии, что позволяет организациям выравнивать возможности поиска с существующими политиками защиты информации , определенными в Microsoft Purview.

При индексировании меток конфиденциальности поиск Azure ИИ извлекает и сохраняет метаданные, описывающие уровень конфиденциальности каждого документа. Он также применяет управление доступом на основе меток, гарантируя, что только авторизованные пользователи могут просматривать или извлекать помеченное содержимое в результатах поиска.

Эта функция доступна для следующих источников данных:

Схема архитектуры, показывающая управляемое решение RAG, в котором документы, помеченные метками конфиденциальности Microsoft Purview, индексируются в службе

Предпосылки

Ограничения

Как работает применение политик

Поддержка меток конфиденциальности имеет два этапа: индексирование и применение на этапе запроса.

Индексирование

При настройке по расписанию индексатор извлекает новые документы и обновляется из источника данных. Для каждого документа он записывает:

  • Содержимое документа
  • Связанная метка чувствительности
  • Изменения содержимого или меток с момента последнего запуска индексатора

Замечание

Может возникнуть задержка между изменением метки в документе и при обнаружении обновления индексатором.

Принудительное применение времени запроса

Во время выполнения запроса поиск ИИ Azure оценивает метки конфиденциальности и применяет управление доступом на уровне документа на основе маркера идентификатора Microsoft Entra и политик меток Microsoft Purview. Только пользователи, авторизованные на доступ к содержимому с правом на использование READ под данной меткой, могут найти соответствующие документы в результатах поиска.

Полный пример

На следующих изображениях показано, как чувствительные метки переходят от создания к поисковому процессу. На первом изображении пользователь применяет конфиденциальную метку к документу в Microsoft Word. На втором изображении корпоративный чат-бот применяет метку во время запроса, блокируя действия копирования и общего доступа к конфиденциальному содержимому.

Снимок экрана меню конфиденциальности Microsoft Word, показывающий иерархию меток, включая Не деловые, Общедоступную, Общую, Конфиденциальную с вложенными метками, такие как Project Obsidian и Только для получателей, и Строго конфиденциальные, с меткой

Снимок экрана корпоративного чат-бота компании Contoso, отображающего ответ с нумерованными цитатами, баннер метки конфиденциальности проекта Obsidian, заблокированные действия копирования и совместного использования, а также метки конфиденциальности для каждого документа, показанные в панели ссылок.

1. Включение управляемого удостоверения поиска ИИ

Включите системное управляемое удостоверение для службы Поиск с использованием ИИ Azure. Для индексатора требуется этот идентификатор, чтобы безопасно получать доступ к Microsoft Purview и извлекать метаданные меток.

2. Активация RBAC в службе поиска искусственного интеллекта

Включите управление доступом на основе ролей (RBAC) в службе поиска ИИ Azure. Этот шаг необходим, чтобы операции, связанные с содержимым, такие как индексирование содержимого и запросы к индексу, выполнялись успешно. Сохраняйте ключи RBAC и API, чтобы избежать нарушений операций, основанных на ключах API.

3. Предоставление доступа к извлечению меток конфиденциальности

Доступ к метаданным метки конфиденциальности Microsoft Purview включает в себя операции с высоким уровнем привилегий, включая чтение зашифрованных классификаций содержимого и безопасности. Чтобы включить эту возможность в Поиск с использованием ИИ Azure, необходимо предоставить управляемому удостоверению службы определенные роли, следуя внутренним процессам управления и утверждения вашей организации.

Определение глобальных или привилегированных администраторов ролей

Если вам нужно определить, кто может авторизовать разрешения для службы поиска, вы можете найти активных или соответствующих глобальных администраторов в клиенте Microsoft Entra.

  1. В портал Azure найдите идентификатор Microsoft Entra.

    Снимок экрана: действие поиска для продукта Microsoft Entra.

  2. В области навигации слева выберите "Управление > ролями и администраторами".

    Скриншот страницы

  3. Найдите роль глобального администратора или администратора привилегированных ролей и выберите ее.

    Снимок экрана: выбор роли глобального администратора.

  4. В разделе "Допустимые назначения " и " Активные назначения" просмотрите список администраторов, авторизованных для запуска процесса установки разрешений.

    Снимок экрана: допустимые и активные назначения ролей.

Утверждение на безопасное управление

Обратитесь к внутренним группам по безопасности или соответствию требованиям, чтобы просмотреть запрос. Корпорация Майкрософт рекомендует выполнять стандартный процесс управления и проверки безопасности вашей компании, прежде чем продолжать работу с любыми назначениями ролей.

После утверждения глобальный администратор или администратор привилегированных ролей должен назначить следующие роли управляемому удостоверению, системно назначенному поисковой системе ИИ Azure:

  • Content.SuperUser — для извлечения меток и содержимого
  • UnifiedPolicy.Tenant.Read — для политики Purview и доступа к метаданным меток

Назначение ролей с помощью PowerShell

Глобальный администратор или администратор привилегированных ролей должен использовать следующий сценарий 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"

Роли appID в предоставленном скрипте PowerShell связаны со следующими ролями Azure:

AppID Служебный принципал
870c4f2e-85b6-4d43-bdda-6ed9a579b725 Служба синхронизации Microsoft Info Protection
00000012-0000-0000-c000-000000000000 Azure Resource Manager

4. Настройка индекса для включения метки конфиденциальности Purview

Если требуется поддержка меток конфиденциальности, задайте для свойства purviewEnabled значение true в определении индекса.

Это важно

Свойство purviewEnabled должно иметь значение true при создании индекса. Этот параметр является постоянным и не может быть изменен позже. Если для purviewEnabled задано значение "true", для всех API операций с документами поддерживается только проверка подлинности RBAC. Доступ к ключу API ограничен только для получения схемы индекса (list и get).

PUT https://{service}.search.windows.net/indexes('{indexName}')?api-version=2025-11-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.windows.net/skillsets/{skillset}?api-version=2025-11-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 минут.

Дальнейшие шаги

Как выполнять запросы к индексу, поддерживающему метки конфиденциальности

Безопасность на уровне документа в службе "Поиск ИИ Azure"