Configurer App Service avec Application Gateway

Application Gateway vous permet d’avoir une application App Service ou un autre service multilocataire en tant que membre du pool back-end. Dans cet article, vous allez apprendre à configurer une application App Service avec Application Gateway. La configuration pour Application Gateway varie en fonction du mode d’accès à App Service :

  • La première option repose sur l’utilisation d’un domaine personnalisé dans Application Gateway et App Service au niveau du back-end.
  • La deuxième option consiste à faire utiliser le domaine par défaut à Application Gateway (dont le suffixe est « .azurewebsites.net ») pour accéder à App Service.

Cette configuration est recommandée pour les scénarios de niveau production et respecte le principe de pas modifier le nom d’hôte dans le flux de requête. Vous devez disposer d’un domaine personnalisé (et du certificat associé) pour éviter d’avoir à utiliser le domaine « .azurewebsites » par défaut.

En associant le même nom de domaine à Application Gateway et App Service dans le pool back-end, le flux de requête n’a pas besoin de remplacer le nom d’hôte. L’application web back-end voit alors l’hôte d’origine tel qu’il était utilisé par le client.

Scenario overview for Application Gateway to App Service using the same custom domain for both

Cet article porte sur les points suivants :

  • Configurer DNS
  • Ajouter App Service en tant que pool back-end à Application Gateway
  • Configurer les paramètres HTTP pour la connexion à App Service
  • Configurer un écouteur HTTP
  • Créer une règle de routage de requête

Prérequis

Configuration du système DNS

Dans le contexte de ce scénario, DNS est pertinent à deux endroits :

  • Le nom DNS, que l’utilisateur ou le client utilise pour Application Gateway et ce qui apparaît dans un navigateur
  • Le nom DNS, dont se sert en interne Application Gateway pour accéder à App Service au niveau du back-end

Routez l’utilisateur ou le client vers Application Gateway en utilisant le domaine personnalisé. Configurez DNS en utilisant un alias CNAME pointant vers le DNS d’Application Gateway. L’adresse DNS d’Application Gateway figure dans la page de présentation de l’adresse IP publique associée. Vous pouvez aussi créer un enregistrement A pointant directement vers l’adresse IP. (Dans le cas d’Application Gateway V1, l’adresse IP virtuelle peut changer si vous arrêtez et démarrez le service, ce qui rend cette option indésirable.)

App Service doit être configuré de façon à accepter le trafic en provenance d’Application Gateway en utilisant le nom de domaine personnalisé comme hôte entrant. Pour plus d’informations sur la façon de mapper un domaine personnalisé à App Service, consultez Tutoriel : Mapper un nom DNS personnalisé existant à Azure App Service. Pour vérifier le domaine, App Service exige uniquement l’ajout d’un enregistrement TXT. Les enregistrements CNAME ou A n’ont pas besoin d’être modifiés. La configuration DNS du domaine personnalisé reste dirigée vers Application Gateway.

Pour accepter les connexions à App Service via HTTP, configurez sa liaison TLS. Pour plus d’informations, consultez Sécuriser un nom DNS personnalisé avec une liaison TLS/SSL dans Azure App Service. Configurez App Service pour extraire le certificat du domaine personnalisé auprès d’Azure Key Vault.

Ajouter un service d’application comme pool de back-ends

  1. Sur le portail Azure, sélectionnez votre passerelle Application Gateway.

  2. Sous Pools principaux, sélectionnez le pool principal.

  3. Sous Type de cible, sélectionnez App Services.

  4. Sous Cible, sélectionnez votre App Service.

    App service backend

    Remarque

    Le menu déroulant ne renseigne que les services d’application figurant dans le même abonnement que votre Application Gateway. Si vous voulez utiliser un service d’application qui relève d’un autre abonnement que celui où se trouve Application Gateway, au lieu de choisir App Services dans le menu déroulant Cibles, choisissez l’option Adresse IP ou nom d’hôte, puis entrez le nom d'hôte (example.azurewebsites.net) du service d’application.

  5. Sélectionnez Enregistrer.

Modifier les paramètres HTTP pour App Service

