Authentifier des solutions Batch Management avec Microsoft Entra ID

Les applications qui appellent le service Azure Batch Management s’authentifient auprès de Microsoft Authentication Library (Microsoft Entra ID). Microsoft Entra ID est le service Microsoft de gestion des répertoires et des identités basé sur le cloud mutualisé. Azure lui-même utilise Microsoft Entra ID pour l’authentification de ses clients, de ses administrateurs de services fédérés et de ses utilisateurs professionnels.

La bibliothèque .NET de gestion Batch expose des types pour l’utilisation des packages d’application, des applications, des clés de compte et des comptes Batch. La bibliothèque Batch Management .NET est un client de fournisseur de ressources Azure, utilisée avec Azure Resource Manager pour gérer ces ressources programmatiquement. Microsoft Entra ID est nécessaire pour authentifier les requêtes effectuées via les clients de fournisseur de ressources Azure, dont la bibliothèque Batch Management .NET, et via Azure Resource Manager.

Dans cet article, nous allons découvrir comment utiliser Microsoft Entra ID pour l’authentification à partir d’applications qui utilisent la bibliothèque Batch Management .NET. Nous montrons comment utiliser Microsoft Entra ID pour authentifier un administrateur ou un coadministrateur d’abonnement avec l’authentification intégrée. Nous utilisons l’exemple de projet AccountManagement, disponible sur GitHub, pour parcourir la bibliothèque Batch Management .NET avec Microsoft Entra ID.

Pour en savoir plus sur l’utilisation de la bibliothèque .NET de gestion Batch et l’exemple AccountManagement, consultez Gérer les quotas et comptes Batch avec la bibliothèque cliente Batch Management pour .NET.

Inscrivez votre application avec un compte Microsoft Entra ID

Microsoft Authentication Library (MSAL) fournit une interface de programmation à Microsoft Entra ID, que vous pouvez utiliser dans vos applications. Pour appeler MSAL à partir de votre application, vous devez inscrire votre application dans un locataire Microsoft Entra. Lorsque vous inscrivez votre application, vous fournissez des informations relatives à votre application à Microsoft Entra ID, y compris un nom au sein du locataire Microsoft Entra. Microsoft Entra ID fournit ensuite un ID d’application que vous utilisez pour associer votre application à Microsoft Entra ID au moment du runtime. Pour en savoir plus sur l’ID d’application, consultez Objets application et principal de service dans Microsoft Entra ID.

Suivez les étapes de la section Ajout d’une application dans Intégration d’applications dans Microsoft Entra ID pour inscrire l’exemple d’application AccountManagement. Indiquez Application cliente native comme type d’application. L’URI conforme au standard OAuth 2.0 de l’URI de redirection est urn:ietf:wg:oauth:2.0:oob. Pour http://myaccountmanagementsamplel’URI de redirection , vous pouvez toutefois spécifier n’importe quel URI valide (tel que ), puisqu’il n’est pas nécessaire que ce soit un point de terminaison réel.

Ajout d'une application

Lorsque vous avez terminé le processus d’inscription, l’ID d’application et l’ID d’objet (principal de service) sont répertoriés pour votre application.

Processus d’inscription terminé

Accorder l’accès à l’API Azure Resource Manager à votre application

Ensuite, vous devez déléguer l’accès à votre application à l’API Azure Resource Manager. L’identificateur Microsoft Entra pour l’API Resource Manager est API Gestion des services Windows Azure.

Suivez les étapes ci-dessous dans le portail Azure :

  1. Dans le volet de navigation de gauche du portail Azure, choisissez Tous les services, cliquez sur Inscriptions des applications, puis cliquez sur Ajouter.

  2. Recherchez le nom de votre application dans la liste des inscriptions d’application :

    Rechercher le nom de votre application

  3. Affichez le panneau Paramètres. Dans la section Accès API, sélectionnez Autorisations requises.

  4. Cliquez sur Ajouter pour ajouter une autorisation requise.

  5. À l’étape 1, entrez API Gestion des services Windows Azure, sélectionnez cette API dans la liste des résultats, puis cliquez sur le bouton Sélectionner.

  6. À l’étape 2, activez la case à cocher en regard de Access Azure classic deployment model as organization users (Accéder au modèle de déploiement Azure Classic en tant qu’utilisateurs de l’organisation), puis cliquez sur le bouton Sélectionner.

  7. Cliquez sur le bouton Terminé.

