Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Azure Batch prend en charge l’authentification avec Microsoft Entra ID, le service de gestion des identités et des annuaires multilocataires de Microsoft. Azure utilise l’ID Microsoft Entra pour authentifier ses propres clients, administrateurs de service et utilisateurs organisationnels.
La méthode recommandée pour authentifier les applications Azure Batch consiste à utiliser la bibliothèque cliente Azure Identity, qui fournit des classes d’authentification basées sur des jetons (telles que DefaultAzureCredential, ManagedIdentityCredential, ClientSecretCredential et InteractiveBrowserCredential) qui fonctionnent de manière cohérente si votre application s’exécute localement, sur Azure ou localement. Pour obtenir une vue d’ensemble des stratégies d’authentification recommandées, consultez :
- Authenticate .NET applications pour Azure services à l’aide de la bibliothèque Azure Identity
- Authentifier des applications Python auprès des services Azure à l’aide de la bibliothèque Azure Identity
Cet article décrit deux scénarios courants d’authentification à Azure Batch avec Microsoft Entra ID :
L’authentification intégrée (interactive) authentifie un utilisateur qui interagit avec une application. Utilisez des informations d’identification telles que
InteractiveBrowserCredentialouDefaultAzureCredential(qui peuvent être chaînables via des connexions aux outils de développement comme Azure CLI, Visual Studio et Visual Studio Code).L’authentification par principal du service ou par identité managée permet d’authentifier une application sans intervention utilisateur. Utilisez des informations d'identification telles que
ManagedIdentityCredentialpour les applications hébergées sur Azure, ouClientSecretCredential/ClientCertificateCredentialpour les applications qui s'authentifient avec le secret ou le certificat d'une application inscrite.
Pour plus d’informations sur l’ID Microsoft Entra, consultez la documentation Microsoft Entra.
Collecter des points de terminaison pour l’authentification
Pour authentifier les applications Batch avec l’ID Microsoft Entra, vous devez inclure le point de terminaison Microsoft Entra et le point de terminaison de ressource Batch dans votre code.
Point de terminaison Microsoft Entra
Le point de terminaison d’autorité de base de Microsoft Entra est https://login.microsoftonline.com/. Pour vous authentifier avec Microsoft Entra ID, utilisez ce point de terminaison avec l’ID de locataire qui identifie le locataire Microsoft Entra à utiliser pour l’authentification :
https://login.microsoftonline.com/<tenant-id>
Vous pouvez obtenir votre ID de locataire à partir de la page principale microsoft Entra ID dans le portail Azure. Vous pouvez également sélectionner Propriétés dans le volet de navigation gauche et voir l’ID de locataire dans la page Propriétés.
Important
Le point de terminaison Microsoft Entra propre au locataire est requis lors d’une authentification à l’aide d’un principal de service.
Quand vous vous authentifiez avec l’authentification intégrée, le point de terminaison propre au locataire est recommandé, mais facultatif. Vous pouvez également utiliser le point de terminaison commun de Microsoft Entra pour fournir une interface générique de saisie des informations d’identification lorsqu’un tenant spécifique n’est pas spécifié. Le point de terminaison commun est
https://login.microsoftonline.com/common.
Pour plus d’informations sur les points de terminaison Microsoft Entra, consultez Authentification ou autorisation.
Point de terminaison de ressource Batch
Utilisez le point de terminaison de ressource Batch https://batch.core.windows.net/ pour obtenir un jeton d’authentification des demandes sur le service Batch.
Enregistrer votre application auprès d’un locataire
La première étape de l’utilisation de l’authentification Microsoft Entra consiste à inscrire votre application dans un locataire Microsoft Entra. Une fois votre application enregistrée, vous pouvez utiliser dans votre code les informations d’identification de la bibliothèque Azure Identity pour obtenir des jetons Microsoft Entra pour le service Batch. L’inscription de votre application est requise pour les flux de client confidentiel (principal de service) et pour tout flux interactif nécessitant une inscription d’application spécifique au locataire.
Tip
Si votre code utilise DefaultAzureCredential et se connecte via un outil de développement (Azure CLI, Azure PowerShell, Visual Studio ou Visual Studio Code) ou une identité managée, vous n'avez pas besoin d'inscrire une application distincte . Les informations d'identification utilisent l'identité déjà configurée dans cet environnement.
Lorsque vous inscrivez votre application, vous fournissez des informations sur votre application à Microsoft Entra ID. Microsoft Entra ID fournit ensuite un ID d’application , également appelé ID client, que vous utilisez pour associer votre application à l’ID Microsoft Entra au moment de l’exécution. Pour plus d’informations sur l’ID d’application, consultez Les objets application et principal de service dans Microsoft Entra ID.
Pour inscrire votre application Batch, suivez les étapes décrites dans Inscrire une application.
Après avoir inscrit votre application, vous pouvez voir l’ID d’application (client) dans la page Vue d’ensemble de l’application.
Configurer l’authentification intégrée
Pour vous authentifier avec l’authentification intégrée, vous devez autoriser votre application à se connecter à l’API du service Batch. Cette étape permet à votre application d’utiliser l’ID Microsoft Entra pour authentifier les appels à l’API de service Batch.
Après avoir inscrit votre application, suivez ces étapes pour accorder à l’application l’accès au service Batch :
- Dans le portail Azure, recherchez et sélectionnez inscriptions d’applications.
- Dans la page Inscriptions d’applications, sélectionnez votre application.
- Dans la page de votre application, sélectionnez Autorisations d’API dans le volet de navigation gauche.
- Dans la page API autorisées, sélectionnez Ajouter une autorisation.
- Dans la page Demander des autorisations d’API, sélectionnez Azure Batch.
- Dans la page Azure Batch, sous Sélectionner des autorisations, cochez la case à côté de user_impersonation, puis sélectionnez Ajouter des autorisations.
La page autorisations de l’API indique maintenant que votre application Microsoft Entra a accès à microsoft Graph et Azure Batch. Les autorisations sont accordées automatiquement à Microsoft Graph lorsque vous inscrivez une application avec l’ID Microsoft Entra.
Configurer un principal de service
Pour authentifier une application qui s’exécute sans assistance, vous utilisez un principal de service. Lorsque votre application s’authentifie à l’aide d’un principal de service, elle envoie à la fois l’ID d’application et une clé secrète à l’ID Microsoft Entra.
Après avoir inscrit votre application, suivez ces étapes dans le portail Azure pour configurer un principal de service :
- Demandez un secret pour votre application.
- Attribuer un contrôle d’accès en fonction du rôle Azure (Azure RBAC) à votre application
Demander un secret pour votre application
Suivez ces étapes pour créer et copier la clé secrète à utiliser dans votre code :
- Dans le portail Azure, recherchez et sélectionnez inscriptions d’applications.
- Dans la page Inscriptions d’applications, sélectionnez votre application.
- Dans la page de votre application, sélectionnez Certificats et secrets dans le volet de navigation gauche.
- Dans la page Certificats et secrets, sélectionnez Nouveau secret client.
- Dans la page Ajouter un secret client, entrez une description et sélectionnez une période d’expiration pour le secret.
- Sélectionnez Ajouter pour créer le secret et l’afficher dans la page Certificats et secrets.
- Copiez la valeur du secret en lieu sûr, car vous n’y avez plus accès quand vous quittez cette page. Si vous perdez l’accès à votre clé, vous pouvez en générer une nouvelle.
Attribuer Azure RBAC à votre application
Suivez ces étapes pour attribuer un rôle RBAC Azure à votre application. Pour plus d’informations, consultez Contrôle d’accès en fonction du rôle pour le service Azure Batch.
- Dans le portail Azure, accédez au compte Batch utilisé par votre application.
- Dans le menu de navigation de gauche, sélectionnez Contrôle d’accès (IAM) .
- Sur la page Contrôle d’accès (IAM), sélectionnez Ajout de l’attribution de rôle.
- Dans la page Ajouter une attribution de rôle, sélectionnez l’onglet Rôle, puis sélectionnez l’un des rôles RBAC intégrés Azure Batch comme rôle pour votre application.
- Sélectionnez l’onglet Membres, puis Sélectionner des membres sous Membres.
- Dans l’écran Sélectionner des membres, recherchez et sélectionnez votre application, puis sélectionnez Sélectionner.
- Sélectionnez Vérifier + attribuer dans la page Ajouter une attribution de rôle.
Votre application doit maintenant s’afficher sous l’onglet Attributions de rôle de la page Contrôle d’accès (IAM) du compte Batch.
Exemples de code
Les exemples de code de cette section montrent comment s’authentifier auprès de Azure Batch avec Microsoft Entra ID à l’aide d’informations d’identification à partir de la bibliothèque d’identités Azure. Les exemples utilisent .NET et Python, mais les mêmes modèles s’appliquent à d’autres langages Kit de développement logiciel (SDK) Azure.
Remarque
Un jeton d’authentification Microsoft Entra expire après une heure. Lorsque vous utilisez un objet BatchClient à longue durée de vie, l’Azure IdentityTokenCredential que vous fournissez met le jeton en cache de manière transparente et l’actualise, de sorte qu’un nouveau jeton n’est obtenu auprès de Microsoft Entra ID que lorsque cela est nécessaire. Pour plus d’informations sur les jetons dans Microsoft Entra ID, consultez jetons de sécurité.
Tip
Pour la plupart des scénarios, utilisez DefaultAzureCredential. Il tente automatiquement plusieurs méthodes d’authentification (identité managée, variables d’environnement, connexions aux outils de développement, et ainsi de suite), de sorte que le même code fonctionne si votre application s’exécute localement pendant le développement, sur Azure ou localement. Consultez Apps .NET Authenticate et Authenticate Python applications pour obtenir des conseils sur le choix des informations d’identification appropriées.
Exemple de code : s’authentifier auprès de Azure Batch à partir de .NET
Cet exemple utilise Azure.Compute.Batch avec la bibliothèque Azure.Identity.
Installez les packages NuGet
Azure.Compute.BatchetAzure.Identity.Déclarez les instructions
usingsuivantes dans votre code :using Azure.Compute.Batch; using Azure.Core; using Azure.Identity;Référencez votre point de terminaison de compte Batch :
private const string BatchAccountUrl = "https://<myaccount>.<mylocation>.batch.azure.com";Créez des informations d’identification et transmettez-la au constructeur
BatchClient. Utilisez le client pour les opérations suivantes sur le service Batch.Recommandé :
DefaultAzureCredential— fonctionne localement avec les connexions via les outils de développement (Azure CLI, Visual Studio, Visual Studio Code) et utilise automatiquement l’identité gérée lorsque l’application s’exécute sur Azure :TokenCredential credential = new DefaultAzureCredential(); BatchClient client = new BatchClient(new Uri(BatchAccountUrl), credential); await foreach (BatchJob job in client.GetJobsAsync()) { Console.WriteLine(job.Id); }Connexion interactive (intégrée) : invite un utilisateur à se connecter via le navigateur système. Utilisez cette option lorsque votre application doit authentifier un utilisateur spécifique de manière interactive :
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);Principal de service (secret client) — à utiliser pour les applications non supervisées qui s’authentifient à l’aide d’un secret associé à l’inscription de l’application :
TokenCredential credential = new ClientSecretCredential( tenantId: "<tenant-id>", clientId: "<application-id>", clientSecret: "<client-secret>"); BatchClient client = new BatchClient(new Uri(BatchAccountUrl), credential);Identité managée : utilisez-la lorsque votre application s’exécute sur une ressource Azure (par exemple, une machine virtuelle, App Service ou une application conteneur) qui a une identité managée affectée par le système ou affectée par l’utilisateur :
// 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);
Exemple de code : s’authentifier auprès de Azure Batch à partir de Python
Cet exemple utilise le client azure-batch avec les informations d’identification de la bibliothèque azure-identity . La classe héritée azure.common.credentials.ServicePrincipalCredentials est obsolète ; utilisez plutôt les informations d’identification azure-identity.
Installez les packages nécessaires :
pip install azure-batch azure-identityIndiquez le point de terminaison de votre compte Batch et la portée des ressources Batch :
BATCH_ACCOUNT_URL = "https://<myaccount>.<mylocation>.batch.azure.com" BATCH_SCOPE = "https://batch.core.windows.net/.default"Créez un identifiant et transmettez-le à
BatchServiceClient.Recommandé :
DefaultAzureCredential— fonctionne localement avec les connexions aux outils de développement et utilise automatiquement l’identité gérée lors de l’exécution sur Azure :from azure.batch import BatchServiceClient from azure.identity import DefaultAzureCredential credential = DefaultAzureCredential() batch_client = BatchServiceClient( credentials=credential, batch_url=BATCH_ACCOUNT_URL, )Connexion interactive (intégrée) : invite un utilisateur à se connecter via le navigateur système :
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, )Principal de service (secret client) — à utiliser pour les applications sans supervision :
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, )Identité managée : utilisez quand votre application s’exécute sur une ressource Azure avec une identité managée :
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, )
Étapes suivantes
- Authentification de solutions de gestion Batch avec Active Directory
- Authenticate .NET applications pour Azure services à l’aide de la bibliothèque Azure Identity
- Authentifier des applications Python auprès des services Azure à l’aide de la bibliothèque Azure Identity
- Bibliothèque cliente Azure Identity pour .NET
- Bibliothèque cliente Azure Identity pour Python
- Objets d’application et de principal du service dans Microsoft Entra ID
- Comment créer une application Microsoft Entra et un principal de service pouvant accéder aux ressources