Batch-szolgáltatásmegoldások hitelesítése az Active Directoryval
Azure Batch támogatja a Azure Active Directory (Azure AD) használatával való hitelesítést. Az Azure AD a Microsoft több-bérlős felhőalapú címtár- és identitáskezelési szolgáltatása. Maga az Azure az Azure AD használatával hitelesíti ügyfeleit, szolgáltatásadminisztrátorait és szervezeti felhasználóit.
Ha Azure AD-hitelesítést használ Azure Batch, kétféleképpen végezhet hitelesítést:
- Integrált hitelesítéssel hitelesíthet egy alkalmazást használó felhasználót. Az integrált hitelesítést használó alkalmazások összegyűjtik a felhasználó hitelesítő adatait, és ezeket a hitelesítő adatokat használják a Batch-erőforrásokhoz való hozzáférés hitelesítéséhez.
- Szolgáltatásnév használatával hitelesíthet egy felügyelet nélküli alkalmazást. A szolgáltatásnév határozza meg az alkalmazás szabályzatát és engedélyeit, hogy az alkalmazás az erőforrások futásidőben való elérésekor jelenhessen meg.
Az Azure AD-ről további információt a Azure Active Directory dokumentációban talál.
Végpontok hitelesítéshez
A Batch-alkalmazások Azure AD-vel való hitelesítéséhez fel kell vennie néhány jól ismert végpontot a kódba.
Azure AD-végpont
Az Azure AD-szolgáltató alapvégpontja a következő:
https://login.microsoftonline.com/
Az Azure AD-vel való hitelesítéshez ezt a végpontot a bérlőazonosítóval (címtár-azonosítóval) együtt kell használnia. A bérlőazonosító azonosítja a hitelesítéshez használni kívánt Azure AD-bérlőt. A bérlőazonosító lekéréséhez kövesse a Azure Active Directory bérlőazonosítójának lekérése című témakörben ismertetett lépéseket:
https://login.microsoftonline.com/<tenant-id>
Megjegyzés
A bérlőspecifikus végpontra akkor van szükség, ha szolgáltatásnévvel hitelesít.
A bérlőspecifikus végpont nem kötelező, ha integrált hitelesítéssel hitelesíti magát, de ajánlott. Használhatja azonban az Azure AD gyakori végpontot is. A közös végpont általános hitelesítőadat-gyűjtési felületet biztosít, ha egy adott bérlő nincs megadva. A gyakori végpont a https://login.microsoftonline.com/common.
Az Azure AD-végpontokkal kapcsolatos további információkért lásd: Hitelesítés és engedélyezés.
Batch-erőforrásvégpont
A Azure Batch erőforrásvégpont használatával szerezzen be egy jogkivonatot a Batch szolgáltatás felé irányuló kérések hitelesítéséhez:
https://batch.core.windows.net/
Alkalmazás regisztrálása bérlővel
Az Azure AD hitelesítéshez való használatának első lépése az alkalmazás regisztrálása egy Azure AD-bérlőben. Az alkalmazás regisztrálásával meghívhatja az Azure Active Directory Authentication Libraryt (ADAL) a kódból. Az ADAL egy API-t biztosít az Azure AD-vel való hitelesítéshez az alkalmazásból. Az alkalmazás regisztrálására akkor van szükség, ha integrált hitelesítést vagy szolgáltatásnevet szeretne használni.
Az alkalmazás regisztrálásakor az alkalmazással kapcsolatos információkat adja meg az Azure AD-nek. Az Azure AD ezután megad egy alkalmazásazonosítót (más néven ügyfél-azonosítót), amellyel az alkalmazást az Azure AD-hez társíthatja futásidőben. Az alkalmazásazonosítóval kapcsolatos további információkért lásd a Azure Active Directory alkalmazás- és szolgáltatásnév-objektumait.
A Batch-alkalmazás regisztrálásához kövesse az alkalmazás regisztrálása című rövid útmutató Alkalmazás regisztrálása szakaszának lépéseit: Alkalmazás regisztrálása a Microsoft Identitásplatform. Ha az alkalmazást natív alkalmazásként regisztrálja, megadhat bármilyen érvényes URI-t az átirányítási URI-hoz. Nem kell valódi végpontnak lennie.
Az alkalmazás regisztrálása után megjelenik az alkalmazás azonosítója:

