Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
пакетная служба Azure поддерживает аутентификацию с помощью Microsoft Entra ID, мультитенантной облачной службы каталогов и управления идентификацией Microsoft. Azure использует Microsoft Entra ID для аутентификации своих клиентов, администраторов служб и пользователей организации.
Рекомендуемый способ аутентификации приложений пакетная служба Azure — использовать клиентскую библиотеку Azure Identity client library, которая предоставляет классы аутентификации на основе токенов (например, DefaultAzureCredential, ManagedIdentityCredential, ClientSecretCredential и InteractiveBrowserCredential), которые работают единообразно независимо от того, где выполняется приложение: локально, в Azure или в локальной инфраструктуре. Общие сведения о рекомендуемых стратегиях проверки подлинности см. в следующих статье:
- Аутентификация приложений .NET в службах Azure с помощью библиотеки Azure Identity
- Аутентификация приложений Python для служб Azure с помощью библиотеки Azure Identity
В этой статье описаны два распространенных сценария проверки подлинности пакетная служба Azure с помощью Microsoft Entra ID:
Встроенная (интерактивная) проверка подлинности выполняет проверку подлинности пользователя, взаимодействующего с приложением. Используйте учетные данные, такие как
InteractiveBrowserCredentialилиDefaultAzureCredential(которые могут выполнять цепочку через входы средств разработчика, такие как Azure CLI, Visual Studio и Visual Studio Code).Проверка подлинности с помощью субъекта-службы или управляемого идентификатора используется для проверки подлинности приложения, работающего без участия пользователя. Используйте учетные данные, такие как
ManagedIdentityCredentialдля приложений, размещенных в Azure, илиClientSecretCredential/ClientCertificateCredentialдля приложений, прошедших проверку подлинности с помощью секрета или сертификата зарегистрированного приложения.
Дополнительные сведения об идентификаторе Microsoft Entra см. в документации по Microsoft Entra.
Сбор конечных точек для аутентификации
Чтобы выполнить проверку подлинности пакетных приложений с помощью идентификатора Microsoft Entra ID, необходимо включить конечную точку Microsoft Entra и конечную точку ресурса пакетной службы в код.
Конечная точка Microsoft Entra
Базовый адрес авторитетного узла Microsoft Entra — https://login.microsoftonline.com/. Чтобы пройти проверку подлинности с помощью Microsoft Entra ID, используйте эту конечную точку с идентификатором арендатора, который идентифицирует арендатора Microsoft Entra, используемого для проверки подлинности.
https://login.microsoftonline.com/<tenant-id>
Идентификатор арендатора можно получить на главной странице Microsoft Entra ID в портале Azure. Вы также можете выбрать Свойства в области навигации слева и увидеть идентификатор арендатора на странице Свойства.
Внимание
Конечная точка Microsoft Entra, специфичная для арендатора, требуется при аутентификации с помощью учетной записи службы.
При аутентификации с использованием интегрированной аутентификации рекомендуется использовать конечную точку для конкретного клиента, но это необязательно. Вы также можете использовать общую конечную точку Microsoft Entra для предоставления универсального интерфейса сбора учетных данных, если определенный клиент не указан. Общая конечная точка выглядит так:
https://login.microsoftonline.com/common.
Дополнительные сведения о конечных точках Microsoft Entra см. в статье "Проверка подлинности и авторизация".
Конечная точка пакетного ресурса
Используйте конечную точку ресурса Batch https://batch.core.windows.net/, чтобы получить токен для аутентификации запросов к службе Batch.
Регистрация приложения в клиенте
Первым шагом в использовании проверки подлинности Microsoft Entra является регистрация приложения в клиенте Microsoft Entra. После регистрации приложения вы можете использовать в своем коде учетные данные из библиотеки Azure Identity для получения токенов Microsoft Entra для службы Batch. Регистрация приложения требуется для потоков конфиденциальных клиентов (субъекта-службы) и для любого интерактивного потока, требующего регистрации приложения для конкретного клиента.
Tip
Если код использует DefaultAzureCredential и выполняет вход с помощью средства разработчика (Azure CLI, Azure PowerShell, Visual Studio или Visual Studio Code) или управляемого удостоверения, вам не нужно зарегистрировать отдельное приложение— учетные данные используют удостоверение, уже настроенное в этой среде.
При регистрации приложения вы предоставляете сведения о приложении идентификатору Microsoft Entra. Затем идентификатор Microsoft Entra предоставляет идентификатор приложения, который также называется идентификатором клиента, который используется для связывания приложения с идентификатором Microsoft Entra во время выполнения. Для получения дополнительных сведений об идентификаторе приложения см. раздел "Объекты приложения и объектов-службы в Microsoft Entra ID".
Чтобы зарегистрировать пакетное приложение, следуйте инструкциям в Регистрация приложения.
После регистрации приложения вы увидите идентификатор приложения (клиента) на странице обзора приложения.
Настройка интегрированной проверки подлинности
Чтобы выполнить проверку подлинности с помощью встроенной проверки подлинности, необходимо предоставить приложению разрешение на подключение к API пакетной службы. Этот шаг позволяет приложению использовать идентификатор Microsoft Entra для проверки подлинности вызовов API пакетной службы.
После регистрации приложения выполните следующие действия, чтобы предоставить приложению доступ к пакетной службе:
- В портал Azure найдите и выберите регистрацию приложений.
- На странице Регистрация приложений выберите приложение.
- На странице приложения выберите разрешения API в области навигации слева.
- На странице Разрешения API выберите Добавить разрешение.
- На странице Запрос API разрешений выберите пакетная служба Azure.
- На странице пакетная служба Azure, в разделе Выбор разрешений, установите флажок рядом с user_impersonation, а затем нажмите Добавить разрешения.
На странице разрешений API теперь указано, что приложение Microsoft Entra имеет доступ как к Microsoft Graph, так и к пакетная служба Azure. Разрешения предоставляются Microsoft Graph автоматически при регистрации приложения с идентификатором Microsoft Entra.
Настройка субъекта-службы
Чтобы аутентифицировать приложение, которое работает без вмешательства пользователя, необходимо использовать служебный принципал. Когда ваше приложение проходит проверку подлинности с помощью учетной записи службы, оно отправляет как идентификатор приложения, так и секретный ключ в Microsoft Entra ID.
После регистрации приложения выполните следующие действия в портале Azure, чтобы настроить учетную запись службы.
- Запросите секрет для приложения.
- Назначьте приложению управление доступом на основе ролей Azure (Azure RBAC).
Запрос секрета для приложения
Выполните следующие действия, чтобы создать и скопировать секретный ключ для использования в коде:
- В портал Azure найдите и выберите регистрацию приложений.
- На странице Регистрация приложений выберите приложение.
- На странице приложения выберите сертификаты и секреты в области навигации слева.
- На странице "Сертификаты и секреты" выберите новый секрет клиента.
- На странице "Добавление секрета клиента" введите описание и выберите срок действия секрета.
- Выберите "Добавить ", чтобы создать секрет и отобразить его на странице "Сертификаты и секреты ".
- Скопируйте значение секрета в безопасное место, так как после выхода из этой страницы вы не сможете получить доступ к нему снова. Если вы теряете доступ к ключу, вы можете создать новый.
Назначьте Azure RBAC вашему приложению
Выполните следующие действия, чтобы назначить роль Azure RBAC приложению. Дополнительные сведения см. в разделе «Ролевое управление доступом для службы пакетная служба Azure».
- В портале Azure перейдите к учетной записи Batch, которую использует ваше приложение.
- Выберите Управление доступом (IAM) в области навигации слева.
- На странице управления доступом (IAM) выберите " Добавить назначение роли".
- На странице "Добавление назначения ролей" выберите вкладку "Роль", а затем выберите одну из встроенных ролей RBAC для пакетная служба Azure для вашего приложения.
- Перейдите на вкладку "Члены" и выберите " Выбрать участников " в разделе "Участники".
- На экране "Выбор участников" найдите и выберите приложение, а затем нажмите кнопку "Выбрать".
- Выберите "Рецензирование и назначение" на странице "Добавление назначения роли".
Теперь ваше приложение должно отображаться на вкладке Назначения ролей на странице Управление доступом (IAM) учетной записи пакетной обработки.
Примеры кода
В примерах кода в этом разделе показано, как пройти проверку подлинности в пакетная служба Azure с помощью Microsoft Entra ID с помощью учетных данных из библиотеки удостоверений Azure. В примерах используются .NET и Python, но те же шаблоны применяются к другим языкам Azure SDK.
Примечание.
Срок действия токена проверки подлинности Microsoft Entra истекает через один час. При использовании долгоживущего объекта BatchClient предоставленные вами учетные данные Azure IdentityTokenCredential автоматически кэшируют и обновляют токен, поэтому новый токен запрашивается в Microsoft Entra ID только при необходимости. Дополнительные сведения о токенах в идентификаторе Microsoft Entra см. в разделе Токены безопасности.
Tip
Для большинства сценариев используйте DefaultAzureCredential. Он автоматически пробует несколько методов аутентификации (управляемая идентичность, переменные среды, входы через инструменты разработчика и т. д.), поэтому один и тот же код работает как локально во время разработки, так и в Azure или в локальной инфраструктуре. Сведения о выборе подходящих учетных данных см. в разделе Аутентификация приложений .NET и Аутентификация приложений Python.
Пример кода: аутентификация в пакетная служба Azure с помощью .NET
В этом примере используется Azure.Compute.Batch вместе с библиотекой Azure.Identity.
Установите пакеты NuGet
Azure.Compute.BatchиAzure.Identity.Объявите следующие
usingинструкции в коде:using Azure.Compute.Batch; using Azure.Core; using Azure.Identity;Укажите конечный URL-адрес учетной записи Batch:
private const string BatchAccountUrl = "https://<myaccount>.<mylocation>.batch.azure.com";Создайте учетные данные и передайте их в конструктор
BatchClient. Используйте клиент для последующих операций со службой Batch.Рекомендуется:
DefaultAzureCredential— работает локально с учетными данными для входа в инструменты разработчика (Azure CLI, Visual Studio, Visual Studio Code) и автоматически использует управляемый идентификатор при запуске приложения в Azure:TokenCredential credential = new DefaultAzureCredential(); BatchClient client = new BatchClient(new Uri(BatchAccountUrl), credential); await foreach (BatchJob job in client.GetJobsAsync()) { Console.WriteLine(job.Id); }Интерактивный (интегрированный) вход — предлагает пользователю войти через системный браузер. Используйте это, когда приложение должно проходить проверку подлинности конкретного пользователя в интерактивном режиме:
TokenCredential 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") }); BatchClient client = new BatchClient(new Uri(BatchAccountUrl), credential);Субъект-служба (секрет клиента) — используется для автономных приложений, которые проходят аутентификацию с использованием секрета регистрации приложения:
TokenCredential credential = new ClientSecretCredential( tenantId: "<tenant-id>", clientId: "<application-id>", clientSecret: "<client-secret>"); BatchClient client = new BatchClient(new Uri(BatchAccountUrl), credential);Управляемое удостоверение — используйте, если приложение выполняется в ресурсе Azure (например, на виртуальной машине, в службе приложений или в контейнерном приложении), которому назначено управляемое удостоверение, назначаемое системой или пользователем:
// System-assigned managed identity TokenCredential credential = new ManagedIdentityCredential(); // Or, user-assigned managed identity // TokenCredential credential = new ManagedIdentityCredential(clientId: "<user-assigned-client-id>"); BatchClient client = new BatchClient(new Uri(BatchAccountUrl), credential);
Пример кода: проверка подлинности в пакетная служба Azure из Python
В этом примере используется клиент azure-batch с учетными данными из библиотеки удостоверений Azure . Устаревший azure.common.credentials.ServicePrincipalCredentials класс устарел. Вместо этого используйте azure-identity учетные данные.
Установите необходимые пакеты:
pip install azure-batch azure-identityУкажите конечную точку учетной записи Batch и область ресурса Batch:
BATCH_ACCOUNT_URL = "https://<myaccount>.<mylocation>.batch.azure.com" BATCH_SCOPE = "https://batch.core.windows.net/.default"Создайте учетные данные и передайте их в
BatchServiceClient.Рекомендуется:
DefaultAzureCredential— работает локально с входом через средства разработчика и автоматически использует управляемый идентификатор при запуске в Azure:from azure.batch import BatchServiceClient from azure.identity import DefaultAzureCredential credential = DefaultAzureCredential() batch_client = BatchServiceClient( credentials=credential, batch_url=BATCH_ACCOUNT_URL, )Интерактивный (интегрированный) вход — предлагает пользователю войти через системный браузер:
from azure.batch import BatchServiceClient from azure.identity import InteractiveBrowserCredential credential = InteractiveBrowserCredential( tenant_id="<tenant-id>", client_id="<application-id>", # optional; required only if you registered your own app ) batch_client = BatchServiceClient( credentials=credential, batch_url=BATCH_ACCOUNT_URL, )Субъект-служба (секрет клиента) — используется для приложений, работающих без участия пользователя:
from azure.batch import BatchServiceClient from azure.identity import ClientSecretCredential credential = ClientSecretCredential( tenant_id="<tenant-id>", client_id="<application-id>", client_secret="<client-secret>", ) batch_client = BatchServiceClient( credentials=credential, batch_url=BATCH_ACCOUNT_URL, )Managed identity — используется при запуске приложения на ресурсе Azure с управляемым удостоверением:
from azure.batch import BatchServiceClient from azure.identity import ManagedIdentityCredential # System-assigned managed identity credential = ManagedIdentityCredential() # Or, user-assigned managed identity # credential = ManagedIdentityCredential(client_id="<user-assigned-client-id>") batch_client = BatchServiceClient( credentials=credential, batch_url=BATCH_ACCOUNT_URL, )
Следующие шаги
- Проверка подлинности решений пакетного управления с помощью Active Directory
- Аутентификация приложений .NET в службах Azure с помощью библиотеки Azure Identity
- Аутентификация приложений Python для служб Azure с помощью библиотеки Azure Identity
- библиотека клиента Azure Identity для .NET
- Клиентская библиотека Azure Identity для Python
- Объекты приложения и главные объекты службы в Microsoft Entra ID
- Как создать приложение Microsoft Entra и служебный принципал для доступа к ресурсам