Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Nombreuses sont les applications comportant plusieurs composants. Par exemple, vous pouvez avoir un front-end accessible publiquement et se connecte à une API back-end ou une application web. Les ressources principales peuvent se connecter à une base de données, un compte de stockage, un coffre de clés, une autre machine virtuelle ou une combinaison de ces ressources. Cette architecture est la base d’une application multiniveau. Il est important que les applications comme celles-ci soient conçues pour protéger les ressources back-end dans la mesure du possible.
Ce tutoriel explique comment déployer une application multiniveau sécurisée avec une application web frontale qui se connecte à une autre application web isolée par le réseau. Tout le trafic est isolé au sein de votre réseau virtuel Azure à l’aide de l’intégration au réseau virtuel et des points de terminaison privés. Pour obtenir des conseils plus complets, qui incluent d’autres scénarios, consultez :
Dans ce tutoriel, vous allez :
- Créer un réseau virtuel et des sous-réseaux pour l’intégration de réseau virtuel App Service
- Créer des zones DNS privées et des points de terminaison privés
- Configurer l’intégration de réseau virtuel dans App Service
- Désactiver l’authentification de base dans App Service
- Déployer en continu vers une application web back-end sécurisée
Prérequis
Le didacticiel utilise deux exemples d’applications Node.js hébergées sur GitHub. Si vous n’avez pas encore de compte GitHub, créez-en un gratuitement.
Si vous ne disposez pas d’un compte Azure, créez-en un gratuitement avant de commencer.
Pour suivre ce tutoriel :
Utilisez l’environnement Bash dans Azure Cloud Shell. Pour obtenir plus d’informations, consultez Démarrage d’Azure Cloud Shell.
Si vous préférez exécuter les commandes de référence de l’interface de ligne de commande localement, installez l’interface Azure CLI. Si vous exécutez sur Windows ou macOS, envisagez d’exécuter Azure CLI dans un conteneur Docker. Pour plus d’informations, consultez Guide pratique pour exécuter Azure CLI dans un conteneur Docker.
Si vous utilisez une installation locale, connectez-vous à Azure CLI à l’aide de la commande az login. Pour finir le processus d’authentification, suivez les étapes affichées dans votre terminal. Pour obtenir d’autres options de connexion, consultez S’authentifier auprès d’Azure à l’aide d’Azure CLI.
Quand vous y êtes invité, installez l’extension Azure CLI à la première utilisation. Pour plus d’informations sur les extensions, consultez Utiliser et gérer des extensions avec Azure CLI.
Exécutez az version pour rechercher la version et les bibliothèques dépendantes installées. Pour effectuer une mise à niveau vers la dernière version, exécutez az upgrade.
Passer en revue l’architecture du scénario
Ce tutoriel montre comment configurer une architecture illustrée dans le diagramme suivant. Le scénario représente l’une des configurations de niveau N possibles dans App Service. Vous pouvez utiliser les concepts abordés dans ce tutoriel pour créer des applications multiniveaux plus complexes.
L’architecture a un réseau virtuel qui contient deux sous-réseaux. Un sous-réseau est intégré à l’application web frontale, et l’autre sous-réseau a un point de terminaison privé pour l’application web principale. Le réseau virtuel bloque tout le trafic réseau entrant, à l’exception du trafic qui cible l’application frontale intégrée.
Une application web frontale est intégrée au réseau virtuel et accessible à partir de l’Internet public.
Une application web principale est accessible uniquement via le point de terminaison privé dans le réseau virtuel.
Un point de terminaison privé s’intègre à l’application web principale et rend l’application web accessible via une adresse IP privée.
Une zone DNS privé permet de résoudre un nom DNS vers l’adresse IP du point de terminaison privé.
Remarque
Pour configurer l’intégration de réseau virtuel et les points de terminaison privés, vous avez besoin du niveau Basic de Azure App Service ou d’un niveau supérieur. Le niveau Gratuit ne prend pas en charge ces fonctionnalités.
Le scénario de ce didacticiel fournit le comportement suivant :
- Le trafic public vers l’application back-end est bloqué.
- Le trafic sortant d’App Service est acheminé vers le réseau virtuel et peut atteindre l’application back-end.
- App Service peut effectuer une résolution DNS vers l’application back-end.
Créer les deux applications web
Vous avez besoin de deux applications web App Service, une pour le front-end et l’autre pour le serveur principal. Les applications peuvent s’exécuter dans le même emplacement de région. Pour configurer l’intégration de réseau virtuel et utiliser des points de terminaison privés, utilisez au moins le niveau Basic de Azure App Service. Vous configurez l’intégration du réseau virtuel et d’autres paramètres ultérieurement.
Créez un groupe de ressources pour gérer toutes les ressources de ce didacticiel.
Définissez l’espace réservé
<resource-group>sur le nom de votre nouveau groupe de ressources, par exemplezava-resources. Remplacez l’espace réservé<region-location>par la région de votre nouveau groupe de ressources, par exempleeastus.# Define variables for the resource group name and region location resourceGroupName=<resource-group> regionLocation=<region-location> # Create the resource group az group create --name $resourceGroupName --location $regionLocationPour plus d’informations, consultez la référence de commande az group create .
Créez un plan App Service pour vos ressources.
Remplacez l’espace réservé
<app-service-plan>par le nom de votre nouveau plan App Service, par exemplezava-app-service-plan.L’exemple du tutoriel définit le paramètre
--skusurP1V3(Premium V3). Vous pouvez utiliser cette valeur ou spécifier une autre référence SKU. La référence SKU doit prendre en charge les fonctionnalités réseau requises pour ce didacticiel. Sélectionnez le niveau De base ou supérieur.# Define a variable for the App Service plan name appServicePlanName=<app-service-plan> # Create the App Service plan az appservice plan create --name $appServicePlanName --resource-group $resourceGroupName --is-linux --location $regionLocation --sku P1V3Pour plus d'informations, consultez la référence de la commande az appservice plan create.
Créez les applications web frontend et back-end.
L’exemple de tutoriel crée deux exemples d’applications Node.js, où la version du langage runtime est
NODE:24-lts. Si vous préférez utiliser vos propres applications, définissez la valeur du--runtimeparamètre<language-version>en conséquence. Vous pouvez exécuter laaz webapp list-runtimescommande pour la liste des runtimes disponibles :az webapp list-runtimesRemplacez l’espace réservé
<frontend-app-name>par le nom de votre nouvelle application web front-end, par exemplezava-frontend-app. Le nom doit être globalement unique et se composer de caractères valides (a-z,0-9,-). De même, attribuez à l’espace réservé<backend-app-name>le nom de votre nouvelle application web backend, tel quezava-backend-app.# Define variables for the App Service web app names frontendAppName=<frontend-app-name> backendAppName=<backend-app-name> # Create the web apps az webapp create --name $frontendAppName --resource-group $resourceGroupName --plan $appServicePlanName --runtime "NODE:24-lts" az webapp create --name $backendAppName --resource-group $resourceGroupName --plan $appServicePlanName --runtime "NODE:24-lts"Pour plus d’informations, consultez la référence de commande az webapp create .
Créer l’infrastructure réseau
L’infrastructure de réseau virtuel se compose des ressources suivantes :
- Instance de Réseau virtuel Azure
- Sous-réseau pour l’intégration du réseau virtuel App Service
- Un autre sous-réseau pour le point de terminaison privé
- Zone de Azure DNS privé
- Un point de terminaison privé
Créez un réseau virtuel Azure.
Remplacez l’espace réservé
<virtual-network-name>par le nom de votre nouveau réseau virtuel, par exemplezava-virtual-network. Le nom doit être globalement unique.# Define a variable for the virtual network name virtualNetworkName=<virtual-network-name> # Create the virtual network az network vnet create --resource-group $resourceGroupName --location $regionLocation --name $virtualNetworkName --address-prefixes 10.0.0.0/16Pour plus d’informations, consultez la référence de commande az network vnet create .
Créez un sous-réseau pour l’intégration du réseau virtuel App Service.
Remplacez l’espace réservé
<network-integration-subnet>par le nom de votre nouveau sous-réseau qui prend en charge l’intégration au réseau virtuel, par exemplezava-integration-subnet.Pour App Service, le sous-réseau de l’intégration au réseau virtuel doit disposer au minimum d’un bloc CIDR de
/26./24est plus que suffisant.--delegations Microsoft.Web/serverfarmsspécifie que le sous-réseau est délégué pour l’intégration de réseau virtuel App Service.# Define a variable for the integration subnet name networkIntegrationSubnet=<network-integration-subnet> # Create the subnet for virtual network integration az network vnet subnet create --resource-group $resourceGroupName --vnet-name $virtualNetworkName --name $networkIntegrationSubnet \ --address-prefixes 10.0.0.0/24 --delegations Microsoft.Web/serverfarms \ --disable-private-endpoint-network-policies falsePour plus d’informations, consultez la référence de commande az network vnet subnet create .
Créez un autre sous-réseau pour les points de terminaison privés.
Définissez l’espace réservé
<private-endpoint-subnet>sur le nom de votre nouveau sous-réseau qui prend en charge le point de terminaison privé, par exemplezava-endpoint-subnet.# Define a variable for the private endpoint subnet name privateEndpointSubnet=<private-endpoint-subnet> # Create the subnet for the private endpoint az network vnet subnet create --resource-group $resourceGroupName --vnet-name $virtualNetworkName --name $privateEndpointSubnet \ --address-prefixes 10.0.1.0/24 \ --disable-private-endpoint-network-policies truePour les sous-réseaux de points de terminaison privés, vous devez désactiver les stratégies réseau des points de terminaison privés en définissant l’indicateur
--disable-private-endpoint-network-policiessurtrue. Pour plus d’informations, consultez les paramètres facultatifs de la commande az network vnet subnet create .Remarque
L’indicateur
--private-endpoint-network-policiespeut bientôt remplacer l’indicateur--disable-private-endpoint-network-policies.Créez la zone Azure DNS privé.
Remplacez l’espace réservé
<private-zone-name>par le nom de votre nouvelle zone de DNS privé, par exemplezava-private.azurewebsites.net.# Define a variable for the Private DNS zone privateDNSZone=<private-zone-name> # Create the Private DNS zone az network private-dns zone create --resource-group $resourceGroupName --name $privateDNSZonePour plus d’informations, consultez la référence de commande az network vnet subnet create . Pour plus d’informations sur la configuration de la zone DNS privée, consultez configuration de la zone DNS du service Azure.
Remarque
Si vous créez le point de terminaison privé dans le portail Azure, une zone de Azure DNS privé est créée automatiquement pour votre configuration. Pour une cohérence procédurale dans ce didacticiel, vous créez séparément la zone DNS privé et le point de terminaison privé à l’aide du Azure CLI.
Liez la zone DNS privé au réseau virtuel.
Définissez l’espace réservé
<dns-link-name>sur le nom de votre nouveau lien DNS, par exemplezava-private-link.# Define a variable for the DNS link name dnsLinkName=<dns-link-name> # Create the link between the Private DNS zone and the virtual network az network private-dns link vnet create --resource-group $resourceGroupName --name $dnsLinkName --zone-name $privateDNSZone \ --virtual-network $virtualNetworkName --registration-enabled FalsePour plus d’informations, consultez la référence de commande az network private-dns link vnet create .
Dans le sous-réseau de point de terminaison privé de votre réseau virtuel, créez un point de terminaison privé pour votre application web principale.
Définissez l’espace réservé
<private-endpoint-name>avec le nom du nouveau point de terminaison privé de votre application web back-end, par exemplezava-backend-endpoint. Définissez l’espace réservé<service-connection-name>sur le nom de la nouvelle connexion de service, par exemplezava-backend-connection.# Define variables for the private endpoint and service connection privateEndpointName=<private-endpoint-name> serviceConnectionName=<service-connection-name> # Get the resource ID of the backend web app resourceId=$(az webapp show --resource-group $resourceGroupName --name $backendAppName --query id --output tsv) # Create the private endpoint for the backend web app by using the resource ID az network private-endpoint create --resource-group $resourceGroupName --name $privateEndpointName --location $regionLocation \ --connection-name $serviceConnectionName --private-connection-resource-id $resourceId \ --group-id sites --vnet-name $virtualNetworkName --subnet $privateEndpointSubnetPour plus d’informations, consultez la référence de commande az network private-endpoint create .
Lier le point de terminaison privé à la zone DNS privé avec un groupe de zones DNS pour le point de terminaison privé de l’application web principale.
Définissez l’espace réservé
<dns-zone-group-name>sur le nom de votre nouveau groupe de zones DNS, par exemplezava-dns-zone-group. Le groupe de zones DNS permet de mettre à jour automatiquement la zone DNS privé lorsque le point de terminaison privé est mis à jour.# Define a variable for the DNS Zone group dnsZoneGroupName=<dns-zone-group-name> # Link the private endpoint to the Private DNS az network private-endpoint dns-zone-group create --resource-group $resourceGroupName --endpoint-name $privateEndpointName \ --name $dnsZoneGroupName --private-dns-zone $privateDNSZone --zone-name $privateDNSZonePour plus d’informations, consultez la référence de commande az network private-endpoint dns-zone-group create .
Vérifiez que l’accès direct à votre point de terminaison privé est refusé.
Lorsque vous créez un point de terminaison privé pour une application App Service, l’accès public est implicitement désactivé. Si vous essayez d’accéder à votre application web principale à l’aide de son URL par défaut, votre accès est refusé.
Dans un navigateur, saisissez l’URL par défaut de votre application web backend, telle que
<backend-app-name>.azurewebsites.net.Le message du navigateur indique que l’accès direct est refusé :
Pour plus d’informations sur les restrictions d’accès App Service avec des points de terminaison privés, consultez Restrictions d’accès Azure App Service.
Configurer l’intégration de virtual network
Après avoir créé l’infrastructure de réseau virtuel, vous pouvez configurer l’intégration de réseau virtuel sur votre application web frontale. L’intégration du réseau virtuel permet au trafic sortant de circuler directement dans le réseau virtuel. Par défaut, seul le trafic IP local défini dans le protocole RFC-1918 > Private Address Space route vers le réseau virtuel. Ce niveau de routage est celui dont vous avez besoin pour activer les points de terminaison privés.
Activez l’intégration de réseau virtuel sur votre application web frontend. La commande suivante suppose que le sous-réseau et l’application web se trouvent dans le même groupe de ressources.
az webapp vnet-integration add --resource-group $resourceGroupName --name $frontendAppName --vnet $virtualNetworkName --subnet $networkIntegrationSubnet
Pour plus d’informations, consultez la référence de la commande az webapp vnet-integration add.
Pour router tout le trafic vers le réseau virtuel, consultez Gérer le routage de l’intégration du réseau virtuel. Le routage de tout le trafic peut également être utilisé si vous souhaitez router le trafic Internet via votre réseau virtuel, par exemple via une Réseau virtuel Azure NAT ou Pare-feu Azure.
Activer le déploiement sur l’application web back-end
Étant donné que votre application web principale n’est pas accessible publiquement, vous devez autoriser votre outil de déploiement continu à atteindre votre application en rendant le site SCM accessible publiquement à partir d’Internet. L’application web principale elle-même peut continuer à refuser tout trafic.
Activez l’accès public pour l’application web back-end.
az webapp update --resource-group $resourceGroupName --name $backendAppName --set publicNetworkAccess=EnabledDéfinissez l’action de règle sans correspondance destinée à l’application web back-end pour refuser tout le trafic.
Ce paramètre refuse l’accès public à l’application web principale, même si le paramètre d’accès général à l’application est défini pour autoriser l’accès public.
az resource update --resource-group $resourceGroupName --name $backendAppName --namespace Microsoft.Web \ --resource-type sites --set properties.siteConfig.ipSecurityRestrictionsDefaultAction=DenyDéfinissez l’action de règle sans correspondance destinée au site SCM pour autoriser tout le trafic.
az resource update --resource-group $resourceGroupName --name $backendAppName --namespace Microsoft.Web \ --resource-type sites --set properties.siteConfig.scmIpSecurityRestrictionsDefaultAction=Allow
Restreindre l’accès FTP et SCM
Étant donné que votre site SCM principal est accessible publiquement, vous devez le verrouiller avec une meilleure sécurité.
Désactivez l’accès FTP pour l’application web frontale et principale :
az resource update --resource-group $resourceGroupName --name ftp --namespace Microsoft.Web \ --resource-type basicPublishingCredentialsPolicies --parent sites/<frontend-app-name> --set properties.allow=false az resource update --resource-group $resourceGroupName --name ftp --namespace Microsoft.Web \ --resource-type basicPublishingCredentialsPolicies --parent sites/<backend-app-name> --set properties.allow=falseDésactivez l’accès d’authentification de base aux ports WebDeploy et aux sites d’outils SCM/avancés pour les deux applications web :
az resource update --resource-group $resourceGroupName --name scm --namespace Microsoft.Web \ --resource-type basicPublishingCredentialsPolicies --parent sites/<frontend-app-name> --set properties.allow=false az resource update --resource-group $resourceGroupName --name scm --namespace Microsoft.Web \ --resource-type basicPublishingCredentialsPolicies --parent sites/<backend-app-name> --set properties.allow=false
Lorsque vous désactivez l’authentification de base sur App Service, vous limitez l’accès aux points de terminaison FTP et SCM aux utilisateurs inscrits auprès de Microsoft Entra ID. Cette action sécurise davantage vos applications. Pour plus d’informations sur la désactivation de l’authentification de base, notamment sur la façon de tester et de surveiller les connexions, consultez Désactivation de l’authentification de base sur App Service.
Configurer le déploiement continu avec GitHub Actions
Pour suivre cette procédure, vous avez besoin de deux applications prêtes à être déployées dans vos applications front-end et back-end App Service. Pour accéder aux applications web, vous avez besoin d’un principal de service et d’un déploiement continu avec GitHub Actions.
Obtenir des applications web pour les tests de déploiement
Les référentiels Azure sur GitHub fournissent des exemples d’applications Node.js pour le déploiement.
Dans un navigateur, accédez à l’application d’exemple Node.js backend.
Scindez le dépôt GitHub afin d'avoir votre propre copie pour apporter des modifications. Cet exemple génère une application « Hello World ». Vous déployez cette application sur votre application web principale.
Répétez le même processus pour l’exemple d’application frontend Node.js.
Scindez le dépôt GitHub afin d'avoir votre propre copie pour apporter des modifications. Cet exemple génère une application web qui extrait et affiche le contenu d’une URL. Vous déployez cette application sur votre application web frontend.
Configurer le principal de service
Vous avez besoin d’un principal de service pour votre application web frontale et votre application web back-end.
Créez un service principal.
Remplacez l’espace réservé
<service-principal-name>par le nom de votre nouveau principal de service, par exemplezava-service-principal.Remplacez les autres
<placeholder>valeurs de paramètre par les informations de vos propres ressources.# Define a variable for the service principal name servicePrincipalName=<service-principal-name> # Link the private endpoint to the Private DNS az ad sp create-for-rbac --name <service-principal-name> --role contributor --scopes \ /subscriptions/<subscription-ID>/resourceGroups/<resource-group>/providers/Microsoft.Web/sites/<frontend-app-name> \ /subscriptions/<subscription-ID>/resourceGroups/<resource-group>/providers/Microsoft.Web/sites/<backend-app-name>La sortie est un objet JSON avec les informations d’identification de l’attribution de rôle qui fournit l’accès à vos applications App Service.
{ "appId": "00001111-aaaa-2222-bbbb-3333cccc4444", "displayName": "<service-principal-name>", "password": "0Aa!1Bb!2Cc!3Dd!4Ee!5Ff!6Gg!7Hh!8Ii!9Jj!", "tenantId": "aaaabbbb-6666-cccc-7777-dddd8888eeee" }Le code JSON inclut votre mot de passe de principal de service, qui est visible uniquement pour l’instant.
Conseil / Astuce
Il est recommandé d’accorder un accès minimal. Dans cet exemple, l’étendue est limitée aux applications, et non à l’ensemble du groupe de ressources.
Copiez l’objet JSON afin d’avoir un enregistrement de votre nom de principal de service.
Transmettez les identifiants de votre principal de service à l’opération de connexion Azure dans votre workflow GitHub Action.
Stockez les informations d’identification en tant que secrets GitHub référencés dans votre flux de travail.
Dans un navigateur, accédez au référentiel dupliqué pour votre application Node.js back-end sur GitHub.
Accédez aux Paramètres>Sécurité>Secrets et variables>Actions.
Sélectionnez Nouveau secret de référentiel et créez un secret pour chacun des paramètres suivants.
Utilisez les valeurs de votre sortie JSON.
Paramètre Valeur Exemple AZURE_CLIENT_ID <application/client-id>00001111-aaaa-2222-bbbb-3333cccc4444AZURE_TENANT_ID <tenant-id>aaaabbbb-6666-cccc-7777-dddd8888eeeeAZURE_SUBSCRIPTION_ID <subscription-id>cccc2c2c-dd3d-ee4e-ff5f-aaaaaa6a6a6aRépétez ce processus pour le référentiel dupliqué pour votre application frontend Node.js sur GitHub.
Configurer le déploiement continu avec GitHub Actions
Vous pouvez configurer un déploiement continu avec GitHub Actions.
Dans le portail Azure, accédez à la page Overview pour votre application web frontale.
Dans le menu de gauche, sélectionnez Déploiement>Centre de déploiement.
Sous l’onglet Settings, définissez l’option Source sur GitHub :
La première fois que vous effectuez un déploiement à partir de GitHub, sélectionnez Autoriser et suivez les invites d’autorisation. Si vous souhaitez effectuer un déploiement à partir d’un autre dépôt d’utilisateur, sélectionnez Changer de compte.
Après avoir autorisé votre compte Azure avec GitHub, sélectionnez le Organization, Repository et Branch pour configurer CI/CD. Si vous ne trouvez pas d'organisation ou de référentiel, vous devrez peut-être activer davantage d'autorisations sur GitHub. Pour plus d’informations, consultez Gérer l’accès utilisateur aux dépôts de votre organisation.
Paramètre Valeur Organisation <your-GitHub-organization>Repository <forked-repository-name>Branche main Sélectionnez Enregistrer.
Répétez ce processus pour votre application web principale et le référentiel dupliqué correspondant.
Valider les connexions et l’accès aux applications
Vous êtes maintenant prêt à vérifier les connexions et l’accès à vos applications web frontend et back-end.
Essayez d’accéder directement à votre application web back-end avec son URL.
https://<backend-app-name>.azurewebsites.netLe message de navigateur suivant doit s’afficher :
Si vous pouvez atteindre l’application, vérifiez votre configuration :
Vérifiez que le point de terminaison privé est correctement configuré.
Vérifiez que les restrictions d’accès pour votre application sont définies pour refuser tout le trafic de l’application web principale.
Essayez maintenant d’accéder directement à votre application web frontend avec son URL.
https://<frontend-app-name>.azurewebsites.netUne fois la connexion établie, la page suivante s’affiche :
Dans la zone URL, entrez l’URL de votre application web principale,
https://<backend-app-name>.azurewebsites.netpuis sélectionnez Fetch.Si vous configurez correctement les connexions, la page s’actualise pour afficher le contenu du message à partir de l’application web principale :
Tout le trafic sortant de l’application web frontale transite par le réseau virtuel. Votre application web front-end se connecte en toute sécurité à votre application web back-end via le point de terminaison privé.
Si un problème se produit avec vos connexions, le message d’erreur 403 - Interdit s’affiche dans la sortie.
Établir une session SSH et ouvrir un interpréteur de commandes distant
Vérifiez que l’application web frontale atteint l’application web principale via la liaison privée à l’aide de SSH pour une instance frontale.
Établissez une session SSH sur le conteneur web de votre application et ouvrez un interpréteur de commandes distant dans votre navigateur :
az webapp ssh --resource-group $resourceGroupName --name $frontendAppNamePour plus d’informations, consultez la référence de commande az webapp ssh .
Une fois l’interpréteur de commandes ouvert dans votre navigateur, vérifiez que votre application web principale est atteinte à l’aide de l’adresse IP privée de votre application web principale.
Dans les commandes suivantes, remplacez les valeurs du paramètre
<placeholder>par celles correspondant à votre propre ressource.Exécutez la commande
nslookup:nslookup <backend-app-name>.azurewebsites.netExécutez à nouveau la
curlcommande pour valider le contenu du site :curl https://<backend-app-name>.azurewebsites.net
La commande
nslookupdoit se résoudre en adresse IP privée de votre application web back-end. L’adresse IP privée doit être une adresse provenant de votre réseau virtuel.Vous pouvez confirmer votre adresse IP privée dans le portail Azure. Accédez à la page Paramètres>Réseau de votre application web back-end.
Répétez les mêmes commandes
nslookupetcurldepuis un autre terminal (qui n’est pas une session SSH sur vos instances frontales).
La
nslookupcommande retourne l’adresse IP publique de l’application web principale. Étant donné que l’accès public à l’application web principale est désactivé, si vous essayez d’atteindre l’adresse IP publique, vous obtenez une erreur d’accès refusée. Cette erreur signifie que le site n’est pas accessible à partir de l’Internet public, qui est le comportement prévu.La
nslookupcommande ne se résout pas vers l’adresse IP privée, car l’adresse est résolvable uniquement à partir du réseau virtuel via la zone DNS privée. Seule l’application web frontale se trouve dans le réseau virtuel. Si vous essayez d’exécuter lacurlcommande sur l’application web principale à partir du terminal externe, le code HTML retourné contient le message d’erreur 403, Interdit - L’application web que vous avez tenté d’atteindre a bloqué votre accès. Certains terminaux affichent également le même code HTML que la page d’erreur retournée lorsque vous tentez d’accéder directement à l’application web principale.
Nettoyer les ressources
Au cours des étapes précédentes, vous avez créé des ressources Azure au sein d’un groupe de ressources. Si vous ne pensez pas avoir besoin de ces ressources à l’avenir, supprimez le groupe de ressources en exécutant la commande suivante dans Cloud Shell.
Remplacez la valeur du <placeholder> paramètre par les informations de votre propre ressource :
az group delete --name <resource-group>
Cette commande peut durer plusieurs minutes.
Forum aux questions
Dans ce tutoriel, vous avez déployé une infrastructure de référence pour prendre en charge une application web sécurisée de niveau N. App Service fournit des fonctionnalités qui peuvent vous aider à vous assurer que vous exécutez des applications qui suivent les meilleures pratiques et recommandations de sécurité.
Cette section contient des réponses aux questions fréquemment posées qui peuvent vous aider à sécuriser davantage vos applications et à déployer et gérer vos ressources en fonction des meilleures pratiques.
Déployer avec d’autres méthodes qu’un principal de service
Dans ce tutoriel, vous avez désactivé l’authentification de base. Vous ne pouvez pas vous authentifier auprès du site SCM principal à l’aide d’un nom d’utilisateur et d’un mot de passe, ou à l’aide d’un profil de publication. Toutefois, plutôt que l’authentification à l’aide d’un principal de service, vous pouvez utiliser les informations d’identification OpenID Connect .
Configurer le déploiement avec GitHub Actions dans App Service
Azure génère automatiquement un fichier de flux de travail dans votre référentiel. Les nouveaux commits du dépôt et de la branche sélectionnés sont déployés en continu sur votre application App Service. Vous pouvez suivre les validations et les déploiements sous l’onglet Logs dans GitHub.
Un fichier de workflow par défaut qui utilise un profil de publication pour s’authentifier sur App Service est ajouté à votre dépôt GitHub. Vous pouvez voir ce fichier en accédant au répertoire <repo-name>/.github/workflows/.
Confirmer l’accès public sécurisé du site SCM principal
Lorsque vous verrouillez l’accès FTP et SCM, vous pouvez vous assurer que seuls les principaux sauvegardés par Microsoft Entra peuvent accéder au point de terminaison SCM, même si le point de terminaison est accessible publiquement. Ce paramètre vous permet de vous assurer que votre application web back-end est toujours sécurisée.
Déployer sans site SCM principal ouvert
Si vous êtes préoccupé par l’activation de l’accès public au site SCM ou si vous avez des restrictions de stratégie, envisagez d’autres options de déploiement App Service comme l’exécution à partir d’un package ZIP.
Déployer cette architecture avec un modèle
Les ressources que vous avez créées dans ce didacticiel peuvent être déployées à l’aide d’un modèle Azure Resource Manager (modèle ARM) ou d’un modèle Bicep. L’application connectée à un fichier Bicep d’application web back-end vous permet de créer une solution d’application multiniveau sécurisée.
Pour savoir comment déployer des modèles ARM et Bicep, consultez Déployer des fichiers Bicep avec le Azure CLI.