Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Azure Batch ondersteunt verificatie met Microsoft Entra ID, de multitenant cloudgebaseerde directory- en identiteitsbeheerservice van Microsoft. Azure gebruikt Microsoft Entra ID om zijn eigen klanten, servicebeheerders en organisatiegebruikers te verifiëren.
De aanbevolen manier om Azure Batch apps te verifiëren, is het gebruik van de Azure Identity-clientbibliotheek, biedt verificatieklassen op basis van tokens (zoals DefaultAzureCredential, ManagedIdentityCredential, ClientSecretCredential en InteractiveBrowserCredential) die consistent werken, ongeacht of uw app lokaal, op Azure of on-premises wordt uitgevoerd. Zie voor een overzicht van aanbevolen verificatiestrategieën:
- Verifieer .NET-apps bij Azure-services met behulp van de Azure Identity-bibliotheek
- Authenticeer Python-apps bij Azure-services met behulp van de Azure Identity-bibliotheek
In dit artikel worden twee veelvoorkomende scenario's beschreven voor verificatie bij Azure Batch met Microsoft Entra ID:
Geïntegreerde (interactieve) verificatie verifieert een gebruiker die interactie heeft met een toepassing. Gebruik een referentie zoals
InteractiveBrowserCredentialofDefaultAzureCredential(die kan worden gekoppeld via aanmeldingen voor ontwikkelaarshulpprogramma's, zoals Azure CLI, Visual Studio en Visual Studio Code).Authenticatie met een service-principal of beheerde identiteit authenticeert een toepassing zonder gebruikersinteractie. Gebruik een referentie zoals
ManagedIdentityCredentialvoor apps die worden gehost op Azure ofClientSecretCredential/ClientCertificateCredentialvoor apps die worden geverifieerd met het geheim of certificaat van een geregistreerde toepassing.
Zie de Microsoft Entra-documentatie voor meer informatie over Microsoft Entra-id.
Eindpunten verzamelen voor verificatie
Als u Batch-toepassingen wilt verifiëren met Microsoft Entra-id, moet u het Microsoft Entra-eindpunt en het Batch-resource-eindpunt in uw code opnemen.
Microsoft Entra-eindpunt
Het basiseindpunt van Microsoft Entra-autoriteit is https://login.microsoftonline.com/. Als u wilt verifiëren met Microsoft Entra ID, gebruikt u dit eindpunt met de tenant-id die de Microsoft Entra-tenant identificeert die moet worden gebruikt voor verificatie:
https://login.microsoftonline.com/<tenant-id>
U kunt uw tenant-id ophalen op de hoofdpagina van Microsoft Entra ID in Azure Portal. U kunt ook Eigenschappen selecteren in het linkernavigatievenster en de tenant-idbekijken op de pagina Eigenschappen.
Belangrijk
Het tenantspecifieke Microsoft Entra-eindpunt is vereist wanneer u zich verifieert met behulp van een service-principal.
Wanneer u verifieert met behulp van geïntegreerde verificatie, wordt het tenantspecifieke eindpunt aanbevolen, maar optioneel. U kunt ook het algemene Microsoft Entra-eindpunt gebruiken om een algemene interface voor het verzamelen van referenties te bieden wanneer er geen specifieke tenant is opgegeven. Het algemene eindpunt is
https://login.microsoftonline.com/common.
Zie Verificatie versus autorisatie voor meer informatie over Microsoft Entra-eindpunten.
Batch-resource-eindpunt
Gebruik het Batch-resource-eindpunt https://batch.core.windows.net/ om een token te verkrijgen voor het verifiëren van aanvragen bij de Batch-service.
Uw applicatie registreren bij een tenant
De eerste stap bij het gebruik van Microsoft Entra-verificatie is het registreren van uw toepassing in een Microsoft Entra-tenant. Nadat uw toepassing is geregistreerd, kunt u in uw code de referenties van de Azure Identity-bibliotheek gebruiken om Microsoft Entra-tokens voor de Batch-service te verkrijgen. Het registreren van uw toepassing is vereist voor vertrouwelijke clientstromen (service-principal) en voor elke interactieve stroom die een tenantspecifieke app-registratie nodig heeft.
Tip
Als uw code gebruikmaakt van DefaultAzureCredential en zich aanmeldt via een ontwikkelhulpprogramma (Azure CLI, Azure PowerShell, Visual Studio of Visual Studio Code) of een beheerde identiteit, hoeft u geen afzonderlijke toepassing te registreren. De referentie gebruikt de identiteit die al in die omgeving is geconfigureerd.
Wanneer u uw toepassing registreert, geeft u informatie over uw toepassing op bij Microsoft Entra ID. Microsoft Entra-id biedt vervolgens een toepassings-id, ook wel een client-id genoemd, die u gebruikt om uw toepassing tijdens runtime te koppelen aan Microsoft Entra-id. Voor meer informatie over de toepassings-id, zie Toepassings- en service-principalobjecten in Microsoft Entra ID.
Volg de stappen bij Een toepassing registreren om uw Batch-toepassing te registreren.
Nadat u uw toepassing hebt geregistreerd, ziet u de toepassings-id (client) op de overzichtspagina van de toepassing.
Geïntegreerde verificatie configureren
Als u wilt verifiëren met geïntegreerde verificatie, moet u uw toepassing toestemming geven om verbinding te maken met de Batch-service-API. Met deze stap kan uw toepassing Microsoft Entra ID gebruiken voor het verifiëren van aanroepen naar de Batch-service-API.
Nadat u uw toepassing hebt geregistreerd, volgt u deze stappen om de toepassing toegang te verlenen tot de Batch-service:
- Zoek en selecteer app-registraties in Azure Portal.
- Selecteer uw toepassing op de pagina App-registraties.
- Selecteer API-machtigingen in de linkernavigatiebalk op de pagina van uw toepassing.
- Selecteer Een machtiging toevoegen op de pagina API-machtigingen.
- Selecteer Azure Batch op de pagina Api-machtigingen aanvragen.
- Op de Azure Batch pagina, onder Machtigingen selecteren, selecteer het selectievakje naast user_impersonation en selecteer vervolgens Machtigingen toevoegen.
Op de pagina API-machtigingen ziet u nu dat uw Microsoft Entra-toepassing toegang heeft tot Zowel Microsoft Graph als Azure Batch. Machtigingen worden automatisch aan Microsoft Graph verleend wanneer u een app registreert bij Microsoft Entra-id.
Een service-principal configureren
Als u een toepassing wilt verifiëren die zonder toezicht wordt uitgevoerd, gebruikt u een service-principal. Wanneer uw toepassing wordt geverifieerd met behulp van een service-principal, worden zowel de toepassings-id als een geheime sleutel naar Microsoft Entra-id verzonden.
Nadat u uw toepassing hebt geregistreerd, volgt u deze stappen in Azure Portal om een service-principal te configureren:
- Vraag een geheim aan voor uw toepassing.
- Wijs op rollen gebaseerd toegangsbeheer van Azure (Azure RBAC) toe aan uw toepassing.
Een geheim aanvragen voor uw toepassing
Volg deze stappen om de geheime sleutel te maken en te kopiëren die u in uw code wilt gebruiken:
- Zoek en selecteer app-registraties in Azure Portal.
- Selecteer uw toepassing op de pagina App-registraties.
- Selecteer certificaten en geheimen in de linkernavigatiebalk op de pagina van uw toepassing.
- Selecteer Nieuw clientgeheim op de pagina Certificaten en geheimen.
- Op de pagina Een client-id toevoegen voert u een beschrijving in en selecteert u een verloopperiode voor het id.
- Selecteer Toevoegen om het geheim te maken en weer te geven op de pagina Certificaten en geheimen .
- Kopieer de geheime waarde naar een veilige plaats, omdat u deze niet meer kunt openen nadat u deze pagina hebt verlaten. Als u geen toegang meer hebt tot uw sleutel, kunt u een nieuwe genereren.
Azure RBAC toewijzen aan uw toepassing
Volg deze stappen om een Azure RBAC-rol toe te wijzen aan uw toepassing. Zie Op rollen gebaseerd toegangsbeheer voor de Azure Batch-service voor meer informatie.
- Navigeer in Azure Portal naar het Batch-account dat uw toepassing gebruikt.
- Selecteer Toegangsbeheer (IAM) in de linkernavigatie.
- Selecteer Op de pagina Toegangsbeheer (IAM) de optie Roltoewijzing toevoegen.
- Selecteer op de pagina Roltoewijzing toevoegen het tabblad Rol en selecteer vervolgens een van de ingebouwde RBAC-rollen van Azure Batch de rol voor uw app.
- Selecteer het tabblad Leden en selecteer leden onder Leden.
- Zoek op het Leden selecteren scherm naar uw toepassing en selecteer deze, en selecteer vervolgens Selecteren.
- Selecteer Beoordelen en toewijzen op de pagina Roltoewijzing toevoegen.
Uw toepassing moet nu worden weergegeven op het tabblad Roltoewijzingen van de pagina Toegangsbeheer (IAM) van het Batch-account.
Codevoorbeelden
In de codevoorbeelden in deze sectie ziet u hoe u zich kunt verifiëren bij Azure Batch met Microsoft Entra ID met behulp van referenties uit de Azure Identiteitsbibliotheek. In de voorbeelden worden .NET en Python gebruikt, maar dezelfde patronen zijn van toepassing op andere Azure SDK talen.
Notitie
Een Microsoft Entra-verificatietoken verloopt na één uur. Wanneer u een BatchClient-object met een lange levensduur gebruikt, slaat de Azure IdentityTokenCredential die u opgeeft het token automatisch in de cache op en vernieuwt deze het, zodat alleen wanneer nodig een nieuw token wordt opgehaald bij Microsoft Entra ID. Zie Beveiligingstokens voor meer informatie over tokens in Microsoft Entra ID.
Tip
Gebruik DefaultAzureCredentialvoor de meeste scenario's . Er worden automatisch meerdere verificatiemethoden (beheerde identiteit, omgevingsvariabelen, aanmeldingen voor ontwikkelaarshulpprogramma's enzovoort) geprobeerd, zodat dezelfde code werkt of uw app lokaal wordt uitgevoerd tijdens de ontwikkeling, op Azure of on-premises. Zie Authenticate .NET apps en Authenticate Python apps voor hulp bij het kiezen van de juiste referentie.
Codevoorbeeld: Verifiëren bij Azure Batch vanuit .NET
In dit voorbeeld wordt Azure.Compute.Batch gebruikt met de bibliotheek Azure.Identity.
Installeer de nuGet-pakketten
Azure.Compute.BatchenAzure.Identity.Declareer de volgende
usinginstructies in uw code:using Azure.Compute.Batch; using Azure.Core; using Azure.Identity;Raadpleeg het eindpunt van uw Batch-account:
private const string BatchAccountUrl = "https://<myaccount>.<mylocation>.batch.azure.com";Maak een referentie en geef deze door aan de
BatchClientconstructor. Gebruik de client voor volgende bewerkingen voor de Batch-service.Aanbeommen:
DefaultAzureCredentialwerkt lokaal met aanmeldingen van hulpprogramma's voor ontwikkelaars (Azure CLI, Visual Studio, Visual Studio Code) en gebruikt automatisch beheerde identiteit wanneer de app wordt uitgevoerd op Azure:TokenCredential credential = new DefaultAzureCredential(); BatchClient client = new BatchClient(new Uri(BatchAccountUrl), credential); await foreach (BatchJob job in client.GetJobsAsync()) { Console.WriteLine(job.Id); }Interactieve (geïntegreerde) aanmelding : vraagt een gebruiker zich aan te melden via de systeembrowser. Gebruik deze optie wanneer uw app een specifieke gebruiker interactief moet verifiëren:
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);Service-principal (clientgeheim) - gebruik voor apps zonder toezicht die worden geverifieerd met een app-registratiegeheim:
TokenCredential credential = new ClientSecretCredential( tenantId: "<tenant-id>", clientId: "<application-id>", clientSecret: "<client-secret>"); BatchClient client = new BatchClient(new Uri(BatchAccountUrl), credential);Managed identity : gebruik deze optie wanneer uw app wordt uitgevoerd op een Azure resource (zoals een VM, App Service of Container App) met een door het systeem toegewezen of door de gebruiker toegewezen beheerde identiteit:
// 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);
Codevoorbeeld: Verifiëren bij Azure Batch vanuit Python
In dit voorbeeld wordt de azure-batch-client met referenties uit de azure-identity-bibliotheek gebruikt. De verouderde azure.common.credentials.ServicePrincipalCredentials klasse is afgeschaft. Gebruik azure-identity in plaats daarvan referenties.
Installeer de vereiste pakketten:
pip install azure-batch azure-identityRaadpleeg het eindpunt van uw Batch-account en het Batch-resourcebereik:
BATCH_ACCOUNT_URL = "https://<myaccount>.<mylocation>.batch.azure.com" BATCH_SCOPE = "https://batch.core.windows.net/.default"Maak aanmeldgegevens en geef deze door aan de
BatchServiceClient.Aanbeommend:
DefaultAzureCredentialwerkt lokaal met aanmeldingen van hulpprogramma's voor ontwikkelaars en gebruikt automatisch beheerde identiteit wanneer deze wordt uitgevoerd op Azure:from azure.batch import BatchServiceClient from azure.identity import DefaultAzureCredential credential = DefaultAzureCredential() batch_client = BatchServiceClient( credentials=credential, batch_url=BATCH_ACCOUNT_URL, )Interactieve (geïntegreerde) aanmelding : vraagt een gebruiker zich aan te melden via de systeembrowser:
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, )service-principal (clientsecret) — gebruiken voor toepassingen zonder toezicht:
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, )Beheerde identiteit: gebruik deze optie wanneer uw app wordt uitgevoerd op een Azure-resource met een beheerde identiteit:
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, )
Volgende stappen
- Batch Management-oplossingen verifiëren met Active Directory
- Verifieer .NET-apps bij Azure-services met behulp van de Azure Identity-bibliotheek
- Python-apps verifiëren bij Azure-services met behulp van de Azure Identity-bibliotheek
- Azure Identity-clientbibliotheek voor .NET
- Azure Identity-clientbibliotheek voor Python
- Overzicht van toepassings- en service-principalobjecten in Microsoft Entra ID
- Hoe u een Microsoft Entra-toepassing en service-principal maakt die toegang heeft tot resources