Partager via


Authentifier des applications .NET auprès des services Azure pendant le développement local à l’aide de comptes de développeur

Pendant le développement local, les applications doivent s’authentifier auprès d’Azure pour accéder à différents services Azure. Deux approches courantes pour l’authentification locale sont d’utiliser un principal de service ou d’utiliser un compte de développeur. Cet article explique comment utiliser un compte de développeur. Dans les sections à venir, vous allez apprendre :

  • Comment utiliser des groupes Microsoft Entra pour gérer efficacement les autorisations pour plusieurs comptes de développeur
  • Comment attribuer des rôles à des comptes de développeur pour définir l'étendue des autorisations
  • Comment se connecter aux outils de développement locaux pris en charge
  • Comment s’authentifier à l’aide d’un compte de développeur à partir de votre code d’application

Diagramme montrant une application s’exécutant dans le développement local à l’aide d’une identité d’outil de développement pour se connecter aux ressources Azure.

Pour qu’une application s’authentifie auprès d’Azure pendant le développement local à l’aide des informations d’identification Azure du développeur, le développeur doit être connecté à Azure à partir de l’un des outils de développement suivants :

  • Azure CLI (Interface de ligne de commande Azure)
  • Azure CLI pour Développeur
  • Azure PowerShell
  • Visual Studio

La bibliothèque d’identités Azure peut détecter que le développeur est connecté à partir de l’un de ces outils. La bibliothèque peut ensuite obtenir le jeton d’accès Microsoft Entra via l’outil pour authentifier l’application auprès d’Azure en tant qu’utilisateur connecté.

Cette approche tire parti des comptes Azure existants du développeur pour simplifier le processus d’authentification. Toutefois, le compte d’un développeur a probablement plus d’autorisations que nécessaire par l’application, ce qui dépasse les autorisations avec laquelle l’application s’exécute en production. En guise d’alternative, vous pouvez créer des principaux de service d’application à utiliser pendant le développement local, qui peuvent être limités aux seuls besoins de l’application.

Créer un groupe Microsoft Entra pour le développement local

Créez un groupe Microsoft Entra pour encapsuler les rôles (autorisations) dont l’application a besoin dans le développement local plutôt que d’affecter les rôles à des objets de principal de service individuels. Cette approche offre les avantages suivants :

  • Chaque développeur a les mêmes rôles attribués au niveau du groupe.
  • Si un nouveau rôle est nécessaire pour l’application, il doit uniquement être ajouté au groupe de l’application.
  • Si un nouveau développeur rejoint l’équipe, un nouveau principal du service d’application est créé pour le développeur et ajouté au groupe, ce qui garantit que le développeur dispose des autorisations appropriées pour travailler sur l’application.
  1. Accédez à la page de vue d’ensemble Microsoft Entra ID dans le portail Azure.

  2. Sélectionnez Tous les groupes dans le menu de gauche.

  3. Sur la page Groupes , sélectionnez Nouveau groupe.

  4. Dans la page Nouveau groupe, renseignez les champs de formulaire suivants :

    • type de groupe: sélectionnez la sécurité .
    • nom du groupe: entrez un nom pour le groupe qui inclut une référence à l’application ou au nom de l’environnement.
    • description du groupe: entrez une description qui explique l’objectif du groupe.

    capture d’écran A montrant comment créer un groupe dans le portail Azure.

  5. Sélectionnez le lien Aucun membre sélectionné sous Membres pour ajouter des membres au groupe.

  6. Dans le volet volant qui s’ouvre, recherchez le principal de service que vous avez créé précédemment et sélectionnez-le dans les résultats filtrés. Cliquez sur le bouton Select en bas du panneau pour confirmer votre sélection.

  7. Sélectionnez Créer en bas de la page Nouveau groupe pour créer le groupe et revenir à la page Tous les groupes. Si vous ne voyez pas le nouveau groupe répertorié, attendez un instant et actualisez la page.

Attribuer des rôles au groupe

Ensuite, déterminez les rôles (autorisations) dont votre application a besoin sur les ressources et attribuez ces rôles au groupe Microsoft Entra que vous avez créé. Les groupes peuvent être affectés à un rôle au niveau de la ressource, du groupe de ressources ou de l’étendue de l’abonnement. Cet exemple montre comment attribuer des rôles à l’étendue du groupe de ressources, car la plupart des applications regroupent toutes leurs ressources Azure dans un seul groupe de ressources.

  1. Dans le portail Azure, accédez à la page Vue d’ensemble du groupe de ressources qui contient votre application.

  2. Dans le menu de navigation de gauche, sélectionnez Contrôle d’accès (IAM) .

  3. Dans la page Contrôle d’accès (IAM), sélectionnez + Ajouter, puis choisissez Ajouter une attribution de rôle dans le menu déroulant. La page Ajouter une attribution de rôle fournit plusieurs onglets pour configurer et attribuer des rôles.

  4. Sous l’onglet Rôle, utilisez la zone de recherche pour localiser le rôle que vous souhaitez attribuer. Sélectionnez le rôle, puis choisissez suivant.

  5. Sous l’onglet Membres :

    • Pour la valeur Attribuer l’accès à, sélectionnez Utilisateur, groupe ou principal de service.
    • Pour la valeur Membres, choisissez + Sélectionner des membres pour ouvrir le panneau volant Sélectionner des membres.
    • Recherchez le groupe Microsoft Entra que vous avez créé précédemment et sélectionnez-le dans les résultats filtrés. Choisissez Select pour sélectionner le groupe et fermer le panneau volant.
    • Sélectionnez Vérifier + attribuer en bas de l’onglet Membres.

    Une capture d’écran montrant comment attribuer un rôle au groupe Microsoft Entra.

  6. Sous l’onglet Révision + assigner, sélectionnez Révision + assigner en bas de la page.