Az Active Directory bérlőazonosítójának lekérése
A bérlőazonosító azonosítja azt az Azure AD-bérlőt, amely hitelesítési szolgáltatásokat nyújt az alkalmazásnak. A bérlőazonosító lekéréséhez kövesse az alábbi lépéseket:
- A Azure Portal válassza ki az Active Directoryt.
- Válassza ki a Tulajdonságok elemet.
- Másolja ki a címtár-azonosítóhoz megadott GUID-értéket. Ezt az értéket bérlőazonosítónak is nevezik.

Integrált hitelesítés használata
Az integrált hitelesítéssel történő hitelesítéshez engedélyt kell adnia az alkalmazásnak a Batch szolgáltatás API-hoz való csatlakozáshoz. Ezzel a lépéssel az alkalmazás hitelesítheti a Batch szolgáltatás API-jának hívásait az Azure AD-vel.
Miután regisztrálta az alkalmazást, kövesse az alábbi lépéseket a Azure Portal, hogy hozzáférést biztosítson a Batch szolgáltatáshoz:
- A Azure Portal válassza a Minden szolgáltatás, majd az Alkalmazásregisztrációk lehetőséget.
- Keresse meg az alkalmazás nevét az alkalmazásregisztrációk listájában.
- Válassza ki az alkalmazást, és válassza ki az API-engedélyeket.
- Az API-engedélyek szakaszban válassza az Engedély hozzáadása lehetőséget.
- A Batch API megkereséséhez keressen rá a "Microsoft Azure Batch" kifejezésre. A ddbf3205-c6bd-46ae-8127-60eb93363864 a Batch API alkalmazásazonosítója.
- Válassza ki a Batch API-t, majd válassza a Kiválasztás lehetőséget.
- Az Engedélyek kiválasztása területen jelölje be az Access Azure Batch Szolgáltatás melletti jelölőnégyzetet, majd válassza az Engedélyek hozzáadása lehetőséget.
Az API-engedélyek szakasz most azt mutatja, hogy az Azure AD-alkalmazás a Microsoft Graph és a Batch szolgáltatás API-hoz is hozzáfér. A Microsoft Graph automatikusan kapnak engedélyeket, amikor először regisztrálja az alkalmazást az Azure AD-ben.
Szolgáltatásnév használata
A felügyelet nélküli alkalmazás hitelesítéséhez szolgáltatásnevet kell használnia. Miután regisztrálta az alkalmazást, kövesse az alábbi lépéseket a Azure Portal egy szolgáltatásnév konfigurálásához:
- Titkos kód kérése az alkalmazáshoz.
- Azure szerepköralapú hozzáférés-vezérlés (Azure RBAC) hozzárendelése az alkalmazáshoz.
Titkos kód kérése az alkalmazáshoz
Amikor az alkalmazás hitelesítést végzett egy szolgáltatásnévvel, az alkalmazásazonosítót és a titkos kulcsot is elküldi az Azure AD-nek. Létre kell hoznia és át kell másolnia a titkos kulcsot a kódból való használathoz.
Hajtsa végre a következő lépéseket az Azure Portalon:
- A Azure Portal válassza a Minden szolgáltatás lehetőséget. Válassza az Alkalmazásregisztrációk lehetőséget.
- Válassza ki az alkalmazást az alkalmazásregisztrációk listájából.
- Jelölje ki az alkalmazást, majd válassza a Tanúsítványok titkos kódja lehetőséget&. Az Ügyfélkódok szakaszban válassza az Új titkos ügyfélkulcs lehetőséget.
- Titkos kód létrehozásához adja meg a titkos kód leírását. Ezután válasszon ki egy lejárati dátumot a titkos kódhoz, amely egy év, két év, vagy nincs lejárat.
- Válassza a Hozzáadás lehetőséget a titkos kód létrehozásához és megjelenítéséhez. Másolja a titkos értéket egy biztonságos helyre, mert az oldal elhagyása után nem fogja tudni újból elérni.
Azure RBAC hozzárendelése az alkalmazáshoz
A szolgáltatásnévvel való hitelesítéshez Azure RBAC-t kell hozzárendelnie az alkalmazáshoz. Kövesse az alábbi lépéseket:
- A Azure Portal keresse meg az alkalmazás által használt Batch-fiókot.
- A Batch-fiók Gépház szakaszában válassza a Access Control (IAM) lehetőséget.
- Rendelje hozzá a Közreműködő vagy az Olvasó szerepkört az alkalmazáshoz. Részletes lépésekért lásd: Azure-szerepkörök hozzárendelése a Azure Portal használatával.
Az alkalmazásnak most meg kell jelennie a hozzáférés-vezérlési beállításokban egy Hozzárendelt Azure-szerepkörrel.
Egyéni szerepkör hozzárendelése
Az egyéni szerepkör részletes engedélyt ad a felhasználóknak feladatok, feladatok és egyebek beküldésére. Ez lehetővé teszi, hogy megakadályozza, hogy a felhasználók olyan műveleteket hajtsanak végre, amelyek hatással vannak a költségekre, például készletek létrehozására vagy csomópontok módosítására.
Egyéni szerepkör használatával engedélyeket adhat egy Azure AD-felhasználónak, -csoportnak vagy -szolgáltatásnévnek a következő Azure RBAC-műveletekhez:
- Microsoft.Batch/batchAccounts/pools/write
- Microsoft.Batch/batchAccounts/pools/delete
- Microsoft.Batch/batchAccounts/pools/read
- Microsoft.Batch/batchAccounts/jobSchedules/write
- Microsoft.Batch/batchAccounts/jobSchedules/delete
- Microsoft.Batch/batchAccounts/jobSchedules/read
- Microsoft.Batch/batchAccounts/jobs/write
- Microsoft.Batch/batchAccounts/jobs/delete
- Microsoft.Batch/batchAccounts/jobs/read
- Microsoft.Batch/batchAccounts/certificates/write
- Microsoft.Batch/batchAccounts/certificates/delete
- Microsoft.Batch/batchAccounts/certificates/read
- Microsoft.Batch/batchAccounts/read (bármely olvasási művelethez)
- Microsoft.Batch/batchAccounts/listKeys/action (bármely művelethez)
Az egyéni szerepkörök az Azure AD által hitelesített felhasználókhoz tartoznak, nem a Batch-fiók hitelesítő adataihoz (megosztott kulcshoz). Vegye figyelembe, hogy a Batch-fiók hitelesítő adatai teljes körű engedélyt adnak a Batch-fiókhoz. Azt is vegye figyelembe, hogy az automatikus készletet használó feladatok készletszintű engedélyeket igényelnek.
Megjegyzés
Bizonyos szerepkör-hozzárendeléseket meg kell adni a Művelet mezőben, míg másokat a DataAction mezőben. További információ: Azure erőforrás-szolgáltatói műveletek.
Íme egy példa egy egyéni szerepkör-definícióra:
{
"properties":{
"roleName":"Azure Batch Custom Job Submitter",
"type":"CustomRole",
"description":"Allows a user to submit jobs to Azure Batch but not manage pools",
"assignableScopes":[
"/subscriptions/88888888-8888-8888-8888-888888888888"
],
"permissions":[
{
"actions":[
"Microsoft.Batch/*/read",
"Microsoft.Authorization/*/read",
"Microsoft.Resources/subscriptions/resourceGroups/read",
"Microsoft.Support/*",
"Microsoft.Insights/alertRules/*"
],
"notActions":[
],
"dataActions":[
"Microsoft.Batch/batchAccounts/jobs/*",
"Microsoft.Batch/batchAccounts/jobSchedules/*"
],
"notDataActions":[
]
}
]
}
}
További információ az egyéni szerepkörök létrehozásáról: Egyéni Azure-szerepkörök.
A Azure Active Directory bérlőazonosítójának lekérése
A bérlőazonosító azonosítja azt az Azure AD-bérlőt, amely hitelesítési szolgáltatásokat nyújt az alkalmazásnak. A bérlőazonosító lekéréséhez kövesse az alábbi lépéseket:
- A Azure Portal válassza ki az Active Directoryt.
- Válassza ki a Tulajdonságok elemet.
- Másolja ki a címtár-azonosítóhoz megadott GUID-értéket. Ezt az értéket bérlőazonosítónak is nevezik.

