Authentifier des applications .NET auprès des services Azure pendant le développement local à l’aide de comptes de développeur
Lors de la création d’applications cloud, les développeurs doivent déboguer et tester des applications sur leur station de travail locale. Lorsqu’une application est exécutée sur la station de travail d’un développeur pendant le développement local, elle doit toujours s’authentifier auprès des services Azure utilisés par l’application. Cet article explique comment utiliser les informations d’identification Azure d’un développeur pour authentifier l’application auprès d’Azure pendant le développement local.
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’extension VS Code Azure Tools, d’Azure CLI ou d’Azure PowerShell. Le Kit de développement logiciel (SDK) Azure pour .NET est en mesure de détecter que le développeur est connecté à partir de l’un de ces outils, puis d’obtenir les informations d’identification nécessaires à partir du cache des informations d’identification pour authentifier l’application auprès d’Azure en tant qu’utilisateur connecté.
Cette approche est plus simple à configurer pour une équipe de développement, car elle tire parti des comptes Azure existants des développeurs. Toutefois, le compte d’un développeur aura probablement plus d’autorisations que celles requises par l’application, dépassant les autorisations que l’application exécutera 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.
1 - Créer un groupe Azure AD pour le développement local
Étant donné qu’il existe presque toujours plusieurs développeurs qui travaillent sur une application, il est recommandé de créer d’abord un groupe Azure AD pour encapsuler les rôles (autorisations) dont l’application a besoin dans le développement local. Cela offre les avantages suivants.
- Chaque développeur est assuré d’avoir les mêmes rôles attribués, car les rôles sont attribués au niveau du groupe.
- Si un nouveau rôle est nécessaire pour l’application, il doit uniquement être ajouté au groupe Azure AD pour l’application.
- Si un nouveau développeur rejoint l’équipe, il doit simplement être ajouté au groupe Azure AD concerné pour obtenir les autorisations nécessaires pour travailler sur l’application.
Si vous disposez d’un groupe Azure AD existant pour votre équipe de développement, vous pouvez utiliser ce groupe. Sinon, suivez les étapes suivantes pour créer un groupe Azure AD.
2 - Attribuer des rôles au groupe Azure AD
Ensuite, vous devez déterminer quels rôles (autorisations) votre application a besoin sur les ressources et affecter ces rôles à votre application. Dans cet exemple, les rôles seront affectés au groupe Azure Active Directory créé à l’étape 1. Les rôles peuvent se voir attribuer un rôle au niveau d’une ressource, d’un groupe de ressources ou d’une étendue d’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.
3 - Se connecter à Azure à l’aide d’outils .NET
Ensuite, vous devez vous connecter à Azure à l’aide de l’une des options d’outils .NET. Le compte auquel vous vous connectez doit également exister dans le groupe Azure Active Directory que vous avez créé et configuré précédemment.
Dans le menu supérieur de Visual Studio, accédez à Outils>Options pour ouvrir la boîte de dialogue d’options. Dans la barre de recherche en haut à gauche, tapez Azure pour filtrer les options. Sous Authentification du service Azure, choisissez Sélection du compte.
Sélectionnez le menu déroulant sous Choisir un compte et choisissez d’ajouter un compte Microsoft. Une fenêtre s’ouvre pour vous inviter à choisir un compte. Entrez les informations d’identification de votre compte Azure souhaité, puis sélectionnez la confirmation.
4 - Implémenter DefaultAzureCredential dans votre application
DefaultAzureCredential
prend en charge plusieurs méthodes d’authentification et détermine la méthode d’authentification utilisée au moment du runtime. De cette façon, votre application peut utiliser différentes méthodes d’authentification dans différents environnements sans implémenter de code spécifique à l’environnement.
L’ordre et les emplacements dans lesquels DefaultAzureCredential
recherchent les informations d’identification se trouvent dans DefaultAzureCredential.
Pour implémenter DefaultAzureCredential
, ajoutez d’abord les packages Azure.Identity
et éventuellement Microsoft.Extensions.Azure
à votre application. Pour ce faire, utilisez la ligne de commande ou le Gestionnaire de package NuGet.
Ouvrez un environnement de terminal de votre choix dans le répertoire du projet d’application et entrez la commande ci-dessous.
dotnet add package Azure.Identity
dotnet add package Microsoft.Extensions.Azure
Les services Azure sont généralement accessibles à l’aide des classes clientes correspondantes à partir du SDK. Ces classes et vos propres services personnalisés doivent être inscrits dans le fichier Program.cs
afin qu’ils soient accessibles via l’injection de dépendances dans votre application. À l’intérieur de Program.cs
, suivez les étapes ci-dessous pour configurer correctement votre service et DefaultAzureCredential
.
- Incluez les espaces de noms
Azure.Identity
etMicrosoft.Extensions.Azure
avec une directiveusing
. - Inscrivez le service Azure à l’aide des méthodes d’assistance appropriées.
- Passez une instance de l’objet
DefaultAzureCredential
à la méthodeUseCredential
.
Un exemple de cela est illustré dans le segment de code suivant.
using Microsoft.Extensions.Azure;
using Azure.Identity;
// Inside of Program.cs
builder.Services.AddAzureClients(x =>
{
x.AddBlobServiceClient(new Uri("https://<account-name>.blob.core.windows.net"));
x.UseCredential(new DefaultAzureCredential());
});
Vous pouvez également utiliser plus directement DefaultAzureCredential
dans vos services sans l’aide de méthodes d’inscription Azure supplémentaires, comme indiqué ci-dessous.
using Azure.Identity;
// Inside of Program.cs
builder.Services.AddSingleton<BlobServiceClient>(x =>
new BlobServiceClient(
new Uri("https://<account-name>.blob.core.windows.net"),
new DefaultAzureCredential()));
Lorsque le code ci-dessus est exécuté sur votre station de travail locale pendant le développement local, il recherche dans les variables d’environnement un principal de service d’application ou dans Visual Studio, VS Code, Azure CLI ou Azure PowerShell un ensemble d’informations d’identification de développeur, qui peuvent être utilisées pour authentifier l’application auprès des ressources Azure pendant le développement local.
Lorsqu’il est déployé sur Azure, ce même code peut également authentifier votre application auprès d’autres ressources Azure. DefaultAzureCredential
peut récupérer les paramètres d’environnement et les configurations d’identité managée pour s’authentifier automatiquement auprès d’autres services.
Commentaires
https://aka.ms/ContentUserFeedback.
Bientôt disponible : Tout au long de 2024, nous allons supprimer progressivement GitHub Issues comme mécanisme de commentaires pour le contenu et le remplacer par un nouveau système de commentaires. Pour plus d’informations, consultezEnvoyer et afficher des commentaires pour