Tutoriel : Connecter une application web à Azure App Configuration avec le connecteur de services

Découvrez comment connecter une application ASP.NET Core s’exécutant sur Azure App Service à Azure App Configuration à l’aide de l’une des méthodes suivantes :

  • Identité managée affectée par le système (SMI)
  • Identité managée affectée par l’utilisateur (UMI)
  • Service Principal
  • Chaîne de connexion

Dans ce tutoriel, vous allez utiliser Azure CLI pour effectuer les tâches suivantes :

  • Configurer les ressources Azure
  • Créer une connexion entre une application web et App Configuration
  • Générer et déployer votre application sur Azure App Service

Prerequisites

Connexion à Azure

Exécutez az login dans l’interface Azure CLI pour vous connecter à Azure.

Configurer les ressources Azure

Commencez par créer vos ressources Azure.

  1. Clonez l’exemple de dépôt suivant :

    git clone https://github.com/Azure-Samples/serviceconnector-webapp-appconfig-dotnet.git
    
  2. Déployer l’application web sur Azure.

    Suivez ces étapes pour créer un service App Service et déployer l’exemple d’application. Vérifiez que vous disposez du rôle Contributeur ou Propriétaire de l’abonnement.

    Créez un service d’application et déployez l’exemple d’application qui utilise l’identité managée affectée par le système pour interagir avec App Config.

    # Change directory to the SMI sample
    cd serviceconnector-webapp-appconfig-dotnet\system-managed-identity
    
    # Create a web app
    
    LOCATION='eastus'
    RESOURCE_GROUP_NAME='service-connector-tutorial-rg'
    APP_SERVICE_NAME='webapp-appconfig-smi'
    
    az webapp up --location $LOCATION --resource-group $RESOURCE_GROUP_NAME --name $APP_SERVICE_NAME
    
    Parameter Description Example
    Location Choisissez un emplacement près de chez vous. Utilisez az account list-locations --output tablepour répertorier les emplacements. eastus
    Nom de groupe ressources Utilisez ce groupe de ressources pour organiser toutes les ressources Azure nécessaires pour suivre ce didacticiel. service-connector-tutorial-rg
    Nom de l’App Service Le nom du service d’application est utilisé comme nom de la ressource dans Azure et pour former le nom de domaine complet de votre application, sous la forme du point de terminaison du serveur. Les caractères autorisés sont A-Z, 0-9 et -. Azure ajoute une chaîne aléatoire pour rendre le point de terminaison de serveur unique sur l’ensemble d’Azure. webapp-appconfig-smi
  3. Créez un magasin de configuration d’application Azure.

    APP_CONFIG_NAME='my-app-config'
    
    az appconfig create --resource-group $RESOURCE_GROUP_NAME --name $APP_CONFIG_NAME --sku Free --location eastus
    
  4. Importez le fichier de configuration de test dans Azure App Configuration.

    Importez le fichier de configuration de test dans Azure App Configuration à l’aide d’une identité managée affectée par le système.

    1. Remplacez les répertoires par le dossier ServiceConnectorSample.

    2. Importez le fichier de configuration de test ./sampleconfigs.json dans le magasin App Configuration. Si vous utilisez Cloud Shell, chargez sampleconfigs.json avant d’exécuter la commande.

      az appconfig kv import --name $APP_CONFIG_NAME --source file --format json --path ./sampleconfigs.json --separator : --yes
      

Connecter l’application web à App Configuration

Créez une connexion entre votre application web et votre magasin App Configuration.

Créez une connexion entre votre application web et votre magasin App Configuration, à l’aide d’une authentification d’identité managée affectée par le système. Cette connexion s’effectue par le biais du connecteur de services.

az webapp connection create appconfig --resource-group $RESOURCE_GROUP_NAME --name $APP_SERVICE_NAME --app-config $APP_CONFIG_NAME --tg $RESOURCE_GROUP_NAME --connection "app_config_smi" --system-identity

system-identity fait référence au type d’authentification SMI (identité managée affectée par le système). Service Connector prend également en charge les authentifications suivantes : identité managée affectée par l’utilisateur (UMI), chaîne de connexion (secret) et principal de service.

Valider la connexion

Pour vérifier si la connexion fonctionne, accédez à votre application web. Le moyen le plus simple d’accéder à votre application web consiste à l’ouvrir dans le portail Azure. Dans la page Vue d’ensemble , sélectionnez le domaine par défaut. Une fois le site web mis en place, vous voyez qu’il s’affiche : Hello. Votre application web Azure est désormais connectée à App Configuration par ServiceConnector.

Fonctionnement

Découvrez ce que Service Connector gère en arrière-plan pour chaque type d’authentification.

Le connecteur de services gère la configuration de connexion pour vous :

  • Configurez le AZURE_APPCONFIGURATION_ENDPOINT de l’application web pour permettre à l’application d’y accéder et d’obtenir le point de terminaison App Configuration. Accéder à l'exemple de code.
  • Activez l’authentification managée affectée par le système de l’application web et accordez à App Configuration le rôle Lecteur de données pour permettre à l’application de s’authentifier auprès d’App Configuration à l’aide de DefaultAzureCredential à partir d’Azure.Identity. Accédez au code d'exemple.

Pour plus d’informations, consultez les éléments internes de Service Connector.

Test (facultatif)

Si vous le souhaitez, effectuez les tests suivants :

  1. Mettez à jour la valeur de la clé SampleApplication:Settings:Messages dans le magasin App Configuration.

    az appconfig kv set --name <myAppConfigStoreName> --key SampleApplication:Settings:Messages --value hello --yes
    
  2. Accédez à votre application web Azure, comme décrit précédemment et actualisez la page. Vous voyez que le message est mis à jour sur : hello.

Nettoyer les ressources

Une fois que vous avez terminé, si vous ne souhaitez plus utiliser ces ressources Azure, supprimez-les en exécutant la az group delete commande. Cette commande supprime votre groupe de ressources et toutes les ressources qu’il contient.

az group delete --name <myResourceGroupName> --yes

Étape suivante