Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
Az Azure Batch azonosítást támogat a Microsoft Entra ID segítségével, amely a Microsoft több-bérlős, felhő alapú könyvtár- és identitás-kezelő szolgáltatása. Az Azure a Microsoft Entra ID-t használja saját ügyfelei, szolgáltatás-adminisztrátorai és szervezeti felhasználói hitelesítésére.
This article describes two ways to use Microsoft Entra authentication with Azure Batch:
Integrált hitelesítés hitelesíti a felhasználót, aki egy alkalmazással lép kapcsolatba. The application gathers a user's credentials and uses those credentials to authenticate access to Batch resources.
A service principal authenticates an unattended application. A szolgáltatási főazonosító meghatározza az alkalmazás politikáját és jogosultságait, valamint képviseli az alkalmazást a Batch erőforrások futásidejű eléréséhez.
További információért a Microsoft Entra ID-ről lásd a Microsoft Entra dokumentációt.
Gather endpoints for authentication
A Batch alkalmazások hitelesítéséhez a Microsoft Entra ID-vel hozzá kell adni a Microsoft Entra végpontot és a Batch erőforrás végpontot a kódjához.
Microsoft Entra végpont
The base Microsoft Entra authority endpoint is https://login.microsoftonline.com/. To authenticate with Microsoft Entra ID, use this endpoint with the tenant ID that identifies the Microsoft Entra tenant to use for authentication:
https://login.microsoftonline.com/<tenant-id>
A bérlői azonosítóját a Microsoft Entra ID főoldalán találhatja meg az Azure portálon. A bal oldali navigációban választhatja a Tulajdonságok lehetőséget, és megtekintheti a Bérlő azonosítóját a Tulajdonságok oldalon.
Important
A bérlő-specifikus Microsoft Entra végpont szükséges, amikor egy szolgáltatási főszereplővel hitelesíti magát.
Amikor integrált hitelesítést használ az azonosításhoz, a bérlő-specifikus végpont ajánlott, de nem kötelező. A Microsoft Entra közös végpontját is használhatja, hogy általános hitelesítési felületet biztosítson, amikor nincs megadva konkrét bérlő. A közös végpont
https://login.microsoftonline.com/common.
További információért a Microsoft Entra végpontokról, lásd Authentication vs. authorization.
Kötegelt erőforrás végpont
Használja a Batch erőforrás-végpontot https://batch.core.windows.net/ egy token megszerzéséhez, amely lehetővé teszi a kérések hitelesítését a Batch szolgáltatáshoz.
Regisztrálja az alkalmazását egy bérlőnél
Az első lépés a Microsoft Entra hitelesítés használatában az, hogy regisztrálja alkalmazását egy Microsoft Entra bérlőben. Miután regisztrálta az alkalmazását, a kódjából hívhatja a Microsoft Authentication Library (MSAL) könyvtárat. The MSAL provides an API for authenticating with Microsoft Entra ID from your application. Az alkalmazás regisztrálása kötelező, függetlenül attól, hogy integrált hitelesítést vagy szolgáltatásfőtt használ.
Amikor regisztrálja az alkalmazását, adatokat szolgáltat az alkalmazásáról a Microsoft Entra ID-nek. A Microsoft Entra ID ezután biztosít egy alkalmazásazonosítót, más néven ügyfél-azonosítót, amelyet az alkalmazás Microsoft Entra ID-hez való társításához használ a futásidő során. További információért az alkalmazásazonosítóról lásd: Alkalmazási és szolgáltatási főobjektumok a Microsoft Entra ID-ben.
Az alkalmazás csomagjának regisztrálásához kövesse a Regisztrálás egy alkalmazás lépéseit.
Miután regisztrálja az alkalmazását, az Áttekintés oldalon láthatja az Alkalmazás (ügyfél) azonosítót.
Konfigurálja az integrált hitelesítést
Ahhoz, hogy az integrált hitelesítéssel azonosítson, engedélyt kell adnia az alkalmazásának, hogy csatlakozhasson a Batch szolgáltatás API-jához. Ez a lépés lehetővé teszi, hogy az alkalmazás a Microsoft Entra ID-t használja a hívások hitelesítésére a Batch szolgáltatás API-jához.
After you register your application, follow these steps to grant the application access to the Batch service:
- Az Azure portálon keressen rá és válassza ki az alkalmazás regisztrációk lehetőséget.
- A Alkalmazás regisztrációk oldalon válassza ki az alkalmazását.
- On your application's page, select API permissions from the left navigation.
- On the API permissions page, select Add a permission.
- On the Request API permissions page, select Azure Batch.
- Az Azure Batch oldalon, a Engedélyek kiválasztása rész alatt jelölje be a jelölőnégyzetet a user_impersonation mellett, majd válassza az Engedélyek hozzáadása lehetőséget.
Az API jogosultságok oldal most azt mutatja, hogy a Microsoft Entra alkalmazásod mind Microsoft Graph-hoz, mind pedig Azure Batch-hez hozzáféréssel rendelkezik. A jogosultságok automatikusan megadódnak a Microsoft Graph számára, amikor regisztrál egy alkalmazást a Microsoft Entra ID-vel.
Szolgáltatási főkomponens beállítása
Ahhoz, hogy hitelesítse egy felügyelet nélküli alkalmazás futtatását, használjon szolgáltatásfelelőst. Amikor az alkalmazása egy szolgáltatási főazonosító segítségével hitelesít, elküldi mind az alkalmazásazonosítót, mind egy titkos kulcsot a Microsoft Entra ID-hoz.
A regisztrációt követően kövesse az alábbi lépéseket az Azure portálon egy szolgáltatási főszereplő konfigurálásához:
- Kérjen titkos kulcsot az alkalmazásához.
- Alkalmazzon Azure szerepkör-alapú hozzáférés-vezérlést (Azure RBAC) az alkalmazásához.
Kérjen egy titkot az alkalmazásához
Kövesse az alábbi lépéseket a titkos kulcs létrehozásához és a kódba való másolásához:
- Az Azure portálon keressen rá a alkalmazásregisztrációkra, majd válassza ki őket.
- A Alkalmazás regisztrációk oldalon válassza ki az alkalmazását.
- Az alkalmazás oldalán válassza a bal oldali navigációs sávban a Certificates & secrets lehetőséget.
- A Tanúsítványok és titkos kulcsok oldalon válassza a Új ügyfél titkos kulcs lehetőséget.
- A Kliens titok hozzáadása oldalon adjon meg egy leírást, és válassza ki a titok lejárati időszakát.
- Válassza a Hozzáadás lehetőséget a titok létrehozásához és megjelenítéséhez a Tanúsítványok és titkok oldalon.
- Másold a titkos Értéket egy biztonságos helyre, mert az oldal elhagyása után már nem fogsz hozzáférni. Ha elveszíted a hozzáférést a kulcsodhoz, újat generálhatsz.
Assign Azure RBAC to your application
Kövesse ezeket a lépéseket, hogy hozzárendeljen egy Azure RBAC szerepkört az alkalmazásához. További információkért lásd: Az Azure Batch szolgáltatás szerepkör-alapú hozzáférés-vezérlése.
- Az Azure portálon navigáljon arra a Batch-fiókra, amelyet az alkalmazása használ.
- Válassza ki a Hozzáférés-vezérlés (IAM) lehetőséget a bal oldali navigációs sávban.
- A Hozzáférés-vezérlés (IAM) oldalon válassza a Szerepkör hozzárendelése lehetőséget.
- A Szerepkiosztás hozzáadása oldalon válassza a Szerepkör fület, majd válasszon egyet az Azure Batch beépített RBAC szerepkörei közül az alkalmazásához.
- Select the Members tab, and select Select members under Members.
- A Tagok kiválasztása képernyőn keresse meg és válassza ki az alkalmazását, majd kattintson a Kiválasztás gombra.
- Válassza a Felülvizsgálat + hozzárendelés lehetőséget a Szerepkör-hozzárendelés hozzáadása oldalon.
Az alkalmazásának most meg kell jelennie a Szerepkiosztások fülön a Felhőszolgáltatási fiók Hozzáférés-vezérlés (IAM) oldalán.
Kódpéldák
Ebben a szakaszban a kódpéldák bemutatják, hogyan lehet autentikálni a Microsoft Entra ID-val integrált hitelesítés vagy egy szolgáltatásfelhasználó segítségével. A kódpéldák .NET-et és Python-t használnak, de a fogalmak más nyelveknél is hasonlóak.
Note
A Microsoft Entra hitelesítési token egy óra elteltével lejár. Amikor hosszú élettartamú BatchClient objektumot használsz, a legjobb, ha minden kérésnél megszerzel egy tokent az MSAL-től, hogy biztos lehess benne, hogy mindig érvényes tokent használsz.
Ahhoz, hogy ezt a .NET-ben megvalósítsuk, írjunk egy metódust, amely lekéri a tokent a Microsoft Entra ID-ből, és adjuk át ezt a metódust egy BatchTokenCredentials objektumnak delegáltként. Minden kérés a Batch szolgáltatás felé meghívja a delegált metódust, hogy biztosítsa, érvényes token legyen megadva. Az MSAL alapértelmezés szerint tárolja az érvényesítési tokeneket, így csak szükség esetén kér új tokent a Microsoft Entra-tól. További információkért a Microsoft Entra ID tokenekkel kapcsolatban, lásd: Biztonsági tokenek.
Kódpélda: Microsoft Entra integrált hitelesítés használata a Batch .NET-tel
A Batch .NET beépített hitelesítésével való hitelesítéshez:
Telepítse az Azure Batch .NET és az MSAL NuGet csomagokat.
Deklarálja az alábbi
usingutasításokat a kódjában.using Microsoft.Azure.Batch; using Microsoft.Azure.Batch.Auth; using Microsoft.Identity.Client;Reference the Microsoft Entra endpoint, including the tenant ID. You can get your tenant ID from the Microsoft Entra ID Overview page in the Azure portal.
private const string AuthorityUri = "https://login.microsoftonline.com/<tenant-id>";Hivatkozzon a Batch szolgáltatás erőforrásának végpontjára:
private const string BatchResourceUri = "https://batch.core.windows.net/";Hivatkozzon a kötegelt fiókjára:
private const string BatchAccountUrl = "https://<myaccount>.<mylocation>.batch.azure.com";Adja meg az alkalmazás (ügyfél) azonosítóját az alkalmazásához. You can get the application ID from your application's Overview page in the Azure portal.
private const string ClientId = "<application-id>";Adja meg azt az átirányítási URI-t, amelyet az alkalmazás regisztrálásakor megadott.
private const string RedirectUri = "https://<redirect-uri>";Write a callback method to acquire the authentication token from Microsoft Entra ID. Az alábbi példa az MSAL használatával hitelesít egy felhasználót, aki az alkalmazással lép interakcióba. Az MSAL IConfidentialClientApplication.AcquireTokenByAuthorizationCode metódus a felhasználót a hitelesítő adatai megadására kéri. The application proceeds once the user provides credentials.
A authorizationCode paraméter az engedélyezési kód, amelyet az engedélyezési szervertől kapunk, miután a felhasználó hitelesítette magát.
WithRedirectUrimegadja azt az átirányítási URI-t, amelyre az engedélyezési szerver azonosítás után átirányítja a felhasználót.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; }Hívja meg ezt a módszert a következő kóddal, cserélve a
<authorization-code>-t az engedélyszerver által kapott engedélyezési kóddal. A.defaulthatókör biztosítja, hogy a felhasználónak engedélye van az erőforrás összes hatóköréhez való hozzáférésre.var token = await GetTokenUsingAuthorizationCode("<authorization-code>", "RedirectUri", new string[] { "BatchResourceUri/.default" });Készíts egy BatchTokenCredentials objektumot, amely a delegáltat veszi paraméterként. Használja ezeket a hitelesítő adatokat egy BatchClient objektum megnyitásához. Ezután használja a BatchClient objektumot a Batch szolgáltatással szembeni további műveletekhez.
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
A Batch .NET szolgáltatási főkulccsal való hitelesítéshez kövesse az alábbi lépéseket:
Telepítse az Azure Batch .NET és az MSAL NuGet csomagokat.
Deklarálja a következő
usingutasításokat a kódjában:using Microsoft.Azure.Batch; using Microsoft.Azure.Batch.Auth; using Microsoft.Identity.Client;Hivatkozzon a Microsoft Entra végpontjára, beleértve a bérlő azonosítóját. Ha szolgáltatás-hitelesítőt használ, meg kell adnia egy bérlő-specifikus végpontot. Megkaphatja a bérlői azonosítóját a Microsoft Entra ID Áttekintés oldalról az Azure portálon.
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/";Hivatkozzon a Batch-fiókjára.
private const string BatchAccountUrl = "https://<myaccount>.<mylocation>.batch.azure.com";Adja meg az alkalmazás (ügyfél) azonosítóját az alkalmazásához. You can get the application ID from your application's Overview page in the Azure portal.
private const string ClientId = "<application-id>";Adja meg a titkos kulcsot, amelyet az Azure portálról másolt át.
private const string ClientKey = "<secret-key>";Írj egy visszahívási metódust a hitelesítési token megszerzéséhez a Microsoft Entra ID-ből. The following ConfidentialClientApplicationBuilder.Create method calls MSAL for unattended authentication.
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; }Ezt a metódust a következő kód használatával hívja meg. A
.defaulttartalom biztosítja, hogy az alkalmazásnak joga van hozzáférni az erőforrás összes jogosultsági alkalmazási köréhez.var token = await GetAccessToken(new string[] { $"{BatchResourceUri}/.default" });Hozzon létre egy BatchTokenCredentials objektumot, amely a delegáltat paraméterként veszi. Use those credentials to open a BatchClient object. Ezután használja a BatchClient objektumot további műveletekhez a Batch szolgáltatás ellen.
public static void PerformBatchOperations() { Func<Task<string>> tokenProvider = () => GetAccessToken(); using (var client = BatchClient.Open(new BatchTokenCredentials(BatchAccountUrl, tokenProvider))) { client.JobOperations.ListJobs(); } }
Kód példa: Microsoft Entra szolgáltatási főkulcs használata Batch Python-nal
Egy szolgáltatási főkönyvtár hitelesítése a Batch Python használatával:
Telepítse az azure-batch és azure-common Python modulokat.
Reference the modules:
from azure.batch import BatchServiceClient from azure.common.credentials import ServicePrincipalCredentialsA szolgáltatás felhasználói fiók használatához biztosítson egy bérlőspecifikus végpontot. You can get your tenant ID from the Microsoft Entra ID Overview page or Properties page in the Azure portal.
TENANT_ID = "<tenant-id>"Hivatkozzon a Batch szolgáltatás erőforrás végpontjára.
RESOURCE = "https://batch.core.windows.net/"Reference your Batch account:
BATCH_ACCOUNT_URL = "https://<myaccount>.<mylocation>.batch.azure.com"Adja meg az alkalmazás (ügyfél) azonosítóját az alkalmazásához. Az alkalmazásazonosítót az Azure portálon, az alkalmazás Áttekintés oldalán találja meg.
CLIENT_ID = "<application-id>"Specify the secret key that you copied from the Azure portal:
SECRET = "<secret-key>"Create a ServicePrincipalCredentials object:
credentials = ServicePrincipalCredentials( client_id=CLIENT_ID, secret=SECRET, tenant=TENANT_ID, resource=RESOURCE )Használja a szolgáltatás fő hitelesítő adatait egy BatchServiceClient objektum megnyitásához. Then use the BatchServiceClient object for subsequent operations against the Batch service.
batch_client = BatchServiceClient( credentials, batch_url=BATCH_ACCOUNT_URL )
For a Python example of how to create a Batch client authenticated by using a Microsoft Entra token, see the Deploying Azure Batch Custom Image with a Python Script sample.
Next steps
- Authenticate Batch Management solutions with Active Directory
- Client credential flows in MSAL.NET
- Webhelyekhez szánt MSAL.NET használata tokenek megszerzéséhez engedélyezési kód alapján
- Alkalmazás és szolgáltatás-főobjektumok a Microsoft Entra ID-ben
- Hogyan hozzunk létre Microsoft Entra alkalmazást és szolgáltatásbeli szerepkört, amely hozzáférhet az erőforrásokhoz
- Microsoft identity platform code samples