Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Note
Поиск с использованием ИИ Azure доступна через портал Azure, REST API и Azure SDKs. Он также лежит в основе Foundry IQ — управляемого слоя знаний, который преобразует корпоративный контент в многократно используемые базы знаний с учетом разрешений доступа для агентов на портале Microsoft Foundry.
В этой статье описывается межтенантный сценарий, в котором поставщик услуг размещает Поиск с использованием ИИ Azure в собственном клиенте и включает шифрование customer-managed key (CMK), с помощью мультитенантного приложения Microsoft Entra.
В этой конфигурации клиент использует Azure Key Vault в собственном клиенте для управления ключом шифрования. Поставщик услуг не имеет доступа к этому ключу.
Предпосылки
Тенант A: клиент и необходимые разрешения для создания службы Поиск с использованием ИИ Azure и связанных объектов (индексы, списки синонимов, индексаторы, источники данных, векторизаторы, наборы навыков). Для поддержки управляемых клиентом ключей (CMK) требуется базовая ценовая категория или более поздняя.
Настройте службу поиска для доступа на основе ролей (рекомендуется для повышения безопасности, а не обязательно).
Tenant B: Отдельный клиент с Azure Key Vault и необходимыми разрешениями для этого клиента:
- Участник Key Vault: Эта роль необходима, если вам нужно создать новое хранилище ключей.
- Разрешение на регистрацию приложений в Microsoft Entra ID: Чтобы установить многоарендное приложение, настроенное поставщиком услуг для межарендного CMK, необходимо иметь разрешение на создание регистраций приложений в Microsoft Entra ID. Обычно для этого требуется роль разработчика приложений или более высокая административная роль, например администратор приложений или глобальный администратор.
- Сотрудник по криптографическим операциям Key Vault: Эта роль необходима для добавления нового ключа в хранилище ключей.
-
Пользователь службы шифрования Key Vault Crypto Service: Эту роль необходимо назначить субъекту-службе, созданному для установленного мультитенантного приложения, чтобы предоставить субъекту-службе доступ к ключу, управляемому клиентом, в хранилище ключей. Для этого необходимо иметь разрешение администратора доступа пользователей . Вы можете просмотреть GUID субъекта-службы (также известный как идентификатор объекта) в разделе:
Enterprise applications\<installed multitenant application>\Manage\Properties\Object ID
Azure Key Vault также должен быть настроен для ролевой модели доступа.
Azure CLI для отправки запросов.
Выбор подхода проверки подлинности
Вы можете настроить мультитенантное приложение Microsoft Entra для использования ключей, управляемых клиентом, в межтенантном сценарии с помощью одного из следующих подходов:
Поддержка федеративной идентификации (рекомендуется): настройте учетные данные федеративной идентификации Microsoft Entra (FIC) для управляемого удостоверения, назначаемого пользователем (UAMI). Этот подход использует токены управляемой идентификации и обменивает их на токены доступа, устраняя необходимость в долгоживущих секретах и соответствуя принципам федерации удостоверений для рабочих нагрузок. Для этого подхода требуется предварительная версия свойства
federatedIdentityClientId, представленного в API версии2026-05-01-preview.Секреты клиента: настройка секрета клиента с помощью
accessCredentialsсвойства. Такой подход менее безопасен и требует дополнительных действий по управлению для ротации и защиты секрета.
Note
Azure Key Vault и Azure Key Vault Managed HSM используют одни и те же API и интерфейсы управления для работы с ключами, управляемыми клиентом. Любая операция, поддерживаемая в Azure Key Vault, также поддерживается в Azure Key Vault Managed HSM.
Создание мультитенантного приложения Microsoft Entra в клиенте A
Используйте Azure CLI для отправки запросов. Клиент поставщика услуг, содержащий Поиск с использованием ИИ Azure, будет называться клиентом A.
Получите идентификатор клиента:
az account show --query tenantId --output tsvУбедитесь, что вы вошли в клиент A:
az login --tenant \<tenant-A-id\>Создайте регистрацию приложения:
az ad app create --display-name cross-tenant-auth --sign-in-audience AzureADMultipleOrgsСохраните выходные данные идентификатора приложения на этом шаге.
Использовать поддержку федеративных удостоверений личности (предварительная версия)
Important
Эти функции и функциональные возможности являются частью REST API 2026-08-01-preview. Версия 2026-08-01-preview лицензируется вам в рамках вашей подписки Azure и регулируется условиями, применимыми к "Предварительным версиям", изложенными в Условиях на продукты Microsoft, Дополнении о защите данных для продуктов и служб Microsoft ("DPA") и Дополнительных условиях использования предварительных версий Microsoft Azure.
Предварительная версия 2026-08-01 поддерживает подключения к другим службы Майкрософт и сторонним службам. Использование этих служб регулируется соответствующими условиями и может привести к обработке или хранению данных за пределами периметра соответствия требованиям Azure, а также к передаче данных в периметр соответствия требованиям Azure.
Вы несете ответственность за управление тем, будут ли данные передаваться за пределы соответствия вашей организации и географических границ и любых связанных последствий, а также предоставлять соответствующие разрешения, границы и утверждения.
Вы несете ответственность за тщательное изучение и тестирование приложений, которые вы создаете в контексте конкретных вариантов использования и принятия всех соответствующих решений и настроек. Это включает в себя реализацию собственных ответственных мер по устранению рисков искусственного интеллекта, таких как метаподсказки, фильтры содержимого или другие системы безопасности, а также обеспечение соответствия приложений соответствующим стандартам качества, надежности, безопасности и доверия. Дополнительные сведения см. в примечании о прозрачности Поиск с использованием ИИ Azure.
Чтобы использовать федеративную идентификацию для поддержки сценария CMK между арендаторами:
Поставщик услуг настраивает службу AI Search в своем клиенте (Tenant A). Инструкции по этому использованию см. в статье Create a Search Service (на портале Azure) или с помощью команды az search service create в Azure CLI.
Поставщик услуг создает мультитенантную регистрацию приложения Microsoft Entra. Сведения о том, как это сделать, см. в статье Как зарегистрировать приложение в Microsoft Entra ID или используйте команду Azure CLI: az ad app create. Запишите идентификатор приложения (клиента) после завершения регистрации приложения.
Поставщик услуг настраивает управляемую идентификацию, назначаемую пользователем. Инструкции о том, как это сделать, см. в статье Управление назначаемыми пользователем управляемыми удостоверениями с помощью портала Azure или Управление назначаемыми пользователем управляемыми удостоверениями с помощью Azure CLI.
Поставщик службы настраивает назначаемые пользователем управляемые удостоверения как учетные данные федеративной идентификации для приложения. Инструкции о том, как это сделать, см. в разделе Настройка приложения для доверия к внешнему поставщику удостоверений.
Когда поставщик услуг предоставляет идентификатор мультитенантного приложения, клиент предоставляет приложению поставщика услуг доступ к Key Vault в клиенте (клиент B). Чтобы установить приложение в арендаторе B, необходимо создать субъект-службу с идентификатором многоарендного приложения. Чтобы создать субъект-службу, сформируйте URL-адрес admin-consent и предоставьте согласие для всего арендатора или используйте команду az ad sp в Azure CLI.
Если у клиента еще нет хранилища ключей для использования, ознакомьтесь с Краткое руководство по началу работы — создание Azure Key Vault с помощью портала Azure или Краткое руководство по началу работы — создание Azure Key Vault с помощью Azure CLI. Для Key Vault необходимо установить модель разрешений «управление доступом на основе ролей Azure (RBAC)» и предоставить мультитенантному приложению поставщика услуг разрешение, назначив ему роль Key Vault Crypto Service Encryption User. Затем клиент может создать ключ шифрования. Сведения о том, как это сделать, см. в разделе Предоставление приложениям разрешения на доступ к хранилищу ключей Azure с помощью Azure RBAC.
После завершения этих действий поставщик услуг теперь имеет следующее:
Идентификатор приложения для мультитенантного приложения, установленного в арендаторе клиента, которому предоставлен доступ к ключу, управляемому клиентом.
Управляемое удостоверение, настроенное в качестве федеративных учетных данных для мультитенантного приложения.
сведения о расположении ключа в хранилище ключей клиента.
С помощью этих трех параметров поставщик услуг теперь может создавать объекты в Поиск с использованием ИИ Azure в Tenant A, которые можно зашифровать с помощью ключа, управляемого клиентом и хранящегося в Tenant B. Сведения о настройке ключей, управляемых клиентом, для новых объектов поиска см. в разделе Настройка ключей, управляемых клиентом, для зашифрованных данных Поиск с использованием ИИ Azure.
Проверьте межтенантную конфигурацию CMK для федеративной идентификации
После настройки мультитенантного приложения Microsoft Entra и подключения его к Key Vault клиента проверьте настройку, создав тестовый объект в службе поиска (клиент A). В этом примере создается индекс для подтверждения того, что служба поиска может получить доступ к ключу, управляемому клиентом, с помощью проверки подлинности федеративного удостоверения.
Инструкции по созданию службы поиска и нового объекта индекса в Поиск с использованием ИИ Azure с использованием ключа, управляемого клиентом, см. в статье Настройка ключей, управляемых клиентом, для зашифрованных данных Поиск с использованием ИИ Azure.
После создания объекта индекса необходимо заполнить следующее:
-
keyVaultUri: адрес URI, полученный от клиента. -
keyVaultKeyName: имя ключа, предоставленное клиентом. -
keyVaultKeyVersion: ключевая версия от клиента. -
userAssignedIdentity:<subscription-id>и<resource-group>из вашего тенанта, а<identity-name>— это имя управляемого удостоверения, назначаемого пользователем. -
federatedIdentityClientId: это значение свойства,<application-client-id>будет идентификатором мультитенантного приложения (клиента).
{ "name": "cross-tenant-cmk-test", "fields": [ { "name": "id", "type": "Edm.String", "key": true } ], "encryptionKey": { "keyVaultUri": "https://<key-vault-name>.vault.azure.net/", "keyVaultKeyName": "<key-name>", "keyVaultKeyVersion": "<key-version>", "identity": { "@odata.type": "#Microsoft.Azure.Search.DataUserAssignedIdentity", "userAssignedIdentity": "/subscriptions/<subscription-id>/resourceGroups/<resource-group>/providers/Microsoft.ManagedIdentity/userAssignedIdentities/<identity-name>", "federatedIdentityClientId": "<application-client-id>" } } }-
Проверьте индекс, отправив
GETзапрос:GET https://<search-service>.search.windows.net/indexes/cross-tenant-cmk-test?api-version=2026-08-01-preview
Если запрос выполнен успешно, конфигурация CMK между клиентами работает правильно.
Если создание индекса завершается ошибкой доступа к ключу, убедитесь, что:
- Управляемая идентичность, назначаемая пользователем, настроена правильно
- В приложении заданы учетные данные федеративного удостоверения.
- Политика доступа Key Vault или назначения ролей RBAC настроены правильно
Используйте секрет клиента (если федеративная идентификация невозможна)
Если федеративная идентификация не подходит, можно добавить секрет клиента в мультитенантное приложение, чтобы поддерживать сценарий CMK между арендаторами:
Чтобы добавить секрет клиента в мультитенантное приложение в клиенте A, выполните следующую команду:
az ad app credential reset --id <multitenant-app-id>Сохраните выходные данные паролей на этом шаге. Вывод пароля является обязательным входным параметром для настройки CMK в службе "Поиск ИИ Azure".
Чтобы указать, когда срок действия секрета клиента истекает, можно указать параметр даты окончания этой команды.
az ad app credential reset --id <multitenant-app-id> --end-date <end-date>Параметр end-date принимает дату в формате ISO 8601. Например:
az ad app credential reset --id <multitenant-app-id> --end-date 2026-12-31.
Создание субъекта-службы в клиенте B для мультитенантного приложения
Мы называем клиента, содержащего Azure Key Vault, клиентом B. В клиенте B создайте учетную запись службы для многопользовательского приложения в клиенте A.
Войдите в клиент B:
az login --tenant <tenant-B-id>Создайте субъект-службу с помощью выходных данных идентификатора мультитенантного приложения на первом шаге:
az ad sp create --id <multitenant-app-id>Этот субъект-служба является экземпляром мультитенантного приложения в клиенте A. Роли, назначенные этому субъекту-службе в клиенте B, также назначаются мультитенантным приложениям в клиенте A.
Проверьте связь между арендатором A и B, проверьте "appOwnerOrganizationId" в следующей команде:
az ad sp show --id <multitenant-app-id>Эта команда отображает сведения о субъекте-службе в ФОРМАТЕ JSON. Найдите поле appOwnerOrganizationId в выходных данных, чтобы подтвердить соответствие идентификатора клиента A.
Сохраните идентификатор объекта основной учетной записи службы (из поля
"id") на этом шаге. Идентификатор объекта — это обязательный вход для настройки CMK в службе "Поиск ИИ Azure".Получите идентификатор ресурса для Azure Key Vault:
az keyvault show --name <key-vault-name> --query id --output tsvНазначьте роль пользователя шифрования службы Key Vault в хранилище ключей клиента B новому служебному принципалу.
az role assignment create --assignee <service-principal-object-id> --role "Key Vault Crypto Service Encryption User" --scope <key-vault-resource-id>Пример этого назначения может выглядеть следующим образом:
az role assignment create --assignee 00001111-aaaa-2222-bbbb-3333cccc4444 --role "Key Vault Crypto Service Encryption User" --scope /subscriptions/87654321-4321-4321-4321-210987654321/resourceGroups/myKeyVaultRG/providers/Microsoft.KeyVault/vaults/myCompanyKeyVault
Проверьте межтенантную конфигурацию CMK для секрета клиента
После настройки мультитенантного приложения Microsoft Entra и подключения его к Key Vault клиента проверьте настройку, создав тестовый объект в службе поиска (клиент A). В этом примере создается индекс для подтверждения того, что служба поиска может получить доступ к ключу, управляемому клиентом, с помощью секрета клиента.
Инструкции по созданию службы поиска и нового объекта индекса в Поиск с использованием ИИ Azure с использованием ключа, управляемого клиентом, см. в статье Настройка ключей, управляемых клиентом, для зашифрованных данных Поиск с использованием ИИ Azure.
Портал Azure можно использовать для добавления индекса и предоставления этого JSON-файла или использования клиента REST для отправки запроса
Create Index. После создания объекта индекса необходимо заполнить следующее:-
keyVaultUri: адрес URI, полученный от клиента. -
keyVaultKeyName: имя ключа, предоставленное клиентом. -
keyVaultKeyVersion: ключевая версия от клиента. -
accessCredentials:applicationId— это что-то вроде00001111-aaaa-2222-bbbb-3333cccc4444, аapplicationSecret— это значение, которое вы только что создали.
-
{
"name": "cross-tenant-cmk-test",
"fields": [
{
"name": "id",
"type": "Edm.String",
"key": true
}
],
"encryptionKey": {
"keyVaultUri": "https://<key-vault-name>.vault.azure.net/",
"keyVaultKeyName": "<key-name>",
"keyVaultKeyVersion": "<key-version>",
"accessCredentials": {
"applicationId": "<application-client-id>",
"applicationSecret": "<application-client-secret>"
}
}
}
Убедитесь, что индекс был успешно создан:
GET https://<search-service>.search.windows.net/indexes/cross-tenant-cmk-test?api-version=2026-04-01
Дополнительные сведения о смене ключей или управлении ими см. в разделе "Настройка ключей, управляемых клиентом" для шифрования данных.