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.
Clonez l’exemple de dépôt suivant :
git clone https://github.com/Azure-Samples/serviceconnector-webapp-appconfig-dotnet.git
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 |
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
| 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-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 --name "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
| 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-sp |
Créer un principal de service. Veillez à remplacer le yourSubscriptionID par votre identifiant 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
Warning
Microsoft vous recommande d’utiliser le flux d’authentification le plus sécurisé disponible. Le flux d’authentification décrit dans cette procédure nécessite un niveau de confiance très élevé dans l’application. Il comporte des risques qui ne sont pas présents dans d’autres flux. Utilisez ce flux seulement 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
| 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-cs |
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
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.
Remplacez les répertoires par le 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.
az appconfig kv import --name $APP_CONFIG_NAME --source file --format json --path ./sampleconfigs.json --separator : --yes
Importez le fichier de configuration de test dans Azure App Configuration à l’aide d’une identité managée affectée par l’utilisateur.
Remplacez les répertoires par le 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.
az appconfig kv import --name $APP_CONFIG_NAME --source file --format json --path ./sampleconfigs.json --separator : --yes
Importez le fichier de configuration de test dans Azure App Configuration à l’aide du principal de service.
Remplacez les répertoires par le 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.
az appconfig kv import --name $APP_CONFIG_NAME --source file --format json --path ./sampleconfigs.json --separator : --yes
Warning
Microsoft vous recommande d’utiliser le flux d’authentification le plus sécurisé disponible. Le flux d’authentification décrit dans cette procédure nécessite un niveau de confiance très élevé dans l’application. Il comporte des risques qui ne sont pas présents dans d’autres flux. Utilisez ce flux seulement 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.
Remplacez les répertoires par le 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.
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.
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.
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_umi" --user-identity client-id=<myIdentityClientId> subs-id=<myTestSubsId>
user-identity fait référence au type d’authentification d’identité managée affectée par l’utilisateur. Service Connector 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 --name "myIdentity" --resource-group $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. Cette configuration s’effectue via Service Connector.
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_sp" --service-principal client-id=<mySPClientId> secret=<mySPSecret>
service-principal fait référence au type d’authentification Principal de service. Service Connector prend également en charge les authentifications suivantes : identité managée affectée par le système (UMI), 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.
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_cs" --secret
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. 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.
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. Accédez au code d’exemple.
- Enregistrez les informations d’identification du principal de service dans les paramètres de l'application WebApp
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. Accédez à 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 :
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
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