Tutoriel : Connecter une application web à Azure App Configuration avec le connecteur de services
Article
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)
Principal du service
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
Prérequis
Compte Azure avec un abonnement actif. Votre rôle d’accès au sein de l’abonnement doit être « Contributeur » ou « Propriétaire ». Créez un compte gratuitement.
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 Propriétaire ou Contributeur d’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
Paramètre
Description
Exemple
Emplacement
Choisissez un emplacement près de chez vous. Utilisez az account list-locations --output tablepour répertorier les emplacements.
eastus
Nom du groupe ressources
Vous utiliserez ce groupe de ressources pour organiser toutes les ressources Azure nécessaires à l’exécution de ce tutoriel.
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 de serveur https://<app-service-name>.azurewebsites.com. Ce nom doit être unique dans tout Azure, et les seuls caractères autorisés sont A-Z, 0-9 et -.
webapp-appconfig-smi
Créez un service d’application et déployez l’exemple d’application qui utilise l’identité managée affectée par l’utilisateur pour interagir avec App Config.
# Change directory to the UMI sample
cd serviceconnector-webapp-appconfig-dotnet\user-assigned-managed-identity
# Create a web app
LOCATION='eastus'
RESOURCE_GROUP_NAME='service-connector-tutorial-rg'
APP_SERVICE_NAME='webapp-appconfig-umi'
az webapp up --location $LOCATION --resource-group $RESOURCE_GROUP_NAME --name $APP_SERVICE_NAME
Paramètre
Description
Exemple
Emplacement
Choisissez un emplacement près de chez vous. Utilisez az account list-locations --output tablepour répertorier les emplacements.
eastus
Nom du groupe ressources
Vous utiliserez ce groupe de ressources pour organiser toutes les ressources Azure nécessaires à l’exécution de ce tutoriel.
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 de serveur https://<app-service-name>.azurewebsites.com. Ce nom doit être unique dans tout Azure, et les seuls caractères autorisés sont A-Z, 0-9 et -.
webapp-appconfig-umi
Créez une identité managée affectée par l’utilisateur. Enregistrez la sortie dans un bloc-notes temporaire.
az identity create --resource-group $RESOURCE_GROUP_NAME -n "myIdentity"
Créez un service d’application et déployez l’exemple d’application qui utilise le principal de service pour interagir avec App Config.
# Change directory to the service principal sample
cd serviceconnector-webapp-appconfig-dotnet\service-principal
# Create a web app
LOCATION='eastus'
RESOURCE_GROUP_NAME='service-connector-tutorial-rg'
APP_SERVICE_NAME='webapp-appconfig-sp'
az webapp up --location $LOCATION --resource-group $RESOURCE_GROUP_NAME --name $APP_SERVICE_NAME
Paramètre
Description
Exemple
Emplacement
Choisissez un emplacement près de chez vous. Utilisez az account list-locations --output tablepour répertorier les emplacements.
eastus
Nom du groupe ressources
Vous utiliserez ce groupe de ressources pour organiser toutes les ressources Azure nécessaires à l’exécution de ce tutoriel.
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 de serveur https://<app-service-name>.azurewebsites.com. Ce nom doit être unique dans tout Azure, et les seuls caractères autorisés sont A-Z, 0-9 et -.
webapp-appconfig-sp
Créez un principal de service, en veillant à remplacer yourSubscriptionID par votre ID d’abonnement réel. Enregistrez la sortie dans un bloc-notes temporaire.
az ad sp create-for-rbac --name myServicePrincipal --role Contributor --scopes /subscriptions/{yourSubscriptionID}/resourceGroups/$RESOURCE_GROUP_NAME
Avertissement
Microsoft vous recommande d’utiliser le flux d’authentification le plus sécurisé disponible. Le flux d'authentification décrit dans cette procédure demande un degré de confiance très élevé dans l'application et comporte des risques qui ne sont pas présents dans d'autres flux. Vous ne devez utiliser ce flux que si d’autres flux plus sécurisés, tels que les identités managées, ne sont pas viables.
Créez un service d’application et déployez l’exemple d’application qui utilise la chaîne de connexion pour interagir avec App Config.
# Change directory to the service principal sample
cd serviceconnector-webapp-appconfig-dotnet\connection-string
# Create a web app
LOCATION='eastus'
RESOURCE_GROUP_NAME='service-connector-tutorial-rg'
APP_SERVICE_NAME='webapp-appconfig-cs'
az webapp up --location $LOCATION --resource-group $RESOURCE_GROUP_NAME --name $APP_SERVICE_NAME
Paramètre
Description
Exemple
Emplacement
Choisissez un emplacement près de chez vous. Utilisez az account list-locations --output tablepour répertorier les emplacements.
eastus
Nom du groupe ressources
Vous utiliserez ce groupe de ressources pour organiser toutes les ressources Azure nécessaires à l’exécution de ce tutoriel.
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 de serveur https://<app-service-name>.azurewebsites.com. Ce nom doit être unique dans tout Azure, et les seuls caractères autorisés sont A-Z, 0-9 et -.
Importez le fichier de configuration de test dans Azure App Configuration à l’aide d’une identité managée affectée par le système.
Accédez au dossier ServiceConnectorSample.
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.
Importez le fichier de configuration de test dans Azure App Configuration à l’aide d’une identité managée affectée par l’utilisateur.
Accédez au dossier ServiceConnectorSample.
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.
Importez le fichier de configuration de test dans Azure App Configuration à l’aide du principal de service.
Accédez au dossier ServiceConnectorSample.
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.
Microsoft vous recommande d’utiliser le flux d’authentification le plus sécurisé disponible. Le flux d'authentification décrit dans cette procédure demande un degré de confiance très élevé dans l'application et comporte des risques qui ne sont pas présents dans d'autres flux. Vous ne devez utiliser ce flux que si d’autres flux plus sécurisés, tels que les identités managées, ne sont pas viables.
Importez le fichier de configuration de test dans Azure App Configuration à l’aide d’une chaîne de connexion.
Accédez au dossier ServiceConnectorSample.
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.
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.
system-identity fait référence au type d’authentification SMI (identité managée affectée par le système). Le connecteur de services 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.
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 l’utilisateur. Cette connexion s’effectue par le biais du connecteur de services.
user-identity fait référence au type d’authentification UMI (identité managée affectée par l’utilisateur). Le connecteur de services prend également en charge les authentifications suivantes : identité managée affectée par le système, chaîne de connexion (secret) et principal de service.
Il existe deux manières de trouver le client-id :
Dans Azure CLI, entrez az identity show -n "myIdentity" -g $RESOURCE_GROUP_NAME --query 'clientId'.
Dans le portail Azure, ouvrez l’identité managée créée précédemment et, dans Vue d’ensemble, obtenez la valeur sous ID client.
Créez une connexion entre votre application web et votre magasin App Configuration à l’aide d’un principal de service. Cela s’effectue par le biais du connecteur de services.
service-principal fait référence au type d’authentification Principal de service. Le connecteur de services prend également en charge les authentifications suivantes : identité managée affectée par le système (SMI), identité managée affectée par l’utilisateur (UMI) et chaîne de connexion (secret).
Créez une connexion entre votre application web et votre magasin App Configuration à l’aide d’une chaîne de connexion. Cette connexion s’effectue par le biais du connecteur de services.
secret fait référence au type d’authentification Chaîne de connexion. Le connecteur de services prend également en charge les authentifications suivantes : identité managée affectée par le système, identité managée affectée par l’utilisateur et principal de service.
Valider la connexion
Pour vérifier si la connexion fonctionne, accédez à votre application web à https://<myWebAppName>.azurewebsites.net/ à partir de votre navigateur. Une fois le site web opérationnel, vous verrez qu’il affiche « Hello. Your Azure WebApp is connected to App Configuration by ServiceConnector now ».
Fonctionnement
Vous trouverez ci-dessous ce que le connecteur de services 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. Exemple de code d’accès.
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. Exemple de code d’accès.
Le connecteur de services gère la configuration de connexion pour vous :
Configurez le AZURE_APPCONFIGURATION_ENDPOINT de l’application web, AZURE_APPCONFIGURATION_CLIENTID pour permettre à l’application d’y accéder et d’obtenir le point de terminaison de configuration d’application dans le code.
Activez l’authentification managée affectée par l’utilisateur 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. Exemple de code d’accès.
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. Exemple de code d’accès.
Enregistrez les informations d’identification du principal de service dans WebApp AppSettings AZURE_APPCONFIGURATION_CLIENTID. AZURE_APPCONFIGURATION_TENANTID, AZURE_APPCONFIGURATION_CLIENTSECRET et accordez le rôle Lecteur de données App Configuration au principal de service, afin que l’application puisse être authentifiée auprès d’App Configuration dans le code, à l’aide de ClientSecretCredential à partir d’Azure.Identity.
Le connecteur de services gère la configuration de connexion pour vous :
Configurez le AZURE_APPCONFIGURATION_CONNECTIONSTRING de l’application web pour permettre à l’application d’y accéder et d’obtenir la chaîne de connexion App Configuration. Exemple de code d’accès.
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. Exemple de code d’accès.
Si vous le souhaitez, effectuez les tests suivants :
Mettez à jour la valeur de la clé SampleApplication:Settings:Messages dans le magasin App Configuration.
az appconfig kv set -n <myAppConfigStoreName> --key SampleApplication:Settings:Messages --value hello --yes
Accédez à votre application web Azure à https://<myWebAppName>.azurewebsites.net/ et actualisez la page. Vous verrez que le message est mis à jour et indique « hello ».
Nettoyer les ressources
Une fois terminé, si vous n’allez plus utiliser ces ressources Azure, supprimez-les en exécutant la commande az group delete. Cette commande supprime votre groupe de ressources et toutes les ressources s’y trouvant.
az group delete -n <myResourceGroupName> --yes
Étapes suivantes
Suivez les tutoriels ci-dessous pour en savoir plus sur Service Connector.