Используйте индексатор Поиск с использованием ИИ Azure для приема и обработки меток конфиденциальности Microsoft Purview и применения защиты на уровне документов (предварительная версия)

Примечание

Поиск с использованием ИИ Azure доступна через портал Azure, REST API и Azure SDKs. Он также лежит в основе Foundry IQ — управляемого слоя знаний, который преобразует корпоративный контент в многократно используемые базы знаний с учетом разрешений доступа для агентов на портале Microsoft Foundry.

Важно

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

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

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

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

Необходимые условия

Важно

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

Ограничения

  • Портал Azure не поддерживает эту функцию.

  • Автозавершение и предложение API не поддерживаются для индексов с поддержкой Purview, так как они пока не могут применять управление доступом на основе меток.

  • Гостевые учетные записи и межтенантные запросы не поддерживаются.

  • Управляемые удостоверения, назначаемые пользователем, не поддерживаются для назначений ролей Microsoft Purview. Только управляемое удостоверение, назначенное системой службы может иметь роли Content.SuperUser и UnifiedPolicy.Tenant.Read, необходимые для извлечения меток. Назначьте эти роли непосредственно собственной идентичности службы — она выполняет привилегированные EXTRACT операции (чтение зашифрованного содержимого и классификаций безопасности) от имени индексатора. См. шаг 1 и шаг 3.

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

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

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

Индексация

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

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

Примечание

Индекс не отражает изменения меток в исходных документах до следующего успешного запуска индексатора.

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

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

Авторизованные администраторы также могут отправлять запросы на чтение с повышенными привилегиями, которые возвращают помеченные документы, обычно недоступные пользователю, отправившему запрос, и создают запись в журнале аудита Microsoft Purview для каждого возвращённого документа. Для чтения с повышенными правами требуется роль Search Index Data Contributor в службе поиска и версия API 2026-05-01-preview или более поздняя.

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

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

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

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

1. Активируйте управляемое удостоверение поиска на основе ИИ

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

2. Включение RBAC в службе поиска ИИ

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

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

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

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

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

  1. На портале Azure найдите Microsoft Entra ID.

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

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

    Снимок экрана страницы

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

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

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

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

Получить одобрение управляющего органа

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

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

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

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

Примечание

Назначайте эти роли только системному управляемому удостоверению службы Поиск с использованием ИИ Azure, а не управляемому удостоверению, назначаемому пользователем, субъекту-службе или отдельной учетной записи пользователя. Скрипт 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"

# 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"

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

AppID Субъект-служба
870c4f2e-85b6-4d43-bdda-6ed9a579b725 Служба синхронизации Microsoft Info Protection
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 минут.

Дальнейшие действия