Kommentar
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Azure Batch stöder autentisering med Microsoft Entra ID, Microsofts molnbaserade katalog- och identitetshanteringstjänst för flera klientorganisationer. Azure använder Microsoft Entra-ID för att autentisera sina egna kunder, tjänstadministratörer och organisationsanvändare.
Det rekommenderade sättet att autentisera Azure Batch appar är att använda klientbiblioteket Azure Identity. som tillhandahåller tokenbaserade autentiseringsklasser (till exempel DefaultAzureCredential, ManagedIdentityCredential, ClientSecretCredential och InteractiveBrowserCredential) som fungerar konsekvent oavsett om appen körs lokalt, på Azure eller lokalt. En översikt över rekommenderade autentiseringsstrategier finns i:
- Autentisera .NET appar för att Azure tjänster med hjälp av Azure Identity-biblioteket
- Autentisera Python appar för att Azure tjänster med hjälp av Azure Identity-biblioteket
I den här artikeln beskrivs två vanliga scenarier för autentisering till Azure Batch med Microsoft Entra ID:
Integrerad (interaktiv) autentisering autentiserar en användare som interagerar med ett program. Använd en autentiseringsuppgift, till exempel
InteractiveBrowserCredentialellerDefaultAzureCredential(som kan länkas via inloggningar för utvecklarverktyg som Azure CLI, Visual Studio och Visual Studio Code).Autentisering med tjänsthuvudnamn eller hanterad identitet autentiserar ett program som körs utan användare. Använd en autentiseringsuppgift, till exempel
ManagedIdentityCredentialför appar som finns på Azure, ellerClientSecretCredential/ClientCertificateCredentialför appar som autentiserar med ett registrerat programs hemlighet eller certifikat.
Mer information om Microsoft Entra-ID finns i Microsoft Entra-dokumentationen.
Samla in slutpunkter för autentisering
Om du vill autentisera Batch-program med Microsoft Entra-ID måste du inkludera Microsoft Entra-slutpunkten och Batch-resursslutpunkten i koden.
Microsoft Entra-slutpunkt
Microsoft Entras basslutpunkt är https://login.microsoftonline.com/. Om du vill autentisera med Microsoft Entra-ID använder du den här slutpunkten med det klient-ID som identifierar Microsoft Entra-klientorganisationen som ska användas för autentisering:
https://login.microsoftonline.com/<tenant-id>
Du kan hämta ditt klient-ID från huvudsidan för Microsoft Entra-ID i Azure Portal. Du kan också välja Egenskaper i det vänstra navigeringsfältet och se klient-ID på sidan Egenskaper.
Viktigt!
Den klientspecifika Microsoft Entra-slutpunkten krävs när du autentiserar med hjälp av ett tjänsthuvudnamn.
När du autentiserar med hjälp av integrerad autentisering rekommenderas den klientspecifika slutpunkten, men det är valfritt. Du kan också använda Microsoft Entra Common Endpoint för att tillhandahålla ett generiskt gränssnitt för insamling av referenser när en specifik klientorganisation inte anges. Den gemensamma slutpunkten är
https://login.microsoftonline.com/common.
Mer information om Microsoft Entra-slutpunkter finns i Autentisering kontra auktorisering.
Batch-resursslutpunkt
Använd Batch-resursslutpunkten https://batch.core.windows.net/ för att hämta en token för autentisering av begäranden till Batch-tjänsten.
Registrera din applikation med en klient
Det första steget i att använda Microsoft Entra-autentisering är att registrera ditt program i en Microsoft Entra-klientorganisation. När appen har registrerats kan du använda Azure Identity-bibliotekets autentiseringsuppgifter i koden för att hämta Microsoft Entra-token för Batch-tjänsten. Registrering av ditt program krävs för konfidentiella klientflöden (tjänstens huvudnamn) och för alla interaktiva flöden som behöver en klientspecifik appregistrering.
Tip
Om koden använder DefaultAzureCredential och loggar in via ett utvecklarverktyg (Azure CLI, Azure PowerShell, Visual Studio eller Visual Studio Code) eller en hanterad identitet behöver du inte registrera ett separat program – autentiseringsuppgifterna använder identiteten som redan har konfigurerats i den miljön.
När du registrerar ditt program anger du information om ditt program till Microsoft Entra-ID. Microsoft Entra-ID tillhandahåller sedan ett program-ID, även kallat ett klient-ID, som du använder för att associera ditt program med Microsoft Entra-ID vid körning. Mer information om program-ID finns i Program- och tjänsthuvudnamnsobjekt i Microsoft Entra-ID.
Om du vill registrera ditt Batch-program följer du stegen i Registrera ett program.
När du har registrerat ditt program kan du se program-ID:t (klient) på programmets översiktssida.
Konfigurera integrerad autentisering
Om du vill autentisera med integrerad autentisering måste du ge programmet behörighet att ansluta till Batch-tjänst-API:et. Det här steget gör att ditt program kan använda Microsoft Entra-ID för att autentisera anrop till Batch-tjänst-API:et.
När du har registrerat ditt program följer du dessa steg för att ge programmet åtkomst till Batch-tjänsten:
- I Azure Portal söker du efter och väljer appregistreringar.
- På sidan Appregistreringar väljer du ditt program.
- På programmets sida väljer du API-behörigheter i det vänstra navigeringsfältet.
- På sidan API-behörigheter väljer du Lägg till en behörighet.
- På sidan Api-behörigheter för begäran väljer du Azure Batch.
- På sidan Azure Batch , under Välj behörigheter, markerar du kryssrutan bredvid user_impersonation och väljer sedan Lägg till behörigheter.
Sidan API-behörigheter visar nu att ditt Microsoft Entra-program har åtkomst till både Microsoft Graph och Azure Batch. Behörigheter beviljas automatiskt till Microsoft Graph när du registrerar en app med Microsoft Entra-ID.
Konfigurera ett huvudnamn för tjänsten
Om du vill autentisera ett program som körs obevakat använder du tjänstens huvudnamn. När ditt program autentiseras med hjälp av ett huvudnamn för tjänsten skickar det både program-ID:t och en hemlig nyckel till Microsoft Entra-ID.
När du har registrerat ditt program följer du de här stegen i Azure Portal för att konfigurera ett huvudnamn för tjänsten:
- Begär en hemlighet för ditt program.
- Tilldela rollbaserad åtkomstkontroll i Azure (Azure RBAC) till ditt program.
Begär en hemlighet för ditt program
Följ de här stegen för att skapa och kopiera den hemliga nyckel som ska användas i koden:
- I Azure Portal söker du efter och väljer appregistreringar.
- På sidan Appregistreringar väljer du ditt program.
- På programmets sida väljer du Certifikat och hemligheter i det vänstra navigeringsfältet.
- På sidan Certifikat och hemligheter väljer du Ny klienthemlighet.
- På sidan Lägg till en klienthemlighet anger du en beskrivning och väljer en förfalloperiod för hemligheten.
- Välj Lägg till för att skapa hemligheten och visa den på sidan Certifikat och hemligheter .
- Kopiera det hemliga värdet till en säker plats eftersom du inte kommer åt det igen när du har lämnat den här sidan. Om du förlorar åtkomsten till din nyckel kan du generera en ny.
Tilldela Azure RBAC till ditt program
Följ de här stegen för att tilldela programmet en Azure RBAC-roll. Mer information finns i Rollbaserad åtkomstkontroll för Azure Batch-tjänsten.
- I Azure Portal navigerar du till det Batch-konto som programmet använder.
- Välj Åtkomstkontroll (IAM) i det vänstra navigeringsfältet.
- På sidan Åtkomstkontroll (IAM) väljer du Lägg till rolltilldelning.
- På sidan Lägg till rolltilldelning väljer du fliken Roll och väljer sedan en av de inbyggda RBAC-rollerna i Azure Batch som roll för din app.
- Välj fliken Medlemmar och välj Välj medlemmar under Medlemmar.
- På skärmen Välj medlemmar söker du efter och väljer ditt program och väljer sedan Välj.
- Välj Granska + tilldela på sidan Lägg till rolltilldelning .
Ditt program bör nu visas på fliken Rolltilldelningar på sidan Åtkomstkontroll för Batch-kontot (IAM).
Kodexempel
Kodexemplen i det här avsnittet visar hur du autentiserar till Azure Batch med Microsoft Entra ID med hjälp av autentiseringsuppgifter från Azure identitetsbiblioteket. Exemplen använder .NET och Python, men samma mönster gäller för andra Azure SDKs språk.
Kommentar
En Microsoft Entra-autentiseringstoken upphör att gälla efter en timme. När du använder ett långlivat BatchClient-objekt cachelagrar och uppdaterar Azure IdentityTokenCredential som du anger token automatiskt, så att en ny token hämtas från Microsoft Entra ID bara när det behövs. Mer information om token i Microsoft Entra-ID finns i Säkerhetstoken.
Tip
I de flesta scenarier använder du DefaultAzureCredential. Den provar automatiskt flera autentiseringsmetoder (hanterad identitet, miljövariabler, inloggningar med utvecklarverktyg och så vidare), så samma kod fungerar oavsett om din app körs lokalt under utveckling, på Azure eller lokalt. Mer information om hur du väljer rätt autentiseringsuppgifter finns i Authenticate .NET apps och Authenticate Python apps.
Kodexempel: Autentisera till Azure Batch från .NET
I det här exemplet används Azure. Compute.Batch med Azure. Identity-bibliotek.
Installera nuget-paketen
Azure.Compute.BatchochAzure.Identity.Deklarera följande
usinginstruktioner i koden:using Azure.Compute.Batch; using Azure.Core; using Azure.Identity;Referera till batchkontots slutpunkt:
private const string BatchAccountUrl = "https://<myaccount>.<mylocation>.batch.azure.com";Skapa en autentiseringsuppgift och skicka den till
BatchClientkonstruktorn. Använd klienten för efterföljande åtgärder mot Batch-tjänsten.Recommended:
DefaultAzureCredential– fungerar lokalt med inloggningar med utvecklarverktyg (Azure CLI, Visual Studio, Visual Studio Code) och använder hanterad identitet automatiskt när appen körs på Azure:TokenCredential credential = new DefaultAzureCredential(); BatchClient client = new BatchClient(new Uri(BatchAccountUrl), credential); await foreach (BatchJob job in client.GetJobsAsync()) { Console.WriteLine(job.Id); }Interaktiv (integrerad) inloggning – uppmanar en användare att logga in via systemwebbläsaren. Använd detta när din app måste autentisera en specifik användare interaktivt:
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);Tjänstens huvudnamn (klienthemlighet) – används för obevakade appar som autentiserar med en appregistreringshemlighet:
TokenCredential credential = new ClientSecretCredential( tenantId: "<tenant-id>", clientId: "<application-id>", clientSecret: "<client-secret>"); BatchClient client = new BatchClient(new Uri(BatchAccountUrl), credential);Hanterad identitet – används när appen körs på en Azure resurs (till exempel en virtuell dator, App Service eller Container App) som har en systemtilldelad eller användartilldelad hanterad identitet:
// 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);
Kodexempel: Autentisera till Azure Batch från Python
I det här exemplet används azure-batch-klienten med autentiseringsuppgifter från azure-identity-biblioteket . Den äldre azure.common.credentials.ServicePrincipalCredentials klassen är inaktuell. Använd azure-identity autentiseringsuppgifter i stället.
Installera de paket som krävs:
pip install azure-batch azure-identityAnge slutpunkten för Batch-kontot och resursomfånget för Batch:
BATCH_ACCOUNT_URL = "https://<myaccount>.<mylocation>.batch.azure.com" BATCH_SCOPE = "https://batch.core.windows.net/.default"Skapa en autentiseringsuppgift och skicka den till
BatchServiceClient.Recommended:
DefaultAzureCredential– fungerar lokalt med inloggningar för utvecklarverktyg och använder hanterad identitet automatiskt när den körs på Azure:from azure.batch import BatchServiceClient from azure.identity import DefaultAzureCredential credential = DefaultAzureCredential() batch_client = BatchServiceClient( credentials=credential, batch_url=BATCH_ACCOUNT_URL, )Interaktiv (integrerad) inloggning – uppmanar en användare att logga in via systemwebbläsaren:
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, )Tjänstens huvudnamn (klienthemlighet) – används för obevakade appar:
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, )Hanterad identitet – används när appen körs på en Azure resurs med en hanterad identitet:
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, )
Nästa steg
- Autentisera Batch Management-lösningar med služba Active Directory
- Autentisera .NET appar för att Azure tjänster med hjälp av Azure Identity-biblioteket
- Autentisera Python appar för att Azure tjänster med hjälp av Azure Identity-biblioteket
- Azure Identity-klientbibliotek för .NET
- Azure Identity-klientbibliotek för Python
- Översikt över program- och tjänstobjekt i Microsoft Entra ID
- Så här skapar du ett Microsoft Entra-program och ett tjänsthuvudnamn som kan få åtkomst till resurser