Utiliser des identités managées pour accéder à App Configuration

Les identités managées Microsoft Entra simplifient la gestion des secrets pour votre application cloud. Avec une identité managée, votre code peut utiliser le principal de service qui a été créé pour le service Azure sur lequel il s’exécute. Vous utilisez une identité managée à la place d’une information d’identification distincte stockée dans Azure Key Vault ou une chaîne de connexion locale.

Azure App Configuration et ses bibliothèques clientes .NET, .NET Framework et Java Spring sont fournis avec la prise en charge de l’identité managée qui leur est intégrée. Bien que vous ne soyez pas obligé de l’utiliser, l’identité managée élimine le besoin d’un jeton d’accès contenant des secrets. Votre code peut accéder au magasin App Configuration à l’aide du point de terminaison de service uniquement. Vous pouvez incorporer cette URL directement dans votre code sans exposer les secrets.

Cet article montre comment tirer parti de l’identité managée pour accéder à App Configuration. Il s’appuie sur l’application web introduite dans les guides de démarrage rapide. Avant de continuer, créez une application ASP.NET Core avec App Configuration.

Cet article montre comment tirer parti de l’identité managée pour accéder à App Configuration. Il s’appuie sur l’application web introduite dans les guides de démarrage rapide. Avant de continuer, vous devez d’abord Créer une application Java Spring avec App Configuration.

Important

L’identité managée ne peut pas être utilisée pour authentifier des applications en cours d’exécution localement. Votre application doit être déployée sur un service Azure qui prend en charge l’identité managée. Cet article utilise Azure App Service comme exemple. Toutefois, le même concept s’applique à tout autre service Azure qui prend en charge l’identité managée. Par exemple, Azure Kubernetes Service, Machine virtuelle Azure et Azure Container Instances. Si votre charge de travail est hébergée dans l’un de ces services, vous pouvez également tirer parti de la prise en charge des identités managées de ce service.

Vous pouvez utiliser l’éditeur de code de votre choix pour exécuter les étapes de ce tutoriel. Visual Studio Code est une excellente option disponible sur les plateformes Windows, macOS et Linux.

Dans cet article, vous apprendrez comment :

  • Accorder à une identité managée l’accès à App Configuration.
  • Configurer votre application pour utiliser une identité managée lors de la connexion à App Configuration.

Prérequis

Pour suivre ce didacticiel, vous avez besoin de :

Si vous n’avez pas d’abonnement Azure, créez un compte gratuit Azure avant de commencer.

Ajouter une identité managée

Pour configurer une identité managée dans le portail, créez d’abord une application, puis activez la fonctionnalité.

  1. Accédez à votre ressource App Services dans le Portail Azure. Si vous n’avez pas de ressource App Services existante à utiliser, créez-en une.

  2. Faites défiler l’écran jusqu’au groupe Paramètres dans le volet de gauche, puis sélectionnez Identité.

  3. Sous l’onglet Affecté(e) par le système, définissez État sur Activé, puis sélectionnez Enregistrer.

  4. À l’invite, répondez Oui pour activer l’identité managée affectée par le système.

    Screenshot of how to add a managed identity in App Service.

Accorder l’accès à App Configuration

Les étapes suivantes décrivent comment attribuer le rôle de lecteur de données App Configuration à App Service. Pour connaître les étapes détaillées, consultez Attribuer des rôles Azure à l’aide du portail Azure.

  1. Dans le portail Azure, sélectionnez votre magasin App Configuration.

  2. Sélectionnez Contrôle d’accès (IAM) .

  3. Sélectionnez Ajouter>Ajouter une attribution de rôle.

    Screenshot that shows the Access control (IAM) page with Add role assignment menu open.

    Si vous n’avez pas l’autorisation nécessaire pour attribuer des rôles, l’option Ajouter une attribution de rôle est désactivée. Pour plus d’informations, voir Rôles intégrés Azure.

  4. Sous l’onglet Rôle, sélectionnez le rôle Lecteur des données App Configuration, puis Suivant.

    Screenshot that shows the Add role assignment page with Role tab selected.

  5. Sous l’onglet Membres, sélectionnez Identité managée, puis Sélectionner des membres.

    Screenshot that shows the Add role assignment page with Members tab selected.

  6. Sélectionnez votre abonnement Azure. Pour Managed Identity, sélectionnez App Service, puis sélectionnez votre nom App Service.

    Screenshot that shows the select managed identities page.

  7. Dans l’onglet Passer en revue + affecter, sélectionnez Passer en revue + affecter pour affecter le rôle.

