Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Примечание
Поиск с использованием ИИ Azure доступна через портал Azure, REST API и Azure SDKs. Он также лежит в основе Foundry IQ — управляемого слоя знаний, который преобразует корпоративный контент в многократно используемые базы знаний с учетом разрешений доступа для агентов на портале Microsoft Foundry.
Important
Функции, возможности или свойства, помеченные (предварительная версия), не охватываются соглашением об уровне обслуживания, не рекомендуются для рабочих нагрузок и могут изменяться или ограничиваться до того, как они становятся общедоступными. Условия предварительной версии Поиск с использованием ИИ Azure применяются ко всем функциям предварительной версии, независимо от того, является ли он автономным или частью общедоступной функции.
служба хранилища Azure обеспечивает доступ на основе ролей к контейнерам в хранилище BLOB-объектов, где роли, такие как Storage Data Reader или Storage Blob Data Участник определяет, имеет ли кто-то доступ к содержимому. Поиск с использованием ИИ Azure поддерживает прием разрешений пользователей (предварительная версия) вместе с приемом документов, чтобы можно было использовать эти разрешения для управления доступом к результатам поиска. Если у пользователя нет разрешений на определенный каталог или файл в служба хранилища Azure, этот пользователь не сможет получить доступ к соответствующим документам в результатах Поиск с использованием ИИ Azure, даже если у вас есть назначение Search Index Data Readerна индекс.
- Начиная с версии 2025-05-01-preview и более поздних, метаданные областей RBAC можно получать с помощью индексатора Blob-объектов.
- Версия 2025-11-01-preview и более поздние версии обеспечивают эквивалентную поддержку источников знаний Blob в служба хранилища Azure.
Область RBAC устанавливается на уровне контейнера и распространяется на все блобы (документы) через наследование разрешений. Область RBAC фиксируется во время индексирования в виде метаданных разрешений. Api push-уведомлений можно использовать для отправки и индексирования содержимого и метаданных разрешений вручную (см. раздел "Разрешения индексирования с помощью REST API push") или использовать индексатор или источник знаний для автоматизации приема данных. В этой статье рассматривается автоматизация индексирования.
Во время запроса идентификатор вызывающего объекта включается в заголовок запроса с помощью x-ms-query-source-authorization параметра. Удостоверение должно соответствовать метаданным разрешений для документов, чтобы пользователь мог видеть результаты поиска.
В этой статье рассматриваются подходы к автоматизации индексирования, основанные на этом фундаменте:
Объекты BLOB в служба хранилища Azure, защищенные с помощью управления доступом на основе ролей (Azure RBAC). Нет поддержки управления доступом на основе атрибутов (Azure ABAC).
Индексатор BLOB-объектов Azure или источник знаний BLOB извлекает и получает данные и метаданные, включая фильтры разрешений. Чтобы получить поддержку фильтра разрешений, используйте последнюю предварительную версию REST API или пакет предварительной версии Azure SDK, поддерживающей эту функцию.
An index in Поиск с использованием ИИ Azure содержащий проиндексированные документы и соответствующие разрешения. Метаданные разрешений хранятся в виде полей в индексе.
Запрос, использующий фильтры разрешений. Чтобы настроить запросы, которые уважают фильтры разрешений, используйте последнюю предварительную версию REST API или пакет предварительной версии Azure SDK, поддерживающей эту функцию.
Необходимые условия
Аутентификация и авторизация Microsoft Entra ID. Службы и приложения должны находиться в одном клиенте. Пользователи могут находиться в разных арендаторах, пока все арендаторы Microsoft Entra ID. Назначения ролей используются для каждого аутентифицированного соединения.
Поиск с использованием ИИ Azure, любой регион, но для поддержки управляемых удостоверений необходимо иметь оплачиваемый уровень (базовый и более высокий). Служба поиска должна быть настроена для доступа на основе ролей и должна иметь управляемое удостоверение (система или пользователь).
служба хранилища Azure, производительность уровня "Стандартный" (общего назначения версии 2) на горячих, холодных и архивных уровнях доступа с контейнерами или блобами, защищёнными с помощью RBAC.
Вы должны понять, как работают индексаторы и источники знаний и как создать индекс. В этой статье описываются параметры конфигурации для источника данных и индексатора, но не приведены шаги по созданию индекса. Дополнительные сведения об индексах, предназначенных для фильтров разрешений, см. в разделе "Создание индекса с полями фильтра разрешений".
Ограничения
Портал Azure не поддерживает эту функцию.
Следующие функции индексатора не поддерживают наследование разрешений в индексированных документах, исходящих из ADLS 2-го поколения. Если вы используете какие-либо из этих функций в наборе навыков или индексаторе, разрешения на уровне документа не включаются в индексированное содержимое.
Настройка хранилища Blob
Убедитесь, что контейнер BLOB-объектов использует доступ на основе ролей.
Войдите на портал Azure и найдите учетную запись хранения.
Разверните контейнеры и выберите контейнер с BLOB-объектами, которые нужно индексировать.
Выберите контроль доступа (IAM) для проверки назначений ролей. Пользователи и группы с средством чтения данных BLOB-объектов хранилища или участника данных BLOB-объектов хранилища имеют доступ к поиску документов в индексе после индексации контейнера.
Авторизация
Для выполнения индексатора удостоверение личности службы поиска должно иметь разрешение чтения данных BLOB-объектов хранилища. Для получения дополнительной информации см. Подключение к служба хранилища Azure с помощью управляемого удостоверения.
Настройка Поиск с использованием ИИ Azure
Помните, что служба поиска должна иметь следующее:
Авторизация
Для выполнения индексатора клиент, который делает вызов API, должен иметь разрешение Search Service Contributor для создания объектов, Search Index Data Contributor для импорта данных и Search Index Data Reader для запроса индекса. См. Подключение к Поиск с использованием ИИ Azure с использованием ролей.
Настройка источника знаний
Если вы используете источник знаний, определения в источнике знаний используются для создания полного конвейера индексирования (индексатора, источника данных и индекса). Область RBAC обнаруживается и автоматически включается в созданный индекс. Если требуется наследование разрешений в индексируемом содержимом, не нужно изменять какие-либо созданные объекты.
Ключевые моменты конфигурации, которые делают это работоспособным для этого сценария:
-
isADLSGen2имеет значение false, что означает, что источником данных является Хранилище BLOB-объектов Azure. -
ingestionPermissionOptionsуказываетrbacScope.
# Create / Update Azure Blob Knowledge Source
###
PUT {{url}}/knowledgesources/azure-blob-ks?api-version=2026-08-01-preview
api-key: {{key}}
Content-Type: application/json
{
"name": "azure-blob-ks",
"kind": "azureBlob",
"description": "A sample azure blob knowledge source",
"azureBlobParameters": {
"connectionString": "{{blob-connection-string}}",
"containerName": "blobcontainer",
"folderPath": null,
"isADLSGen2": false,
"ingestionParameters": {
"identity": null,
"embeddingModel": {
"kind": "azureOpenAI",
"azureOpenAIParameters": {
"deploymentId": "text-embedding-3-large",
"modelName": "text-embedding-3-large",
"resourceUri": "{{aoai-endpoint}}",
"apiKey": "{{aoai-key}}"
}
},
"chatCompletionModel": null,
"disableImageVerbalization": true,
"ingestionSchedule": null,
"ingestionPermissionOptions": ["rbacScope"],
"contentExtractionMode": "minimal",
"aiServices": {
"uri": "{{ai-endpoint}}",
"apiKey": "{{ai-key}}"
}
}
}
}
Справка: Создание или обновление источника знаний (REST API)
Настройка индексирования на основе индексатора
Если вы используете индексатор, настройте его, источник данных и индекс для извлечения метаданных разрешений из BLOB-объектов.
Создание источника данных
Тип источника данных должен быть
azureblob.Режим синтаксического анализа источника данных должен быть по умолчанию.
Источник данных должен иметь
indexerPermissionOptionsиrbacScope.Для
rbacScopeнастройте строку подключения в формате управляемого удостоверения.Для строк подключения, использующих назначенное пользователем управляющее удостоверение, также необходимо указать свойство
identity.
Пример JSON с управляемым системой удостоверением и indexerPermissionOptions:
{
"name" : "my-blob-datasource",
"type": "azureblob",
"indexerPermissionOptions": ["rbacScope"],
"credentials": {
"connectionString": "ResourceId=/subscriptions/<your subscription ID>/resourceGroups/<your resource group name>/providers/Microsoft.Storage/storageAccounts/<your storage account name>/;"
},
"container": {
"name": "<your-container-name>",
"query": "<optional-query-used-for-selecting-specific-blobs>"
}
}
Пример схемы JSON с управляемым пользователем удостоверением в строка подключения:
{
"name" : "my-blob-datasource",
"type": "azureblob",
"indexerPermissionOptions": ["rbacScope"],
"credentials": {
"connectionString": "ResourceId=/subscriptions/<your subscription ID>/resourceGroups/<your resource group name>/providers/Microsoft.Storage/storageAccounts/<your storage account name>/;"
},
"container": {
"name": "<your-container-name>",
"query": "<optional-query-used-for-selecting-specific-blobs>"
},
"identity": {
"@odata.type": "#Microsoft.Azure.Search.DataUserAssignedIdentity",
"userAssignedIdentity": "/subscriptions/{subscription-ID}/resourceGroups/{resource-group-name}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{user-assigned-managed-identity-name}"
}
}
Создание полей разрешений в индексе
В Поиск с использованием ИИ Azure убедитесь, что индекс содержит определения полей для метаданных разрешений. Метаданные разрешений можно индексировать, если indexerPermissionOptions указано в определении источника данных.
Рекомендуемые атрибуты схемы области RBAC:
- Поле области RBAC со значением permissionFilter
rbacScope. - Свойство
permissionFilterOptionдля включения фильтрации во время запроса. - Использование строковых полей для метаданных разрешений
- Задайте
filterableзначение true для всех полей.
Обратите внимание, что retrievable имеет значение «ложь». Вы можете задать значение true во время разработки, чтобы проверить наличие разрешений, но не забудьте вернуть значение false перед развертыванием в рабочей среде, чтобы удостоверения субъектов безопасности не отображались в результатах.
Пример схемы JSON:
{
...
"fields": [
...
{
"name": "RbacScope",
"type": "Edm.String",
"permissionFilter": "rbacScope",
"filterable": true,
"retrievable": false
}
],
"permissionFilterOption": "enabled"
}
Настройка индексатора
Сопоставления полей в индексаторе задают путь к данным полям в индексе. Для полей назначения и назначения, которые различаются по имени или типу данных, требуется явное сопоставление полей. Следующие поля метаданных в Хранилище BLOB-объектов Azure могут потребовать сопоставления полей, если вы изменяете имя поля:
-
metadata_rbac_scope (
Edm.String) — область контейнера RBAC.
Укажите fieldMappings в индексаторе, чтобы перенаправить метаданные разрешений в целевые поля во время индексирования.
Пример схемы JSON:
{
...
"fieldMappings": [
{ "sourceFieldName": "metadata_rbac_scope", "targetFieldName": "RbacScope" }
]
}
Запуск индексатора
После настройки индексатора, источника данных и индекса активируйте индексатор, чтобы запустить процесс. Если возникла проблема с конфигурацией или разрешениями, эти проблемы возникают на этом шаге.
По умолчанию индексатор запускается сразу после публикации его в службу поиска, но если конфигурация индексатора включает disabled значение true, индексатор размещается в отключенном состоянии, чтобы запустить индексатор вручную.
Мы рекомендуем запустить индексатор на портале Azure, чтобы отслеживать состояние и сообщения.
Предполагая отсутствие ошибок, индекс теперь заполнен, и вы можете продолжить с выполнением запросов и тестированием.
Отслеживание удаления
Чтобы эффективно управлять удалением BLOB-объектов, убедитесь, что вы включили отслеживание удаления перед первым запуском индексатора. Эта функция позволяет системе обнаруживать удаленные BLOB-объекты из источника и удалять соответствующее содержимое из индекса.