Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Приложения, которые вызывают службу управления пакетная служба Azure, проходят проверку подлинности с помощью Microsoft Entra ID — многоарендной облачной службы каталогов и управления удостоверениями корпорации Microsoft. Azure сама использует Microsoft Entra ID для проверки подлинности своих клиентов, администраторов служб и пользователей организации.
Рекомендуемый способ аутентификации приложений для управления Batch — использовать клиентскую библиотеку Azure Identity client library вместе с библиотекой управления Azure.ResourceManager.Batch. Библиотека Azure Identity предоставляет классы учетных данных на основе токенов (например, DefaultAzureCredential, ManagedIdentityCredential, ClientSecretCredential и InteractiveBrowserCredential), которые работают единообразно независимо от того, выполняется ли приложение локально, в Azure или в локальной среде. Обзор рекомендуемых стратегий аутентификации см. в статье Аутентификация приложений .NET для служб Azure с помощью библиотеки Azure Identity.
Библиотека Azure.ResourceManager.Batch предоставляет типы для управления учетными записями Batch, ключами учетных записей, приложениями и пакетами приложений. Это клиент поставщика ресурсов Azure и работает вместе с Azure Resource Manager для программного управления этими ресурсами. Microsoft Entra ID требуется для проверки подлинности запросов, выполненных через любой клиент поставщика ресурсов Azure, включая эту библиотеку.
Note
Устаревшие пакеты Microsoft.Azure.Management.Batch и шаблоны кода на основе ADAL (AuthenticationContext.AcquireToken) устарели. Новый код должен использовать Azure.ResourceManager.Batch с учетными данными Azure.Identity.
Дополнительные сведения об использовании библиотеки управления Batch для .NET см. в статье Управление учетными записями Batch и квотами с помощью клиентской библиотеки управления Batch для .NET.
Зарегистрировать приложение (необязательно)
Необходимо ли зарегистрировать отдельное приложение Microsoft Entra зависит от используемого типа учетных данных:
- Если вы используете
DefaultAzureCredentialи выполняете вход с помощью средства разработчика (Azure CLI, Azure PowerShell, Visual Studio или Visual Studio Code), либо приложение работает на ресурсе Azure с управляемым удостоверением, вам не нужно зарегистрировать отдельное приложение. Эти учетные данные используют идентификатор, уже настроенный в этой среде. - Если приложение проходит проверку подлинности в качестве субъекта-службы (например, с помощью
ClientSecretCredentialилиClientCertificateCredential), необходимо зарегистрировать приложение в клиенте Microsoft Entra.
Чтобы зарегистрировать приложение, выполните действия, описанные в Quickstart: регистрация приложения с помощью платформа удостоверений Майкрософт. После регистрации Microsoft Entra ID предоставляет идентификатор приложения (клиента), который используется во время выполнения. Для получения дополнительной информации см. Объекты приложения и учетной записи службы в Microsoft Entra ID.
Назначение разрешений Azure RBAC
После того как вы решите, какое удостоверение использует ваше приложение (учетная запись разработчика, управляемое удостоверение или субъект-служба), назначьте этому удостоверению необходимые разрешения управления доступом Azure на основе ролей (RBAC) для группы ресурсов или подписки, в которой вы управляете учетными записями Batch. К распространенным встроенным ролям относятся Участник, Участник учетной записи пакетная служба Azure и Читатель.
Инструкции см. в статье Назначение ролей Azure с помощью портала Azure.
Проверка подлинности с помощью библиотеки удостоверений Azure
При использовании Azure.Identity и Azure.ResourceManager.Batch вам не нужно вручную указывать конечные точки Microsoft Entra, URI ресурсов или URI перенаправления — эти учетные данные автоматически выполняют получение, кэширование и обновление токенов.
Установите необходимые пакеты NuGet:
dotnet add package Azure.Identity dotnet add package Azure.ResourceManager.BatchДобавьте следующие
usingинструкции в код:using Azure.Identity; using Azure.ResourceManager; using Azure.ResourceManager.Batch;Создайте учетные данные и передайте их в
ArmClient. Используйте клиент для получения списка учетных записей Batch и управления ими.Рекомендуется:
DefaultAzureCredential— работает локально с учетными данными для входа в инструменты разработчика (Azure CLI, Visual Studio, Visual Studio Code) и автоматически использует управляемый идентификатор при запуске приложения в Azure:ArmClient arm = new ArmClient(new DefaultAzureCredential()); SubscriptionResource subscription = await arm.GetDefaultSubscriptionAsync(); await foreach (BatchAccountResource account in subscription.GetBatchAccountsAsync()) { Console.WriteLine(account.Data.Name); }Интерактивный (интегрированный) вход — предлагает пользователю войти через системный браузер. Используйте это, когда приложение должно проходить проверку подлинности конкретного пользователя в интерактивном режиме:
var credential = new InteractiveBrowserCredential( new InteractiveBrowserCredentialOptions { TenantId = "<tenant-id>", ClientId = "<application-id>", // optional; required only if you registered your own app RedirectUri = new Uri("http://localhost") }); ArmClient arm = new ArmClient(credential);Субъект-служба (секрет клиента) — используется для автономных приложений, которые проходят аутентификацию с использованием секрета регистрации приложения:
var credential = new ClientSecretCredential( tenantId: "<tenant-id>", clientId: "<application-id>", clientSecret: "<client-secret>"); ArmClient arm = new ArmClient(credential);Управляемое удостоверение — используйте, если приложение выполняется в ресурсе Azure (например, на виртуальной машине, в службе приложений или в контейнерном приложении), которому назначено управляемое удостоверение, назначаемое системой или пользователем:
// System-assigned managed identity var credential = new ManagedIdentityCredential(); // Or, user-assigned managed identity // var credential = new ManagedIdentityCredential(clientId: "<user-assigned-client-id>"); ArmClient arm = new ArmClient(credential);
Учетные данные прозрачно кэшируют и обновляют токены, поэтому вы можете поддерживать ArmClient и ресурсы управления Batch в рабочем состоянии на протяжении всего времени работы приложения.
Дальнейшие действия
- Управление учётными записями и квотами Batch с помощью клиентской библиотеки управления Batch для .NET
- Проверка подлинности решений службы Batch с помощью Microsoft Entra ID
- Аутентификация приложений .NET в службах Azure с помощью библиотеки Azure Identity
- Клиентская библиотека Azure.ResourceManager.Batch для .NET
- библиотека клиента Azure Identity для .NET
- Объекты приложения и главные объекты службы в Microsoft Entra ID