Azure Batch 관리 서비스를 호출하는 애플리케이션은 Microsoft 다중 테넌트 클라우드 기반 디렉터리 및 ID 관리 서비스인 Microsoft Entra ID 인증합니다. Azure 자체적으로 Microsoft Entra ID 사용하여 고객, 서비스 관리자 및 조직 사용자를 인증합니다.
Batch 관리 앱을 인증하는 데 권장되는 방법은 Azure Identity client library를 Azure.ResourceManager.Batch 관리 라이브러리와 함께 사용하는 것입니다. Azure ID 라이브러리는 앱이 로컬, Azure 또는 온-프레미스에서 실행되는지 여부에 관계없이 일관되게 작동하는 토큰 기반 자격 증명 클래스(예: DefaultAzureCredential, ManagedIdentityCredential, ClientSecretCredential 및 InteractiveBrowserCredential)를 제공합니다. 권장 인증 전략에 대한 개요는 Azure ID 라이브러리를 사용하여 서비스에 Azure .NET 앱 인증을 참조하세요.
Azure.ResourceManager.Batch 라이브러리는 Batch 계정, 계정 키, 애플리케이션 및 애플리케이션 패키지를 관리하기 위한 형식을 노출합니다. Azure 리소스 공급자 클라이언트이며 Azure Resource Manager 함께 작동하여 이러한 리소스를 프로그래밍 방식으로 관리합니다. 이 라이브러리를 포함하여 Azure 리소스 공급자 클라이언트를 통해 수행된 요청을 인증하려면 Microsoft Entra ID 필요합니다.
메모
레거시 Microsoft.Azure.Management.Batch 패키지 및 ADAL 기반 코드 패턴(AuthenticationContext.AcquireToken)은 더 이상 사용되지 않습니다. 새 코드는 Azure.ResourceManager.Batch 자격 증명과 함께 Azure.Identity 사용해야 합니다.
Batch 관리 .NET 라이브러리를 사용하는 방법에 대한 자세한 내용은
애플리케이션 등록(선택 사항)
별도의 Microsoft Entra 애플리케이션을 등록해야 하는지 여부는 사용하는 자격 증명 유형에 따라 달라집니다.
-
DefaultAzureCredential사용하여 개발자 도구(Azure CLI, Azure PowerShell, Visual Studio 또는 Visual Studio Code)를 통해 로그인하거나 앱이 관리 ID가 있는 Azure 리소스에서 실행되는 경우 별도의 애플리케이션을 등록할 필요가 없습니다. 자격 증명은 해당 환경에서 이미 구성된 ID를 사용합니다. - 앱이 서비스 주체로 인증하는 경우(예:
ClientSecretCredential또는ClientCertificateCredential) Microsoft Entra 테넌트에 애플리케이션을 등록해야 합니다.
애플리케이션을 등록하려면 Quickstart: Microsoft ID 플랫폼을 사용하여 애플리케이션 등록의 단계를 따르세요. 등록 후 Microsoft Entra ID 런타임에 사용하는 application(클라이언트) ID 제공합니다. 자세한 내용은 Microsoft Entra ID의 애플리케이션 및 서비스 주체 개체를 참조하세요.
Azure RBAC 권한 할당
앱에서 사용하는 ID(개발자 계정, 관리 ID 또는 서비스 주체)를 결정한 후 Batch 계정을 관리하는 리소스 그룹 또는 구독에 필요한 AZURE RBAC(역할 기반 액세스 제어) 권한을 해당 ID에 할당합니다. 일반적인 기본 제공 역할에는 Contributor, Azure Batch 계정 기여자 및 Reader 등이 있습니다.
단계는 Azure 포털을 사용하여 Azure 역할 할당 참조하세요.
Azure ID 라이브러리를 사용하여 인증
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에서 실행될 때 관리형 ID를 자동으로 사용합니다.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);관리 ID — 시스템이 할당하거나 사용자가 할당한 관리 ID가 있는 Azure 리소스(예: VM, App Service 또는 Container App)에서 앱이 실행되는 경우 사용합니다.
// 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 관리 리소스를 활성 상태로 유지할 수 있습니다.