Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Запросы приложений к службам ИИ Azure должны проходить проверку подлинности. В этой статье описаны варианты, доступные для проверки подлинности в Azure OpenAI и других службах ИИ с помощью .NET. Эти понятия применяются к пакету SDK для семантического ядра, а также к пакетам SDK из определенных служб, таких как Azure OpenAI. Большинство служб ИИ предлагают два основных способа проверки подлинности приложений и пользователей:
- Проверка подлинности на основе ключей предоставляет доступ к службе Azure с помощью значений секретного ключа. Эти значения секретов иногда называются ключами API или ключами доступа в зависимости от службы.
- Microsoft Entra ID предоставляет комплексное решение для управления удостоверениями и доступом, чтобы убедиться, что правильные удостоверения имеют правильный уровень доступа к разным ресурсам Azure.
В разделах, описанных выше, приведены общие сведения об этих двух подходах, а не подробные действия по реализации. Дополнительные сведения о подключении к службам Azure см. в следующих ресурсах:
Примечание.
В примерах этой статьи основное внимание уделяется подключениям к Azure OpenAI, но те же понятия и шаги реализации непосредственно применяются ко многим другим службам ИИ Azure.
Проверка подлинности с помощью ключей
Ключи доступа позволяют приложениям и средствам проходить проверку подлинности в службе искусственного интеллекта Azure, например Azure OpenAI, с помощью секретного ключа, предоставленного службой. Извлеките секретный ключ с помощью таких средств, как портал Azure или Azure CLI, и используйте его для настройки кода приложения для подключения к службе ИИ:
builder.Services.AddAzureOpenAIChatCompletion(
"deployment-model",
"service-endpoint",
"service-key"); // Secret key
var kernel = builder.Build();
Использование ключей является простым вариантом, но этот подход следует использовать с осторожностью. Ключи не являются рекомендуемыми вариантами проверки подлинности, так как они:
- Не следуйте принципу наименьших привилегий. Они предоставляют повышенные разрешения независимо от того, кто использует их или для какой задачи.
- Может случайно попасть в систему управления версиями или храниться в небезопасных местах.
- Можно легко предоставить или отправить сторонам, которым не следует иметь доступ.
- Часто требуется ручное администрирование и смена.
Вместо этого рекомендуется использовать идентификатор Microsoft Entra для проверки подлинности, который является рекомендуемом решением для большинства сценариев.
Проверка подлинности с помощью идентификатора Microsoft Entra
Идентификатор Microsoft Entra — это облачная служба управления удостоверениями и доступом, которая предоставляет широкий набор функций для различных бизнес-сценариев и сценариев приложений. Идентификатор Microsoft Entra — это рекомендуемое решение для подключения к Azure OpenAI и другим службам ИИ и предоставляет следующие преимущества:
- Проверка подлинности без ключей с помощью удостоверений .
- Управление доступом на основе ролей (RBAC) для назначения идентификаторам минимально необходимыми разрешениями.
- С помощью клиентской
Azure.Identity
библиотеки можно обнаруживать различные учетные данные в разных средах , не требуя изменений кода. - Автоматически обрабатывает задачи администрирования, такие как смена базовых ключей.
Рабочий процесс для реализации проверки подлинности Microsoft Entra в приложении обычно включает следующие действия.
Локальная разработка:
- Войдите в Azure с помощью локального средства разработки, например Azure CLI или Visual Studio.
- Настройте код для использования клиентской библиотеки
Azure.Identity
иDefaultAzureCredential
класса. - Назначьте роли Azure учетной записи, с которой вы вошли в систему, чтобы включить доступ к службе искусственного интеллекта.
Размещенное в Azure приложение:
- Разверните приложение в Azure после настройки его для проверки подлинности с помощью клиентской библиотеки
Azure.Identity
. - Назначьте приложению, размещенному в Azure, управляемое удостоверение.
- Назначьте роли Azure управляемой идентичности, чтобы обеспечить доступ к службе искусственного интеллекта.
- Разверните приложение в Azure после настройки его для проверки подлинности с помощью клиентской библиотеки
Основные понятия этого рабочего процесса рассматриваются в следующих разделах.
Проверка подлинности в Azure локально
При разработке приложений локально, которые подключаются к службам ИИ Azure, проходят проверку подлинности в Azure с помощью такого средства, как Visual Studio или Azure CLI. Локальные учетные данные можно обнаружить клиентской Azure.Identity
библиотекой и использовать для проверки подлинности приложения в службах Azure, как описано в разделе "Настройка кода приложения".
Например, чтобы выполнить проверку подлинности в Azure локально с помощью Azure CLI, выполните следующую команду:
az login
Настройка кода приложения
Используйте клиентную библиотеку Azure.Identity
из пакета SDK Azure для реализации проверки подлинности Microsoft Entra в коде. Библиотеки Azure.Identity
включают DefaultAzureCredential
класс, который автоматически обнаруживает доступные учетные данные Azure на основе текущей среды и доступных инструментов. Ознакомьтесь с документацией Azure SDK для .NET, чтобы получить набор всех поддерживаемых учетных данных среды и порядок их поиска.
Например, настройте семантическое ядро для аутентификации с помощью следующего кода: DefaultAzureCredential
Kernel kernel = Kernel
.CreateBuilder()
.AddAzureOpenAITextGeneration(
"your-model",
"your-endpoint",
new DefaultAzureCredential())
.Build();
DefaultAzureCredential
позволяет приложениям продвигаться из локальной разработки в рабочую среду без изменений кода. Например, во время разработки DefaultAzureCredential
используются учетные данные локального пользователя из Visual Studio или Azure CLI для проверки подлинности в службе ИИ. При развертывании приложения в Azure, DefaultAzureCredential
использует управляемое удостоверение, назначенное вашему приложению.
Назначение ролей вашему идентификатору
Управление доступом на основе ролей Azure (Azure RBAC) — это система, которая обеспечивает точное управление доступом ресурсов Azure. Назначьте роль субъекту безопасности, используемому DefaultAzureCredential
для подключения к службе искусственного интеллекта Azure, будь то отдельный пользователь, группа, служебный субъект или управляемое удостоверение. Роли Azure — это коллекция разрешений, которые позволяют идентификатору выполнять различные задачи, такие как создание выполнений или создание и удаление ресурсов.
Назначьте роли, такие как Пользователь Cognitive Services OpenAI (ID роли: 5e0bd9bd-7b93-4f28-af87-19fc36ad61bd
), соответствующей учетной записи с использованием таких инструментов, как Azure CLI, Bicep или портал Azure. Например, используйте az role assignment create
команду для назначения роли с помощью Azure CLI:
az role assignment create \
--role "5e0bd9bd-7b93-4f28-af87-19fc36ad61bd" \
--assignee-object-id "$PRINCIPAL_ID" \
--scope /subscriptions/"$SUBSCRIPTION_ID"/resourceGroups/"$RESOURCE_GROUP" \
--assignee-principal-type User
Дополнительные сведения об Azure RBAC см. в следующих ресурсах:
Назначьте управляемое удостоверение вашему приложению
В большинстве случаев размещенные в Azure приложения должны использовать управляемое удостоверение для подключения к другим службам, таким как Azure OpenAI. Управляемые удостоверения предоставляют полностью управляемое удостоверение в идентификаторе Microsoft Entra для приложений, используемых при подключении к ресурсам, поддерживающим проверку подлинности Microsoft Entra.
DefaultAzureCredential
обнаруживает идентификатор, связанный с вашим приложением, и использует его для аутентификации в других службах Azure.
Существует два типа управляемых удостоверений, которые можно назначить приложению:
- Назначаемое системой удостоверение привязывается к приложению и удаляется при удалении приложения. Приложение может иметь только одно назначаемое системой удостоверение.
- Назначаемое пользователем удостоверение — это независимый ресурс Azure, который можно назначить вашему приложению. Приложение может иметь несколько идентификаций, назначаемых пользователем.
Назначьте роли управляемому удостоверению так же, как вы назначаете отдельной учетной записи пользователя, например, роль пользователя Cognitive Services OpenAI. Узнайте больше о работе с управляемыми удостоверениями с помощью следующих ресурсов: