Настройка службы поиска для подключения с помощью управляемого удостоверения

Note

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

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

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

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

  • Служба Поиск с использованием ИИ Azure в любом регионе на уровне Basic или выше.

  • Ресурс Azure, который принимает входящие запросы от субъекта безопасности Microsoft Entra, имеющего допустимое назначение роли.

  • Чтобы создать управляемое удостоверение, необходимо быть Владельцем или Администратором доступа пользователей. Чтобы назначить роли, необходимо обладать правами владельца, быть администратором доступа пользователей, администратором управления доступом на основе ролей или членом настраиваемой роли с разрешениями Microsoft.Authorization/roleAssignments/write.

Поддерживаемые сценарии

Управляемые удостоверения можно использовать для следующих сценариев.

Сценарий Назначено системой Пользователь назначен
Подключение к источникам данных индексатора1 Да Да
Подключитесь к моделям внедрения и завершения чата в Azure OpenAI, Microsoft Foundry и Функции Azure с помощью навыков и векторизаторов 2 Да Да
Подключитесь к Azure Key Vault для ключей, управляемых клиентом Да Да
Подключение к отладочным сессиям (размещены в служба хранилища Azure)1 Да Нет
Подключиться к кэшу обогащения (размещённом в служба хранилища Azure)13 Да Да 4
Connect to a Knowledge Store (размещено в служба хранилища Azure)1 Да Да

1 Для подключения между поиском и хранилищем сетевая безопасность накладывает ограничения на то, какой тип управляемого удостоверения можно использовать. Для подключения в том же регионе к служба хранилища Azure можно использовать только системно управляемое удостоверение, и это подключение должно осуществляться через исключение доверенной службы или правило экземпляра ресурса. Дополнительные сведения см. в статье "Доступ к учетной записи хранения, защищенной сетью ".

2 Подключения к Azure OpenAI, Foundry и Функции Azure через навыки и векторизаторы включают: Пользовательский навык, Пользовательский векторизатор, Навык встраивания Azure OpenAI, Векторизатор Azure OpenAI, Навык AML и Векторизатор каталога моделей Microsoft Foundry.

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

4 Назначаемое пользователем управляемое удостоверение для подключений кэша обогащения требует предварительной версии REST API (2025-11-01-preview или более поздней версии) или пакета SDK предварительной версии. Все назначенные пользователем сценарии управляемого удостоверения в этой таблице поддерживаются в версиях REST API, начиная с 2026-04-01.

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

Управляемое удостоверение, назначаемое системой, — это субъект безопасности Microsoft Entra ID, который автоматически создается и связан с ресурсом Azure, например службой Поиск с использованием ИИ Azure.

Для каждой службы поиска можно иметь одно управляемое системой удостоверение. Она уникальна для службы поиска и связана с ней в течение всего времени существования.

При активации управляемого удостоверения, назначаемого системой, Microsoft Entra ID создает субъект безопасности для службы поиска, который используется для аутентификации к другим ресурсам Azure. Затем вы можете использовать это удостоверение в назначениях ролей для авторизованного доступа к данным и операциям.

  1. Перейдите в службу поиска на портале Azure.

  2. На левой панели выберите Параметры>Идентификация.

  3. На вкладке "Назначенная системой" в разделе "Состояние" выберите "Включено".

  4. Нажмите кнопку "Сохранить".

    Снимок экрана страницы идентификации на портале Azure.

    После сохранения параметров страница обновляется, чтобы отобразить идентификатор объекта, назначенный службе поиска.

    Снимок экрана: идентификатор объекта системной идентичности.

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

Назначенное пользователем управляемое удостоверение — это ресурс Azure, который может быть привязан к подпискам, группам ресурсов или типам ресурсов.

Вы можете создать несколько управляемых удостоверений, назначаемых пользователем, для более детальности назначений ролей. Например, может потребоваться создание отдельных учетных записей для различных приложений и сценариев. Как независимо созданный и управляемый ресурс, он не привязан к самой службе.

Шаги по настройке управляемого удостоверения, назначенного пользователем, следующие:

  • В подписке Azure создайте управляемое удостоверение, назначаемое пользователем.

  • В службе поиска свяжите управляемое удостоверение, назначаемое пользователем, со службой поиска.

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

Связывание управляемого удостоверения, назначаемого пользователем, со службой Поиск с использованием ИИ Azure поддерживается в портале Azure, API управления поиском REST и пакетах SDK, которые предоставляют эту функцию.

  1. Войдите на портал Azure.

  2. В левом верхнем углу панели мониторинга выберите "Создать ресурс".

  3. Используйте поле поиска, чтобы найти управляемое удостоверение, назначаемое пользователем, и нажмите кнопку "Создать".

    Скриншот плитки управляемого удостоверения с назначением пользователем в Azure Marketplace.

  4. Выберите подписку, группу ресурсов и регион. Присвойте удостоверению описательное имя.

  5. Нажмите кнопку "Создать " и дождитесь завершения развертывания ресурса.

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

  6. На странице службы поиска выберите "Параметры>Идентификация".

  7. На вкладке "Назначенные пользователем" нажмите Добавить.

  8. Выберите подписку и управляемое удостоверение, назначенное пользователем, которое вы ранее создали.