Kódpéldák
Az ebben a szakaszban található példakódok bemutatják, hogyan hitelesíthető az Azure AD-vel integrált hitelesítéssel és szolgáltatásnévvel. A legtöbb példakód a .NET-et használja, de a fogalmak más nyelvekhez hasonlóak.
Megjegyzés
Az Azure AD hitelesítési jogkivonat egy óra elteltével lejár. Hosszú élettartamú BatchClient-objektum használatakor azt javasoljuk, hogy minden kérésnél lekérjen egy jogkivonatot az ADAL-ból, hogy mindig érvényes jogkivonattal rendelkezzen.
Ehhez a .NET-ben írjon egy metódust, amely lekéri a jogkivonatot az Azure AD-ből, és átadja azt egy BatchTokenCredentials objektumnak meghatalmazottként. A rendszer minden, a Batch szolgáltatásnak küldött kéréshez meghívja a delegáltmetódust, hogy érvényes jogkivonatot biztosítson. Az ADAL alapértelmezés szerint gyorsítótárazza a jogkivonatokat, így az új jogkivonatok csak szükség esetén lesznek lekérve az Azure AD-ből. Az Azure AD jogkivonatairól további információt a Biztonsági jogkivonatok című témakörben talál.
Példakód: Azure AD integrált hitelesítés használata a Batch .NET-tel
A Batch .NET integrált hitelesítésével történő hitelesítéshez hivatkozzon a Azure Batch .NET-csomagra és az ADAL-csomagra.
Adja meg a következő using utasításokat a kódban:
using Microsoft.Azure.Batch;
using Microsoft.Azure.Batch.Auth;
using Microsoft.IdentityModel.Clients.ActiveDirectory;
Hivatkozzon az Azure AD-végpontra a kódban, beleértve a bérlőazonosítót is. A bérlőazonosító lekéréséhez kövesse a Azure Active Directory bérlőazonosítójának lekérése című cikkben leírt lépéseket:
private const string AuthorityUri = "https://login.microsoftonline.com/<tenant-id>";
Hivatkozzon a Batch szolgáltatás erőforrás-végpontra:
private const string BatchResourceUri = "https://batch.core.windows.net/";
Hivatkozzon a Batch-fiókra:
private const string BatchAccountUrl = "https://myaccount.mylocation.batch.azure.com";
Adja meg az alkalmazás alkalmazásazonosítóját (ügyfél-azonosítóját). Az alkalmazásazonosító az alkalmazásregisztrációból érhető el a Azure Portal:
private const string ClientId = "<application-id>";
Másolja a megadott átirányítási URI-t is, ha az alkalmazást natív alkalmazásként regisztrálta. A kódban megadott átirányítási URI-nak meg kell egyeznie az alkalmazás regisztrálásakor megadott átirányítási URI-val:
private const string RedirectUri = "http://mybatchdatasample";
Írjon visszahívási módszert a hitelesítési jogkivonat Azure AD-ből való beszerzéséhez. Az itt látható GetAuthenticationTokenAsync visszahívási metódus meghívja az ADAL-t az alkalmazással kommunikáló felhasználó hitelesítéséhez. Az ADAL által biztosított AcquireTokenAsync metódus kéri a felhasználótól a hitelesítő adatait, és az alkalmazás akkor folytatja a műveletet, ha a felhasználó megadta őket (kivéve, ha már gyorsítótárazza a hitelesítő adatokat):
public static async Task<string> GetAuthenticationTokenAsync()
{
var authContext = new AuthenticationContext(AuthorityUri);
// Acquire the authentication token from Azure AD.
var authResult = await authContext.AcquireTokenAsync(BatchResourceUri,
ClientId,
new Uri(RedirectUri),
new PlatformParameters(PromptBehavior.Auto));
return authResult.AccessToken;
}
Hozzon létre egy BatchTokenCredentials objektumot, amely a delegáltat veszi paraméterként. Ezekkel a hitelesítő adatokkal nyisson meg egy BatchClient-objektumot . Ezt a BatchClient-objektumot a Batch szolgáltatáson végzett további műveletekhez használhatja:
public static void PerformBatchOperations()
{
Func<Task<string>> tokenProvider = () => GetAuthenticationTokenAsync();
using (var client = BatchClient.Open(new BatchTokenCredentials(BatchAccountUrl, tokenProvider)))
{
client.JobOperations.ListJobs();
}
}
Példakód: Azure AD-szolgáltatásnév használata Batch .NET-tel
A Batch .NET szolgáltatásnevével való hitelesítéshez hivatkozzon a Azure Batch .NET-csomagra és az ADAL-csomagra.
Adja meg a következő using utasításokat a kódban:
using Microsoft.Azure.Batch;
using Microsoft.Azure.Batch.Auth;
using Microsoft.IdentityModel.Clients.ActiveDirectory;
Hivatkozzon az Azure AD-végpontra a kódban, beleértve a bérlőazonosítót is. Szolgáltatásnév használatakor meg kell adnia egy bérlőspecifikus végpontot. A bérlőazonosító lekéréséhez kövesse a Azure Active Directory bérlőazonosítójának lekérése című cikkben leírt lépéseket:
private const string AuthorityUri = "https://login.microsoftonline.com/<tenant-id>";
Hivatkozzon a Batch szolgáltatás erőforrás-végpontra:
private const string BatchResourceUri = "https://batch.core.windows.net/";
Hivatkozzon a Batch-fiókra:
private const string BatchAccountUrl = "https://myaccount.mylocation.batch.azure.com";
Adja meg az alkalmazás alkalmazásazonosítóját (ügyfél-azonosítóját). Az alkalmazásazonosító az alkalmazásregisztrációból érhető el a Azure Portal:
private const string ClientId = "<application-id>";
Adja meg a Azure Portal kimásolt titkos kulcsot:
private const string ClientKey = "<secret-key>";
Írjon visszahívási módszert a hitelesítési jogkivonat Azure AD-ből való beszerzéséhez. Az itt bemutatott GetAuthenticationTokenAsync visszahívási metódus meghívja az ADAL-t felügyelet nélküli hitelesítésre:
public static async Task<string> GetAuthenticationTokenAsync()
{
AuthenticationContext authContext = new AuthenticationContext(AuthorityUri);
AuthenticationResult authResult = await authContext.AcquireTokenAsync(BatchResourceUri, new ClientCredential(ClientId, ClientKey));
return authResult.AccessToken;
}
Hozzon létre egy BatchTokenCredentials objektumot, amely a delegáltat veszi paraméterként. Ezekkel a hitelesítő adatokkal nyisson meg egy BatchClient-objektumot . Ezután használja ezt a BatchClient-objektumot a Batch szolgáltatáson végzett további műveletekhez:
public static void PerformBatchOperations()
{
Func<Task<string>> tokenProvider = () => GetAuthenticationTokenAsync();
using (var client = BatchClient.Open(new BatchTokenCredentials(BatchAccountUrl, tokenProvider)))
{
client.JobOperations.ListJobs();
}
}
Példakód: Azure AD-szolgáltatásnév használata a Batch Pythonnal
Ha a Batch Python szolgáltatásnevével szeretne hitelesítést végezni, telepítse és hivatkozzon az azure-batch és az azure gyakori moduljaira.
from azure.batch import BatchServiceClient
from azure.common.credentials import ServicePrincipalCredentials
Szolgáltatásnév használatakor meg kell adnia a bérlőazonosítót. A bérlőazonosító lekéréséhez kövesse a Azure Active Directory bérlőazonosítójának lekérése című cikkben leírt lépéseket:
TENANT_ID = "<tenant-id>"
Hivatkozzon a Batch szolgáltatás erőforrás-végpontra:
RESOURCE = "https://batch.core.windows.net/"
Hivatkozzon a Batch-fiókra:
BATCH_ACCOUNT_URL = "https://myaccount.mylocation.batch.azure.com"
Adja meg az alkalmazás alkalmazásazonosítóját (ügyfél-azonosítóját). Az alkalmazásazonosító az alkalmazásregisztrációból érhető el a Azure Portal:
CLIENT_ID = "<application-id>"
Adja meg a Azure Portal kimásolt titkos kulcsot:
SECRET = "<secret-key>"
ServicePrincipalCredentials objektum létrehozása:
credentials = ServicePrincipalCredentials(
client_id=CLIENT_ID,
secret=SECRET,
tenant=TENANT_ID,
resource=RESOURCE
)
A szolgáltatásnév hitelesítő adataival nyisson meg egy BatchServiceClient objektumot. Ezután használja ezt a BatchServiceClient objektumot a Batch szolgáltatáson végzett további műveletekhez.
batch_client = BatchServiceClient(
credentials,
batch_url=BATCH_ACCOUNT_URL
)
Következő lépések
- Tekintse át a Azure Active Directory dokumentációját. Az ADAL használatát bemutató részletes példák az Azure Code Samples kódtárában érhetők el.
- Ismerje meg a Azure Active Directory alkalmazás- és szolgáltatásnév-objektumait, valamint az erőforrásokhoz hozzáférő Azure AD-alkalmazás és szolgáltatásnév létrehozását.
- Megtudhatja, hogyan hitelesítheti a Batch Management-megoldásokat az Active Directoryval.
- Az Azure AD-jogkivonattal hitelesített Batch-ügyfél létrehozására vonatkozó Python-példaért tekintse meg a Deploying Azure Batch Custom Image with a Python Script sample (Egyéni rendszerkép üzembe helyezése Python-példaszkripttel) című témakört.