Un paramètre HTTP est nécessaire pour donner instruction à Application Gateway d’accéder au back-end App Service en utilisant le nom de domaine personnalisé. Par défaut, le paramètre HTTP utilise la sonde d’intégrité par défaut. Alors que les sondes d’intégrité par défaut transfèrent les requêtes avec le nom d’hôte dans lequel le trafic est reçu, les sondes d’intégrité utilisent 127.0.0.1 comme nom d’hôte pour le pool de back-ends, car aucun nom d’hôte n’a été explicitement défini. Pour cette raison, vous devez créer une sonde d’intégrité personnalisée configurée avec le nom de domaine personnalisé approprié en guise de nom d’hôte.

Nous nous connecterons au back-end en utilisant HTTPS.

  1. Sous Paramètres HTTP, sélectionnez un paramètre HTTP existant ou ajoutez-en un nouveau.
  2. Attribuez un nom au paramètre HTTP que vous créez
  3. Sélectionnez HTTPS comme protocole back-end souhaité en utilisant le port 443
  4. Si le certificat est signé par une autorité connue, sélectionnez « Oui » pour « Certificat d’autorité de certification connu de l’utilisateur ». Vous pouvez aussi Ajouter des certificats racines d’authentification/approuvés pour les serveurs back-end
  5. Veillez à définir « Remplacer par le nouveau nom d’hôte » sur « Non »
  6. Sélectionnez la sonde d’intégrité HTTPS personnalisée dans la liste déroulante « Sonde personnalisé ».

Configure H T T P Settings to use custom domain towards App Service backend using No Override

Configurer un écouteur HTTP

Pour accepter le trafic, nous devons configurer un écouteur. Pour plus d’informations sur la question, consultez Configuration des écouteurs Application Gateway.

  1. Ouvrez la section « Écouteurs » et choisissez « Ajouter un écouteur », ou cliquez sur un écouteur existant pour le modifier
  2. S’il s’agit d’un nouvel écouteur, donnez-lui un nom
  3. Sous « Adresse IP du front-end », sélectionnez l’adresse IP à écouter
  4. Sous « Port », sélectionnez 443
  5. Sous « Protocole », sélectionnez « HTTPS »
  6. Sous « Choisir un certificat », sélectionnez « Choisir un certificat à partir de Key Vault ». Pour plus d’informations, consultez Utilisation de Key Vault où vous trouverez des informations sur la façon d’attribuer une identité managée et de la doter de droits d’accès à votre coffre de clés.
    1. Attribuez un nom au certificat
    2. Sélectionnez l’identité managée
    3. Sélectionner le coffre de clés dans lequel récupérer le certificat
    4. Sélectionner le certificat
  7. Sous « Type d’écouteur », sélectionnez « De base »
  8. Cliquez sur « Ajouter » pour ajouter l’écouteur

Add a listener for H T T P S traffic

Configurer une règle de routage des demandes

Avec le pool back-end et des paramètres HTTP configurés précédemment, la règle de routage des demandes peut être configurée de façon à accepter le trafic d’un écouteur et à le router vers le pool back-end en utilisant les paramètres HTTP. Pour cela, vérifiez que vous disposez d’un écouteur HTTP ou HTTPS et qu’il n’est pas déjà lié à une règle de routage existante.

  1. Sous « Règles », cliquez pour ajouter une nouvelle « Règle de routage des demandes »
  2. Attribuez un nom à la règle
  3. Sélectionnez un écouteur HTTP ou HTTPS qui n’est pas encore lié à une règle de routage existante
  4. Sous « Cibles de back-end », choisissez le pool back-end dans lequel App Service a été configuré
  5. Configurez les paramètres HTTP avec lesquels Application Gateway doit se connecter au back-end App Service
  6. Sélectionnez « Ajouter » pour enregistrer cette configuration

Add a new Routing rule from the listener to the App Service Backend Pool using the configured H T T P Settings

Test

Avant de commencer, vérifiez que l’état du back-end est sain :

Ouvrez la section « Intégrité principale » et vérifiez que la colonne « État » indique « Sain » à la fois pour le paramètre HTTP et pour le pool back-end.

Check backend health in Azure portal

À présent, accédez à l’application web en utilisant le domaine personnalisé que vous avez associé à Application Gateway et à App Service au niveau du back-end.

Restriction de l’accès

Les applications web déployées dans ces exemples utilisent des adresses IP publiques qui sont accessibles directement à partir d’Internet. La résolution des problèmes s’en trouve facilitée quand vous découvrez une nouvelle fonctionnalité et essayez de nouvelles choses. Mais si vous prévoyez de déployer une fonctionnalité sur l’environnement de production, l’ajout de restrictions peut vous sembler approprié. Considérez les options suivantes :