Назначение роли

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

  • Разрешения на чтение необходимы для подключений к данным индексатора и доступа к ключу, управляемому клиентом, в Azure Key Vault.

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

Следующие шаги иллюстрируют рабочий процесс назначения ролей. Этот пример предназначен для Azure OpenAI. Дополнительные ресурсы Azure см. в разделе Connect to служба хранилища Azure, Connect to Azure Cosmos DB or Connect to Azure SQL.

  1. Перейдите к ресурсу OpenAI Azure на портале Azure.

  2. Выберите элемент управления доступом в меню слева.

  3. Выберите "Добавить " и выберите "Добавить назначение роли".

  4. В разделе Роли должностных функций выберите Пользователь Cognitive Services OpenAI и нажмите Далее.

  5. В разделе "Участники" выберите "Управляемое удостоверение", а затем выберите "Участники".

  6. Отфильтруйте по подписке и типу ресурсов (служба поиска), а затем выберите управляемое удостоверение вашей службы поиска.

  7. Выберите "Рецензирование" и "Назначить".

Примеры строк подключения

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

Подключения с системно назначенными управляемыми удостоверениями используют доступные версии REST API. Подключения управляемых удостоверений, назначаемые пользователем, используют REST API версии 2026-04-01 или более поздней версии, за исключением подключений кэша обогащения, которые по-прежнему требуют предварительной версии API.

Совет

Большинство этих объектов можно создать на портале Azure, указав управляемое удостоверение, назначаемое системой или пользователем, а затем просмотреть определение JSON, чтобы получить строка подключения.

Источник данных BLOB (управляемое удостоверение системы):

Источник данных индексатора содержит credentials свойство, определяющее способ подключения к источнику данных. В следующем примере показана строка подключения, указывающая уникальный идентификатор ресурса учетной записи хранения.

Управляемое удостоверение системы указывается, когда строка подключения является уникальным идентификатором ресурса службы или приложения, поддерживающего Microsoft Entra ID. Управляемое удостоверение, назначаемое пользователем, указывается через свойство identity.

"credentials": {
    "connectionString": "ResourceId=/subscriptions/{subscription-ID}/resourceGroups/{resource-group-name}/providers/Microsoft.Storage/storageAccounts/{storage-account-name};"
    }

Источник данных BLOB (управляемая учетная запись пользователя):

Пользовательское управляемое удостоверение поддерживается через свойство identity на SearchIndexerDataSource с REST API версии 2026-04-01 или более поздней.

"credentials": {
    "connectionString": "ResourceId=/subscriptions/{subscription-ID}/resourceGroups/{resource-group-name}/providers/Microsoft.Storage/storageAccounts/{storage-account-name};"
    },
  . . .
"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. Connection string — это уникальный идентификатор ресурса учетной записи хранения. Обратите внимание, что путь строки не включает контейнеры или таблицы. Они определены в определении внедренной проекции, а не в строка подключения.

"knowledgeStore": {
  "storageConnectionString": "ResourceId=/subscriptions/{subscription-ID}/resourceGroups/{resource-group-name}/providers/Microsoft.Storage/storageAccounts/{storage-account-name};"
}

Хранилище знаний (управляемое удостоверение пользователя):

Управляемое удостоверение, назначенное пользователем, поддерживается через identity свойство SearchIndexerKnowledgeStore в версии REST API 2026-04-01 или более поздней.

"knowledgeStore": {
  "storageConnectionString": "ResourceId=/subscriptions/{subscription-ID}/resourceGroups/{resource-group-name}/providers/Microsoft.Storage/storageAccounts/{storage-account-name};",
  "identity": {
    "@odata.type": "#Microsoft.Azure.Search.DataUserAssignedIdentity",
    "userAssignedIdentity": "/subscriptions/{subscription-ID}/resourceGroups/{resource-group-name}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{user-assigned-managed-identity-name}"
  }
}

Кэш обогащения:

Индексатор создает, использует и запоминает контейнер, используемый для кэшированных обогащений. Нет необходимости включать контейнер в строку подключения кэша. Идентификатор объекта можно найти на странице Identity службы поиска на портале Azure.

"cache": {
  "enableReprocessing": true,
  "storageConnectionString": "ResourceId=/subscriptions/{subscription-ID}/resourceGroups/{resource-group-name}/providers/Microsoft.Storage/storageAccounts/{storage-account-name};"
}

Сеанс отладки:

Сеанс отладки запускается в портале Azure и принимает строку подключения при начале сеанса. Вы можете вставить строку, похожую на следующий пример.