Le panneau Autorisations requises indique à présent que les autorisations pour votre application sont accordées aux API Resource Manager et à MSAL. Les autorisations sont accordées par défaut à MSAL lorsque vous commencez par inscrire votre application auprès de Microsoft Entra ID.

Déléguer des autorisations à l’API Azure Resource Manager

Points de terminaison Microsoft Entra

Pour authentifier vos solutions Batch Management avec Microsoft Entra ID, vous devez inclure deux points de terminaison connus.

  • Le point de terminaison commun Microsoft Entra fournit une interface de collecte d’informations d’identification générique lorsqu’un locataire spécifique n’est pas spécifié, comme dans le cas de l’authentification intégrée :

    https://login.microsoftonline.com/common

  • Le point de terminaison Azure Resource Manager permet d’obtenir un jeton d’authentification des demandes transmises au service de gestion Batch :

    https://management.core.windows.net/

L’exemple d’application AccountManagement définit des constantes pour ces points de terminaison. Laissez ces constantes telles quelles :

// Azure Active Directory "common" endpoint.
private const string AuthorityUri = "https://login.microsoftonline.com/common";
// Azure Resource Manager endpoint
private const string ResourceUri = "https://management.core.windows.net/";

Référencer votre ID d’application

Votre application cliente utilise l’ID d’application (également appelé l’ID client) pour accéder à Microsoft Entra ID au moment du runtime. Une fois que vous avez inscrit votre application dans le portail Azure, mettez à jour votre code pour utiliser l’ID d’application fourni par Microsoft Entra ID pour votre application inscrite. Dans l’exemple d’application AccountManagement, copiez votre ID d’application à partir du portail Azure vers la constante appropriée :

// Specify the unique identifier (the "Client ID") for your application. This is required so that your
// native client application (i.e. this sample) can access the Microsoft Graph API. For information
// about registering an application in Azure Active Directory, please see "Register an application with the Microsoft identity platform" here:
// https://video2.skills-academy.com/azure/active-directory/develop/quickstart-register-app
private const string ClientId = "<application-id>";

Copiez également l’URI de redirection que vous avez spécifiée pendant l’inscription. L’URI de redirection spécifié dans votre code doit correspondre à l’URI de redirection que vous avez fourni lors de l’inscription de l’application.

// The URI to which Azure AD will redirect in response to an OAuth 2.0 request. This value is
// specified by you when you register an application with AAD (see ClientId comment). It does not
// need to be a real endpoint, but must be a valid URI (e.g. https://accountmgmtsampleapp).
private const string RedirectUri = "http://myaccountmanagementsample";

Acquérir un jeton d’authentification Microsoft Entra

Après avoir inscrit l’exemple AccountManagement auprès du locataire Microsoft Entra et mis à jour le code source de l’exemple avec vos valeurs, l’exemple est prêt pour une authentification avec Microsoft Entra ID. Lorsque vous exécutez l’exemple, MSAL tente d’acquérir un jeton d’authentification. À ce stade, vous êtes invité à renseigner vos informations d’identification Microsoft :

// Obtain an access token using the "common" AAD resource. This allows the application
// to query AAD for information that lies outside the application's tenant (such as for
// querying subscription information in your Azure account).
AuthenticationContext authContext = new AuthenticationContext(AuthorityUri);
AuthenticationResult authResult = authContext.AcquireToken(ResourceUri,
                                                        ClientId,
                                                        new Uri(RedirectUri),
                                                        PromptBehavior.Auto);

Après avoir fourni vos informations d’identification, l’exemple d’application peut continuer à émettre des demandes authentifiées au service de gestion Batch.

Étapes suivantes