Поделиться через


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

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

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

Предпосылки

  • Служба поиска на уровне "Базовый" или выше любой регион.

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

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

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

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

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

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

2 Управляемые удостоверения, назначаемые пользователем, можно использовать в строках подключения к источнику данных. Однако только новые интерфейсы REST API предварительной версии и пакеты предварительной версии поддерживают управляемое удостоверение, назначаемое пользователем, в строке подключения. Не забудьте переключиться на API предварительной версии, если вы указали SearchIndexerDataUserAssignedIdentity как identity в подключении к источнику данных.

3 Подключения к Azure OpenAI, Azure AI Foundry и Azure Functions через навыки и векторизаторы включают: пользовательский навык, пользовательский векторизатор, навык встраивания Azure OpenAI, векторизатор Azure OpenAI, навык AML и векторизатор каталога моделей Azure AI Foundry.

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

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

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

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

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

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

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

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

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

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

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

    Снимок экрана: идентификатор объекта системного удостоверения.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  7. На вкладке User assigned нажмите Добавить.

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

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

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

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

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

Следующие шаги иллюстрируют рабочий процесс назначения ролей. Этот пример предназначен для Azure OpenAI. Сведения о других ресурсах Azure см. в разделе Подключение к хранилищу Azure, Подключение к Azure Cosmos DB или Подключение к Azure SQL.

  1. Войдите в портал Azure с помощью учетной записи Azure и перейдите к ресурсу Azure OpenAI.

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

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

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

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

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

  7. Выберите кнопку Проверить + назначить.

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

Помните из описания сценариев, которые можно использовать управляемые удостоверения в строках подключения к другим ресурсам Azure. В этом разделе приведены примеры. Вы можете использовать общедоступную версию REST API и пакеты ПАКЕТА SDK Azure для подключений с помощью управляемого удостоверения, назначаемого системой.

Подсказка

Большинство этих объектов можно создать в портале 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-объектов (управляемое удостоверение пользователя):

Пользовательские управляемые удостоверения также можно использовать в строках подключения к источнику данных индексатора. Однако только новые интерфейсы REST API предварительной версии и пакеты предварительной версии поддерживают управляемое удостоверение, назначаемое пользователем, в строке подключения к источнику данных. Не забудьте переключиться на версию для предварительного просмотра, если в качестве удостоверения в подключении к источнику данных задается searchIndexerDataUserAssignedIdentity.

Идентификатор пользователя службы поиска указывается в свойстве identity .

"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. Строка подключения — это уникальный идентификатор ресурса учетной записи хранения. Обратите внимание, что строка не включает контейнеры или таблицы в путь. Они определены в проекционном определении, а не в строке подключения.

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

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

Индексатор создает, использует и запоминает контейнер, используемый для кэшированных обогащений. Не обязательно включать контейнер в строку подключения кэша. Идентификатор объекта можно найти на странице Идентификатор службы поиска в портале 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:

Интерфейс Azure OpenAI, внедряющий навыки и векторизаторы в поиск ИИ, предназначен для конечной точки Azure OpenAI, в котором размещена модель внедрения. Конечная точка указана в определении навыка внедрения Azure OpenAI и (или) в определении векторизатора OpenAI Azure.

Управляемое системой удостоверение используется автоматически, если "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.

  • Для подключений в пределах того же региона к хранилищу BLOB-объектов Azure или Azure Data Lake Storage 2-го поколения используйте системное управляемое удостоверение и исключение для доверенной службы. При необходимости можно настроить правило инстанса ресурса, чтобы принимать запросы.

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

См. также