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

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

Необходимые компоненты

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

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

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

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

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

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

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

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

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

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

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

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

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

  2. В разделе Параметры выберите пункт Удостоверение.

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

  4. Выберите Сохранить.

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

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

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

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

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

Внимание

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

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

  2. Щелкните + Создать ресурс.

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

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

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

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

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

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

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

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

Разрешить доступ к брандмауэру

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

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

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

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

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

Следующие действия предназначены для служба хранилища Azure. Если ресурс — Azure Cosmos DB или AZURE SQL, эти действия аналогичны.

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

  2. В служба хранилища Azure выберите элемент управления доступом (AIM) на левой панели навигации.

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

  4. На странице "Роль" выберите роли, необходимые для службы поиска:

    Задача Назначение ролей
    Индексирование BLOB-объектов с помощью индексатора Добавление средства чтения данных BLOB-объектов служба хранилища
    Индексирование ADLS 2-го поколения с помощью индексатора Добавление средства чтения данных BLOB-объектов служба хранилища
    Индексирование таблиц с помощью индексатора Добавление средства чтения и доступа к данным
    Индексирование файлов с помощью индексатора Добавление средства чтения и доступа к данным
    Запись в хранилище знаний Добавьте служба хранилища DataContributor для проекций объектов и файлов, а также средства чтения и доступа к данным для проекций таблиц.
    Запись в кэш обогащения Добавление участника данных BLOB-объектов служба хранилища
    Сохранение состояния сеанса отладки Добавление участника данных BLOB-объектов служба хранилища
    Внедрение данных (векторизация) с помощью моделей внедрения Azure OpenAI Добавление пользователя OpenAI в Cognitive Services
  5. На странице "Участники" выберите "Управляемое удостоверение".

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

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

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

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

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

Источник данных BLOB-объектов (система):

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

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

Источник данных BLOB-объектов (пользователь):

Запрос поиска для служба хранилища Azure также можно выполнить в управляемом удостоверении, назначаемом пользователем, в настоящее время в предварительной версии. Удостоверение пользователя службы поиска указывается в свойстве identity. Для задания удостоверения можно использовать портал или REST Предварительная версия API версии 2021-04-30-Preview.

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

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

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

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

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

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

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

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

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

Пользовательский навык предназначен для конечной точки функции Azure или приложения, в котором размещен пользовательский код. Конечная точка указана в определении пользовательского навыка. Наличие 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",
  "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"
      }
    }
  ]

См. также