"ResourceId=/subscriptions/{subscription-ID}/resourceGroups/{resource-group-name}/providers/Microsoft.Storage/storageAccounts/{storage-account-name}/{container-name};",

Пользовательский навык:

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

  • uri — конечная точка функции или приложения.

  • authResourceId сообщает службе поиска подключиться с помощью управляемого удостоверения, передав идентификатор приложения целевой функции или приложения в свойстве.

{
  "@odata.type": "#Microsoft.Skills.Custom.WebApiSkill",
  "description": "A custom skill that can identify positions of different phrases in the source text",
  "uri": "https://contoso.count-things.com",
  "authResourceId": "<Azure-AD-registered-application-ID>",
  "batchSize": 4,
  "context": "/document",
  "inputs": [ ... ],
  "outputs": [ ...]
}

Примеры подключения для моделей

Для подключений, сделанных с помощью управляемых удостоверений, в этом разделе показаны примеры сведений о подключении, используемых службой поиска для подключения к модели на другом ресурсе. Подключение через управляемое удостоверение системы является прозрачным; удостоверение и роли находятся на месте, и подключение завершается успешно, если они настроены должным образом. В отличие от этого, управляемое пользователем удостоверение требует дополнительных свойств подключения.

Azure OpenAI встраивающий навык и Azure OpenAI векторизатор:

Навык внедрения и векторизация OpenAI в Azure AI Search нацелены на конечную точку Azure OpenAI, где размещена модель внедрения. Конечная точка указана в определении навыка Azure OpenAI создание векторов и/или в определении Azure OpenAI векторизатор.

Управляемое системой удостоверение используется автоматически, если "apikey" и "authIdentity" пусты, как показано в следующем примере. Свойство "authIdentity" используется только для управляемого удостоверения, назначаемого пользователем.

Пример управляемого системой удостоверения:

{
  "@odata.type": "#Microsoft.Skills.Text.AzureOpenAIEmbeddingSkill",
  "description": "Connects a deployed embedding model.",
  "resourceUri": "https://url.openai.azure.com/",
  "deploymentId": "text-embedding-ada-002",
  "modelName": "text-embedding-ada-002",
  "inputs": [
    {
      "name": "text",
      "source": "/document/content"
    }
  ],
  "outputs": [
    {
      "name": "embedding"
    }
  ]
}

Здесь приведен пример векторизатора, настроенного для управляемого удостоверения, назначаемого системой. Векторизатор указан в индексе поиска.

 "vectorizers": [
    {
      "name": "my_azure_open_ai_vectorizer",
      "kind": "azureOpenAI",
      "azureOpenAIParameters": {
        "resourceUri": "https://url.openai.azure.com",
        "deploymentId": "text-embedding-ada-002",
        "modelName": "text-embedding-ada-002"
      }
    }
  ]

Пример управляемой идентичности, назначаемой пользователем:

Управляемое удостоверение, назначаемое пользователем, используется, если "apiKey" пуст и указан допустимый "authIdentity".

{
  "@odata.type": "#Microsoft.Skills.Text.AzureOpenAIEmbeddingSkill",
  "description": "Connects a deployed embedding model.",
  "resourceUri": "https://url.openai.azure.com/",
  "deploymentId": "text-embedding-ada-002",
  "modelName": "text-embedding-ada-002",
  "inputs": [
    {
      "name": "text",
      "source": "/document/content"
    }
  ],
  "outputs": [
    {
      "name": "embedding"
    }
  ],
  "authIdentity": {
    "@odata.type": "#Microsoft.Azure.Search.DataUserAssignedIdentity",
    "userAssignedIdentity": "/subscriptions/<subscription_id>/resourcegroups/<resource_group>/providers/Microsoft.ManagedIdentity/userAssignedIdentities/<user-assigned-managed-identity-name>"
   }
}

Ниже приведен пример векторизатора, настроенного для пользовательской управляемой идентификации. Векторизатор указан в индексе поиска.

 "vectorizers": [
    {
      "name": "my_azure_open_ai_vectorizer",
      "kind": "azureOpenAI",
      "azureOpenAIParameters": {
        "resourceUri": "https://url.openai.azure.com",
        "deploymentId": "text-embedding-ada-002",
        "modelName": "text-embedding-ada-002"
        "authIdentity": {
            "@odata.type": "#Microsoft.Azure.Search.DataUserAssignedIdentity",
            "userAssignedIdentity": "/subscriptions/<subscription_id>/resourcegroups/<resource_group>/providers/Microsoft.ManagedIdentity/userAssignedIdentities/<user-assigned-managed-identity-name>"
          }
      }
    }
  ]

Проверка доступа к брандмауэру

Если ресурс Azure находится за брандмауэром, убедитесь, что есть правило входящего трафика, которое допускает запросы из службы поиска и на портале Azure.

См. также