Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Azure Batch, Microsoft'un çok kiracılı bulut tabanlı dizini ve kimlik yönetimi hizmeti olan Microsoft Entra Id ile kimlik doğrulamasını destekler. Azure, kendi müşterilerinin, hizmet yöneticilerinin ve kuruluş kullanıcılarının kimliğini doğrulamak için Microsoft Entra ID’yi kullanır.
Bu makalede, Azure Batch ile Microsoft Entra kimlik doğrulamasını kullanmanın iki yolu açıklar:
Tümleşik kimlik doğrulaması , bir uygulamayla etkileşim kuran bir kullanıcının kimliğini doğrular. Uygulama bir kullanıcının kimlik bilgilerini toplar ve Batch kaynaklarına erişimin kimliğini doğrulamak için bu kimlik bilgilerini kullanır.
A service principal authenticates an unattended application. Hizmet sorumlusu, uygulamanın ilkesini ve izinlerini tanımlar ve uygulamayı çalışma zamanında Batch kaynaklarına erişecek şekilde temsil eder.
Microsoft Entra Kimliği hakkında daha fazla bilgi için Microsoft Entra belgelerine bakın.
Kimlik doğrulaması için uç noktaları toplama
Batch uygulamalarının kimliğini Microsoft Entra Id ile doğrulamak için kodunuzda Microsoft Entra uç noktasını ve Batch kaynak uç noktasını eklemeniz gerekir.
Microsoft Entra endpoint
The base Microsoft Entra authority endpoint is https://login.microsoftonline.com/. Microsoft Entra Kimliği ile kimlik doğrulaması yapmak için, kimlik doğrulaması için kullanılacak Microsoft Entra kiracısını tanımlayan kiracı kimliğiyle bu uç noktayı kullanın:
https://login.microsoftonline.com/<tenant-id>
Kiracı kimliğinizi Azure portalındaki ana Microsoft Entra Id sayfasından alabilirsiniz. Ayrıca sol gezinti bölmesinde Özellikler'i seçebilir ve Özellikler sayfasında Kiracı Kimliği'nigörebilirsiniz.
Önemli
The tenant-specific Microsoft Entra endpoint is required when you authenticate by using a service principal.
Tümleşik kimlik doğrulaması kullanarak kimlik doğrulaması yaptığınızda kiracıya özgü uç nokta önerilir, ancak isteğe bağlıdır. Belirli bir kiracının sağlanmadığı durumlarda genel bir kimlik doğrulama arabirimi sağlamak için Microsoft Entra ortak uç noktasını da kullanabilirsiniz. Ortak uç nokta şudur:
https://login.microsoftonline.com/common.
Microsoft Entra uç noktaları hakkında daha fazla bilgi için bkz . Kimlik doğrulaması ve yetkilendirme.
Batch kaynak uç noktası
Batch hizmetine yönelik isteklerin kimliğini doğrulamak için bir belirteç almak için Batch kaynak uç noktasını https://batch.core.windows.net/ kullanın.
Register your application with a tenant
Microsoft Entra kimlik doğrulamasını kullanmanın ilk adımı, uygulamanızı bir Microsoft Entra kiracısına kaydetmektir. Uygulamanızı kaydettikten sonra, kodunuzdan Microsoft Kimlik Doğrulama Kitaplığı'nı (MSAL) çağırabilirsiniz. MSAL, uygulamanızdan Microsoft Entra Kimliği ile kimlik doğrulaması için bir API sağlar. Registering your application is required whether you use integrated authentication or a service principal.
Uygulamanızı kaydettiğinizde, uygulamanızla ilgili bilgileri Microsoft Entra Id'ye verirsiniz. Microsoft Entra Id daha sonra uygulamanızı çalışma zamanında Microsoft Entra Id ile ilişkilendirmek için kullandığınız istemci kimliği olarak da adlandırılan bir uygulama kimliği sağlar. Uygulama kimliği hakkında daha fazla bilgi için bkz: Microsoft Entra ID'de Uygulama ve Hizmet Ana Nesneleri.
Batch uygulamanızı kaydetmek için Uygulamayı kaydetme adımlarını izleyin.
Uygulamanızı kaydettikten sonra, uygulamanın Genel Bakış sayfasında Uygulama (istemci) kimliğini görebilirsiniz.
Tümleşik kimlik doğrulamayı yapılandırma
Tümleşik kimlik doğrulamasıyla kimlik doğrulaması yapmak için uygulamanıza Batch hizmeti API'sine bağlanma izni vermeniz gerekir. Bu adım, uygulamanızın Batch hizmeti API'sine yapılan çağrıların kimliğini doğrulamak için Microsoft Entra Id kullanmasını sağlar.
Uygulamanızı kaydettikten sonra, uygulamaya Batch hizmetine erişim vermek için şu adımları izleyin:
- Azure portalında uygulama kayıtlarını arayın ve seçin.
- Uygulama kayıtları sayfasında uygulamanızı seçin.
- Uygulamanızın sayfasında, sol gezinti bölmesinden API izinleri'ni seçin.
- API izinleri sayfasında İzin ekle'yi seçin.
- API izinlerini iste sayfasında Azure Batch'i seçin.
- Azure Batch sayfasında, İzinleri Seç altında, user_impersonation yanındaki onay kutusunu ve ardından İzinleri Ekle seçeneğini seçin.
API izinleri sayfası artık Microsoft Entra uygulamanızın hem Microsoft Graph'ahem de Azure Batch'e erişimi olduğunu gösterir. Bir uygulamayı Microsoft Entra Id ile kaydettiğinizde Microsoft Graph'a izinler otomatik olarak verilir.
Configure a service principal
Katılımsız çalışan bir uygulamanın kimliğini doğrulamak için bir hizmet ilkesi kullanırsınız. Uygulamanız bir hizmet sorumlusu kullanarak kimlik doğrulaması yaparken, hem uygulama kimliğini hem de gizli anahtarı Microsoft Entra Kimliği'ne gönderir.
Uygulamanızı kaydettikten sonra Azure portalında bir hizmet sorumlusu yapılandırmak için şu adımları izleyin:
- Uygulamanız için gizli anahtar isteyin.
- Uygulamanıza Azure rol tabanlı erişim denetimi (Azure RBAC) atayın.
Uygulamanız için bir gizli anahtar isteyin
Kodunuzda kullanmak üzere gizli anahtar oluşturmak ve kopyalamak için şu adımları izleyin:
- Azure portalında uygulama kayıtlarını arayın ve seçin.
- Uygulama kayıtları sayfasında uygulamanızı seçin.
- Uygulamanızın sayfasında, sol gezinti bölmesinden Sertifikalar ve gizli diziler'i seçin.
- Sertifikalar ve gizli diziler sayfasında Yeni istemci sırrı'nı seçin.
- İstemci gizli anahtarı ekle sayfasında bir açıklama girin ve gizli anahtar için bir sona erme süresi seçin.
- Gizliliği oluşturmak ve Sertifikalar ve gizlilikler sayfasında görüntülemek için Ekle'yi seçin.
- Gizli Değeri güvenli bir yere kopyalayın çünkü bu sayfadan ayrıldıktan sonra ona yeniden erişemezsiniz. Anahtarınıza erişiminizi kaybederseniz yeni bir anahtar oluşturabilirsiniz.
Uygulamanıza Azure RBAC atama
Uygulamanıza Azure RBAC rolü atamak için bu adımları izleyin. Daha fazla bilgi için bkz . Azure Batch hizmeti için rol tabanlı erişim denetimi.
- Azure portalında uygulamanızın kullandığı Batch hesabına gidin.
- Sol gezinti bölmesinden Erişim denetimi (IAM) öğesini seçin.
- Erişim denetimi (IAM) sayfasında Rol ataması ekle'yi seçin.
- Rol ataması ekle sayfasında Rol sekmesini seçin ve ardından Azure Batch'in yerleşik RBAC rollerinden biri olan uygulamanızın rolünü seçin.
- Üyeler sekmesini seçin ve Üyeler altında Üyeleri seç'i seçin.
- Üye seç ekranında, uygulamanızı arayıp seçin ve ardından Seç'i seçin.
- Rol ataması ekle sayfasında Gözden geçir + ata'yı seçin.
Uygulamanız artık Batch hesabının Erişim denetimi (IAM) sayfasının Rol atamaları sekmesinde görünmelidir.
Kod örnekleri
Bu bölümdeki kod örnekleri, tümleşik kimlik doğrulaması veya hizmet sorumlusu kullanarak Microsoft Entra Id ile kimlik doğrulamasının nasıl yapılacağını gösterir. Kod örneklerinde .NET ve Python kullanılır, ancak kavramlar diğer diller için benzerdir.
Note
Microsoft Entra kimlik doğrulama belirtecinin süresi bir saat sonra dolar. Uzun ömürlü bir BatchClient nesnesi kullandığınızda, her zaman geçerli bir belirtece sahip olduğunuzdan emin olmak için her istekte MSAL'den bir belirteç almak en iyisidir.
Bunu .NET'te yapmak için Microsoft Entra Id'den belirteci alan bir yöntem yazın ve bu yöntemi bir BatchTokenCredentials nesnesine temsilci olarak geçirin. Batch hizmetine yapılan her istek, geçerli bir belirtecin sağlandığından emin olmak için temsilci yöntemini çağırır. Varsayılan olarak MSAL belirteçleri önbelleğe alır, bu nedenle gerektiğinde microsoft entra-only'dan yeni bir belirteç alınır. Microsoft Entra Id'deki belirteçler hakkında daha fazla bilgi için bkz . Güvenlik belirteçleri.
Kod örneği: Batch .NET ile Microsoft Entra tümleşik kimlik doğrulamayı kullanma
Batch .NET'ten tümleşik kimlik doğrulamasıyla kimlik doğrulaması yapmak için:
Azure Batch .NET ve MSAL NuGet paketlerini yükleyin.
Kodunuzda aşağıdaki
usingdeyimleri bildirin:using Microsoft.Azure.Batch; using Microsoft.Azure.Batch.Auth; using Microsoft.Identity.Client;Kiracı kimliği de dahil olmak üzere Microsoft Entra uç noktasına başvurun. Kiracı kimliğinizi Azure portalındaki Microsoft Entra Id'ye Genel Bakış sayfasından alabilirsiniz.
private const string AuthorityUri = "https://login.microsoftonline.com/<tenant-id>";Reference the Batch service resource endpoint:
private const string BatchResourceUri = "https://batch.core.windows.net/";Reference your Batch account:
private const string BatchAccountUrl = "https://<myaccount>.<mylocation>.batch.azure.com";Uygulamanız için uygulama (istemci) kimliğini belirtin. Uygulamanızın Azure portalındaki Genel Bakış sayfasından uygulama kimliğini alabilirsiniz.
private const string ClientId = "<application-id>";Uygulamayı kaydettiğinizde sağladığınız yeniden yönlendirme URI'sini belirtin.
private const string RedirectUri = "https://<redirect-uri>";Kimlik doğrulama belirtecini Microsoft Entra Id'den almak için bir geri çağırma yöntemi yazın. Aşağıdaki örnek, uygulamayla etkileşim kuran bir kullanıcının kimliğini doğrulamak için MSAL'yi çağırır. MSAL IConfidentialClientApplication.AcquireTokenByAuthorizationCode yöntemi kullanıcıdan kimlik bilgilerini ister. Kullanıcı kimlik bilgilerini sağladıktan sonra uygulama devam eder.
authorizationCode parametresi, kullanıcı kimlik doğrulamasından sonra yetkilendirme sunucusundan alınan yetkilendirme kodudur.
WithRedirectUrikimlik doğrulamasından sonra yetkilendirme sunucusunun kullanıcıyı yönlendirdiği URI'yi belirtir.public static async Task<string> GetTokenUsingAuthorizationCode(string authorizationCode, string redirectUri, string[] scopes) { var app = ConfidentialClientApplicationBuilder.Create(ClientId) .WithAuthority(AuthorityUri) .WithRedirectUri(RedirectUri) .Build(); var authResult = await app.AcquireTokenByAuthorizationCode(scopes, authorizationCode).ExecuteAsync(); return authResult.AccessToken; }Yetkilendirme sunucusundan alınan yetkilendirme koduyla
<authorization-code>öğesini değiştirerek bu yöntemi aşağıdaki kodla çağırın. Kapsam,.defaultkullanıcının kaynağın tüm kapsamlarına erişme iznine sahip olmasını sağlar.var token = await GetTokenUsingAuthorizationCode("<authorization-code>", "RedirectUri", new string[] { "BatchResourceUri/.default" });Temsilciyi parametre olarak alan bir BatchTokenCredentials nesnesi oluşturma. BatchClient nesnesini açmak için bu kimlik bilgilerini kullanın. Daha sonra Batch hizmetine karşı sonraki işlemler için BatchClient nesnesini kullanın:
public static void PerformBatchOperations() { Func<Task<string>> tokenProvider = () => GetTokenUsingAuthorizationCode(); using (var client = BatchClient.Open(new BatchTokenCredentials(BatchAccountUrl, tokenProvider))) { client.JobOperations.ListJobs(); } }
Code example: Use a Microsoft Entra service principal with Batch .NET
Batch .NET'ten bir hizmet sorumlusuyla kimlik doğrulaması yapmak için:
Azure Batch .NET ve MSAL NuGet paketlerini yükleyin.
Kodunuzda aşağıdaki
usingdeyimleri bildirin:using Microsoft.Azure.Batch; using Microsoft.Azure.Batch.Auth; using Microsoft.Identity.Client;Kiracı kimliği de dahil olmak üzere Microsoft Entra uç noktasına başvurun. Hizmet ilkesi kullandığınızda kiracıya özgü bir uç nokta sağlamanız gerekir. Kiracı kimliğinizi Azure portalındaki Microsoft Entra Id'ye Genel Bakış sayfasından alabilirsiniz.
private const string AuthorityUri = "https://login.microsoftonline.com/<tenant-id>";Reference the Batch service resource endpoint:
private const string BatchResourceUri = "https://batch.core.windows.net/";Reference your Batch account:
private const string BatchAccountUrl = "https://<myaccount>.<mylocation>.batch.azure.com";Uygulamanız için uygulama (istemci) kimliğini belirtin. Uygulamanızın Azure portalındaki Genel Bakış sayfasından uygulama kimliğini alabilirsiniz.
private const string ClientId = "<application-id>";Azure portalından kopyaladığınız gizli anahtarı belirtin.
private const string ClientKey = "<secret-key>";Kimlik doğrulama belirtecini Microsoft Entra Id'den almak için bir geri çağırma yöntemi yazın. Aşağıdaki ConfidentialClientApplicationBuilder.Create yöntemi, katılımsız kimlik doğrulaması için MSAL'yi çağırır.
public static async Task<string> GetAccessToken(string[] scopes) { var app = ConfidentialClientApplicationBuilder.Create(clientId) .WithClientSecret(ClientKey) .WithAuthority(new Uri(AuthorityUri)) .Build(); var result = await app.AcquireTokenForClient(scopes).ExecuteAsync(); return result.AccessToken; }Aşağıdaki kodu kullanarak bu yöntemi çağırın. Kapsam,
.defaultuygulamanın kaynağın tüm kapsamlarına erişme iznine sahip olmasını sağlar.var token = await GetAccessToken(new string[] { $"{BatchResourceUri}/.default" });Temsilciyi parametre olarak alan bir BatchTokenCredentials nesnesi oluşturma. BatchClient nesnesini açmak için bu kimlik bilgilerini kullanın. Daha sonra Batch hizmetine karşı sonraki işlemler için BatchClient nesnesini kullanın:
public static void PerformBatchOperations() { Func<Task<string>> tokenProvider = () => GetAccessToken(); using (var client = BatchClient.Open(new BatchTokenCredentials(BatchAccountUrl, tokenProvider))) { client.JobOperations.ListJobs(); } }
Code example: Use a Microsoft Entra service principal with Batch Python
Batch Python'dan hizmet sorumlusuyla kimlik doğrulaması yapmak için:
azure-batch ve azure-common Python modüllerini yükleyin.
Modüllere bakın:
from azure.batch import BatchServiceClient from azure.common.credentials import ServicePrincipalCredentialsTo use a service principal, provide a tenant-specific endpoint. Kiracı kimliğinizi Azure portalındaki Microsoft Entra Id Genel Bakış sayfasından veya Özellikler sayfasından alabilirsiniz.
TENANT_ID = "<tenant-id>"Reference the Batch service resource endpoint:
RESOURCE = "https://batch.core.windows.net/"Reference your Batch account:
BATCH_ACCOUNT_URL = "https://<myaccount>.<mylocation>.batch.azure.com"Uygulamanız için uygulama (istemci) kimliğini belirtin. Uygulamanızın Azure portalındaki Genel Bakış sayfasından uygulama kimliğini alabilirsiniz.
CLIENT_ID = "<application-id>"Azure portalından kopyaladığınız gizli dizi anahtarını belirtin:
SECRET = "<secret-key>"ServicePrincipalCredentials nesnesi oluşturun:
credentials = ServicePrincipalCredentials( client_id=CLIENT_ID, secret=SECRET, tenant=TENANT_ID, resource=RESOURCE )BatchServiceClient nesnesini açmak için hizmet sorumlusu kimlik bilgilerini kullanın. Ardından Batch hizmetine karşı sonraki işlemler için BatchServiceClient nesnesini kullanın.
batch_client = BatchServiceClient( credentials, batch_url=BATCH_ACCOUNT_URL )
Microsoft Entra belirteci kullanılarak kimliği doğrulanmış bir Batch istemcisinin nasıl oluşturulacağını gösteren bir Python örneği görmek için Python Betiği Örneği ile Azure Batch Özel Görüntüsü Dağıtma örneğine bakın.
Sonraki adımlar
- Active Directory ile Batch Management çözümlerinin kimliğini doğrulama
- MSAL.NET'da istemci kimlik bilgisi akışları
- Yetkilendirme koduna göre belirteçleri almak için MSAL.NET kullanma (web siteleri için)
- Microsoft Entra ID'de uygulama ve hizmet ilkesi nesneleri
- Kaynaklara erişebilen bir Microsoft Entra uygulaması ve hizmet sorumlusu oluşturma
- Microsoft kimlik platformu kod örnekleri