Utiliser une identité managée

  1. Ajoutez une référence au package Azure.Identity :

    dotnet add package Azure.Identity
    
  2. Recherchez le point de terminaison de votre magasin App Configuration. Cette URL est indiquée sous l’onglet Clés d’accès pour le magasin du portail Azure.

  3. Ouvrez le fichier appsettings.json et ajoutez le script suivant. Remplacez <service_endpoint>, crochets compris, par l’URL de votre magasin App Configuration.

    "AppConfig": {
        "Endpoint": "<service_endpoint>"
    }
    
  4. Ouvrez le fichier Program.cs et ajoutez une référence aux espaces de noms Azure.Identity et Microsoft.Azure.Services.AppAuthentication :

    using Azure.Identity;
    
  5. Pour accéder aux valeurs stockées dans App Configuration, mettez à jour la configuration Builder pour utiliser la méthode AddAzureAppConfiguration().

    var builder = WebApplication.CreateBuilder(args);
    
    builder.Configuration.AddAzureAppConfiguration(options =>
        options.Connect(
            new Uri(builder.Configuration["AppConfig:Endpoint"]),
            new ManagedIdentityCredential()));
    

    Remarque

    Si vous souhaitez utiliser une identité managée affectée par l’utilisateur, veillez à spécifier le clientId lors de la création de ManagedIdentityCredential.

    new ManagedIdentityCredential("<your_clientId>")
    

    Comme expliqué dans les Questions fréquentes (FAQ) relatives aux identités managées pour les ressources Azure, il existe un moyen par défaut de savoir quelle identité managée est utilisée. Dans ce cas, la bibliothèque d’identités Azure vous oblige à spécifier l’identité souhaitée afin d’éviter tout problème d’exécution à l’avenir. Par exemple, si une nouvelle identité managée affectée par l’utilisateur est ajoutée ou si l’identité managée affectée par le système est activée. Par conséquent, vous devez spécifier le clientId même si une seule identité managée affectée par l’utilisateur est définie et qu’il n’existe aucune identité managée affectée par le système.

  1. Recherchez le point de terminaison de votre magasin App Configuration. Cette URL est répertoriée sous l’onglet Vue d’ensemble pour le magasin dans le portail Azure.

  2. Ouvrez bootstrap.properties, supprimez la propriété de chaîne de connexion et remplacez-la par le point de terminaison pour l’Identité affectée par le système :

spring.cloud.azure.appconfiguration.stores[0].endpoint=<service_endpoint>

pour l’Identité affectée par l’utilisateur :

spring.cloud.azure.appconfiguration.stores[0].endpoint=<service_endpoint>
spring.cloud.azure.credential.managed-identity-enabled= true
spring.cloud.azure.credential.client-id= <client_id>

Remarque

Pour plus d’informations, consultez Authentification Azure Spring Cloud.

Déployer votre application

Vous devez déployer votre application sur un service Azure lorsque vous utilisez des identités managées. Les identités managées ne peuvent pas être utilisées pour l’authentification des applications exécutées localement. Pour déployer l’application .NET Core que vous avez créée à l’aide du démarrage rapide Créer une application ASP.NET Core avec App Configuration et la modifier pour utiliser des identités gérées, suivez les instructions de la section Publier votre application Web.

L’utilisation des identités gérées vous oblige à déployer votre application sur un service Azure. Les identités managées ne peuvent pas être utilisées pour l’authentification des applications exécutées localement. Pour déployer l’application Spring que vous avez créée à l’aide du démarrage rapide Créer une application Java Spring avec Azure App Configuration et modifiée afin d’utiliser des identités managées, suivez les instructions de la section Publier votre application web.

En plus de App Service, de nombreux autres services Azure prennent en charge les identités gérées. Pour plus d'informations, consultez Services prenant en charge les identités managées pour les ressources Azure.

Nettoyer les ressources

Si vous ne souhaitez plus utiliser les ressources créées dans cet article, supprimez le groupe de ressources que vous avez créé ici afin d’éviter des frais.

Important

La suppression d’un groupe de ressources est irréversible. Le groupe de ressources et toutes les ressources qu’il contient sont supprimés définitivement. Veillez à ne pas supprimer accidentellement les mauvaises ressources ou le mauvais groupe de ressources. Si vous avez créé les ressources pour cet article dans un groupe de ressources contenant d’autres ressources que vous souhaitez conserver, supprimez chaque ressource individuellement à partir de son volet, au lieu de supprimer l’intégralité du groupe de ressources.

  1. Connectez-vous au portail Azure, puis sélectionnez Groupes de ressources.
  2. Dans la zone Filtrer par nom, entrez le nom de votre groupe de ressources.
  3. Dans la liste de résultats, sélectionnez le nom du groupe de ressources pour afficher une vue d’ensemble.
  4. Sélectionnez Supprimer le groupe de ressources.
  5. Vous êtes invité à confirmer la suppression du groupe de ressources. Entrez le nom de votre groupe de ressources à confirmer, puis sélectionnez Supprimer.

Après quelques instants, le groupe de ressources et toutes ses ressources sont supprimés.

Étapes suivantes

Dans ce tutoriel, vous avez ajouté une identité managée Azure pour simplifier l’accès à App Configuration et améliorer la gestion des informations d’identification pour votre application. Pour en savoir plus sur l’utilisation d’App Configuration, passez aux exemples Azure CLI.