Se connecter à Azure à l’aide des outils de développement

Ensuite, connectez-vous à Azure à l’aide de l’un des outils de développement qui peuvent être utilisés pour effectuer l’authentification dans votre environnement de développement. Le compte que vous authentifiez doit également exister dans le groupe Microsoft Entra que vous avez créé et configuré précédemment.

Les développeurs utilisant Visual Studio 2017 ou version ultérieure peuvent s’authentifier à l’aide de leur compte de développeur via l’IDE. Les applications utilisant DefaultAzureCredential ou VisualStudioCredential peuvent découvrir et utiliser ce compte pour authentifier les demandes d’application lors de l’exécution locale. Ce compte est également utilisé lorsque vous publiez des applications directement à partir de Visual Studio vers Azure.

Importante

Vous devez installer la charge de travail de développement Azure pour activer les outils Visual Studio pour l’authentification, le développement et le déploiement Azure.

  1. Dans Visual Studio, accédez à Options d’outils> pour ouvrir la boîte de dialogue Options.

  2. Dans la zone Options de recherche en haut, tapez Azure pour filtrer les options disponibles.

  3. Sous Authentification du service Azure, choisissez Sélection du compte.

  4. Sélectionnez le menu déroulant sous Choisir un compte et choisissez d’ajouter un compte Microsoft.

  5. Dans la fenêtre qui s’ouvre, entrez les informations d’identification de votre compte Azure souhaité, puis confirmez vos entrées.

    Capture d’écran montrant comment se connecter à Azure à l’aide de Visual Studio.

  6. Sélectionnez OK pour fermer la boîte de dialogue options.

S’authentifier auprès des services Azure à partir de votre application

La bibliothèque d’identités Azure fournit diverses informations d’identification : implémentations de TokenCredential adaptées à la prise en charge de différents scénarios et flux d’authentification Microsoft Entra. Les étapes à suivre montrent comment utiliser DefaultAzureCredential quand vous utilisez des comptes d’utilisateur localement.

Implémenter le code

DefaultAzureCredential est une séquence ordonnée et fondée d’authentification auprès de Microsoft Entra ID. Chaque mécanisme d’authentification est une classe dérivée de la classe TokenCredential et est connu sous le nom de identifiant. Au moment de l’exécution, DefaultAzureCredential tente de s’authentifier à l’aide du premier identifiant. Si ces informations d’identification ne parviennent pas à acquérir un jeton d’accès, les informations d’identification suivantes de la séquence sont utilisées, et ainsi de suite jusqu’à l’obtention d’un jeton d’accès. De cette façon, votre application peut utiliser différentes informations d’identification dans différents environnements sans écrire de code spécifique à l’environnement.

Pour utiliser DefaultAzureCredential, ajoutez le Azure.Identity et éventuellement les packages Microsoft.Extensions.Azure à votre application :

Dans un terminal de votre choix, accédez au répertoire du projet d’application et exécutez les commandes suivantes :

dotnet add package Azure.Identity
dotnet add package Microsoft.Extensions.Azure

Les services Azure sont accessibles à l’aide de classes clientes spécialisées à partir des différentes bibliothèques clientes du Kit de développement logiciel (SDK) Azure. Ces classes et vos propres services personnalisés doivent être inscrits afin qu’ils soient accessibles via l’injection de dépendances dans votre application. Dans Program.cs, procédez comme suit pour inscrire une classe cliente et DefaultAzureCredential:

  1. Incluez les espaces de noms Azure.Identity et Microsoft.Extensions.Azure via des directives using.
  2. Inscrivez le client de service Azure en utilisant la méthode d’extension préfixée Addcorrespondante.
  3. Transmettez une instance de DefaultAzureCredential à la méthode UseCredential.
builder.Services.AddAzureClients(clientBuilder =>
{
    clientBuilder.AddBlobServiceClient(
        new Uri("https://<account-name>.blob.core.windows.net"));

    clientBuilder.UseCredential(new DefaultAzureCredential());
});

Une alternative à la méthode UseCredential consiste à fournir directement les informations d’identification au client de service :

builder.Services.AddSingleton<BlobServiceClient>(_ =>
    new BlobServiceClient(
        new Uri("https://<account-name>.blob.core.windows.net"),
        new DefaultAzureCredential()));