Integrieren Ihrer ILB-App Service-Umgebung in ein Azure Application Gateway

Die Azure App Service-Umgebung ist eine Bereitstellung von Azure App Service in einem Subnetz im virtuellen Azure-Netzwerk eines Kunden. Sie kann für den App-Zugriff über einen externen oder internen Endpunkt bereitgestellt werden. Die Bereitstellung der App Service-Umgebung mit einem internen Endpunkt wird als ILB-ASE (App Service-Umgebung mit internem Lastenausgleich) bezeichnet.

Web Application Firewalls tragen zum Schutz Ihrer Webanwendungen bei, indem sie eingehenden Webdatenverkehr untersuchen und die Einschleusung von SQL-Befehlen, websiteübergreifendes Scripting, das Hochladen von Schadsoftware sowie DDoS-Angriffe und andere Angriffe unterbinden. Sie können ein WAF-Gerät aus Azure-Marketplace oder das Azure Application Gateway verwenden.

Das Azure Application Gateway ist eine virtuelle Anwendung, die Lastenausgleich in Schicht 7, TLS/SSL-Abladung und WAF-Schutz (Web Application Firewall) bietet. Es kann eine öffentliche IP-Adresse überwachen und Datenverkehr an Ihren Anwendungsendpunkt routen. In den folgenden Informationen wird die Vorgehensweise beim Integrieren eines WAF-konfigurierten Anwendungsgateways mit einer App in einer ILB-App Service-Umgebung beschrieben.

Die Integration des Anwendungsgateways mit der ILB-App Service-Umgebung erfolgt auf App-Ebene. Wenn Sie das Anwendungsgateway mit der ILB-App Service-Umgebung konfigurieren, erfolgt dies für bestimmte Apps in Ihrer ILB-App Service-Umgebung. Dieses Verfahren ermöglicht es, sichere mehrinstanzenfähige Anwendungen in einer einzelnen ILB-App Service-Umgebung zu hosten.

Screenshot of High level integration diagram

In dieser exemplarischen Vorgehensweise führen Sie folgende Aktionen aus:

  • Erstellen eines Azure Application Gateways.
  • Konfigurieren des Anwendungsgateways zum Verweisen auf eine App in Ihrer ILB-App Service-Umgebung
  • Bearbeiten des öffentlichen DNS-Hostnamens, der auf Ihr Application Gateway verweist

Voraussetzungen

Sie benötigen Folgendes, um Ihr Anwendungsgateway in die ILB-App Service-Umgebung zu integrieren:

  • Eine ILB-App Service-Umgebung
  • Eine private DNS-Zone für die ILB-App Service Umgebung
  • Eine App, die in der ILB-App Service-Umgebung ausgeführt wird
  • Einen öffentlichen DNS-Namen, über den später auf Ihr Anwendungsgateway verwiesen wird
  • Wenn Sie TLS/SSL-Verschlüsselung für das Anwendungsgateway verwenden müssen, benötigen Sie ein gültiges öffentliches Zertifikat, das zum Binden an Ihr Anwendungsgateway verwendet wird.

Eine ILB-App Service-Umgebung

Ausführliche Informationen zum Erstellen einer ILB-App Service-Umgebung finden Sie unter Erstellen einer ASE im Azure-Portal und Erstellen einer ASE mit einer ARM-Vorlage.

  • Nachdem die ILB-ASE erstellt wurde, lautet die Standarddomäne <YourAseName>.appserviceenvironment.net.

    Screenshot of ILB ASE Overview

  • Ein interner Lastenausgleich (ILB) wird für den eingehenden Zugriff bereitgestellt. Sie können die eingehende Adresse in den IP-Adressen unter den ASE-Einstellungen überprüfen. Sie können später eine private DNS-Zone erstellen, die dieser IP-Adresse zugeordnet wird.

    Screenshot of getting the inbound address from ILB ASE IP addresses settings.

Eine private DNS-Zone

Sie benötigen eine private DNS-Zone für die interne Namensauflösung. Erstellen Sie diese mithilfe des ASE-Namens und der in der folgenden Tabelle gezeigten Datensätze (Anweisungen finden Sie im Schnellstart: Erstellen einer privaten Azure DNS-Zone über das Azure-Portal).

Name type Wert
* Ein Eingangsadresse der ASE
@ A Eingangsadresse der ASE
@ SOA DNS-Name der ASE
*.scm A Eingangsadresse der ASE

App Service in der ILB-ASE

Sie müssen einen App Service-Plan und eine App in Ihrer ILB-ASE erstellen. Wählen Sie beim Erstellen der App im Portal Ihre ILB-ASE als Region aus.

Ein öffentlicher DNS-Name für das Anwendungsgateway

Um über das Internet eine Verbindung mit dem Anwendungsgateway herzustellen, benötigen Sie einen routingfähigen Domänennamen. In diesem Fall wurde der routingfähige Domänenname asabuludemo.com verwendet, und es ist geplant, eine Verbindung mit einer App Service-Instanz mit dem Domänennamen app.asabuludemo.com herzustellen. Die IP-Adresse, die diesem App-Domänennamen zugeordnet ist, muss auf die öffentliche IP-Adresse des Anwendungsgateways festgelegt werden, nachdem das Anwendungsgateway erstellt wurde. Wenn dem Anwendungsgateway eine öffentliche Domäne zugeordnet ist, müssen Sie in App Service keine benutzerdefinierte Domäne konfigurieren. Sie können mit App Service-Domänen einen benutzerdefinierten Domänennamen erwerben.

Ein gültiges öffentliches Zertifikat

Zur Verbesserung der Sicherheit wird empfohlen, ein TLS/SSL-Zertifikat für die Sitzungsverschlüsselung zu binden. Zum Binden eines TLS/SSL-Zertifikats an das Anwendungsgateway ist ein gültiges öffentliches Zertifikat mit den folgenden Informationen erforderlich. Sie können mit App Service Certificate ein TLS/SSL-Zertifikat erwerben und im PFX-Format exportieren.

Name Wert BESCHREIBUNG
Allgemeiner Name <yourappname>.<yourdomainname>, z. B.: app.asabuludemo.com
oder *.<yourdomainname>, z. B.: *.asabuludemo.com
Ein Standardzertifikat oder ein Platzhalterzertifikat für das Anwendungsgateway
Alternativer Antragstellername <yourappname>.scm.<yourdomainname>, z. B.: app.scm.asabuludemo.com
oder *.scm.<yourdomainname>, z. B.: *.scm.asabuludemo.com
Das SAN, das das Herstellen einer Verbindung mit App Service-Kudu-Dienst ermöglicht. Dies ist eine optionale Einstellung, wenn Sie den App Service-Kudu-Dienst nicht im Internet veröffentlichen möchten.

Die Zertifikatsdatei sollte einen privaten Schlüssel aufweisen und im PFX-Format gespeichert werden. Sie wird später in das Anwendungsgateway importiert.

Erstellen eines Anwendungsgateways

Informationen zur grundlegenden Erstellung des Anwendungsgateways finden Sie im Tutorial: Erstellen eines Anwendungsgateways mit Web Application Firewall über das Azure-Portal.

In diesem Tutorial wird das Azure-Portal verwendet, um ein Anwendungsgateway mit einer ILB-App Service-Umgebung zu erstellen.

Wählen Sie im Azure-Portal Neu>Netzwerk>Anwendungsgateway aus, um ein Anwendungsgateway zu erstellen.

  1. Grundlegende Einstellungen

    In der Dropdownliste Tarif können Sie Standard V2 oder WAF V2 auswählen, um das WAF-Feature auf dem Anwendungsgateway zu aktivieren.

  2. Front-End-Einstellung

    Wählen Sie als Front-End-IP-Adresstyp eine der Optionen Öffentlich, Privat oder Beide aus. Wenn Sie Privat oder Beide festlegen, müssen Sie eine statische IP-Adresse im Subnetzbereich des Anwendungsgateways zuweisen. In diesem Fall wird nur für den öffentlichen Endpunkt eine öffentliche IP-Adresse festgelegt.

    • Öffentliche IP-Adresse: Sie müssen eine öffentliche IP-Adresse für den öffentlichen Zugriff auf das Anwendungsgateway zuordnen. Notieren Sie sich diese IP-Adresse. Sie müssen Ihrem DNS-Dienst später einen Eintrag hinzufügen.

      Screenshot of getting a public IP address from the application gateway frontends setting.

  3. Back-End-Einstellung

    Geben Sie einen Back-End-Poolnamen ein, und wählen Sie als Zieltyp die Option App Services oder IP-Adresse oder FQDN aus. In diesem Fall legen wird App Services festgelegt und der App Service-Name aus der Dropdownliste für das Ziel ausgewählt.

    Screenshot of adding a backend pool name in backends setting.

  4. Konfigurationseinstellung

    Unter der Einstellung Konfiguration müssen Sie eine Routingregel hinzufügen, indem Sie das Symbol Routingregel hinzufügen auswählen.

    Screenshot of adding a routing rule in configuration setting.

    Sie müssen in einer Routingregel einen Listener und Back-End-Ziele konfigurieren. Sie können einen HTTP-Listener für die Bereitstellung des Proof of Concept (Machbarkeitsnachweis) oder einen HTTPS-Listener zur Steigerung der Sicherheit hinzufügen.

    • Um für Verbindungen mit dem Anwendungsgateway HTTP zu verwenden, können Sie einen Listener mit den folgenden Einstellungen erstellen:

      Parameter Wert BESCHREIBUNG
      Regelname Beispiel: http-routingrule Routingname
      Name des Listeners Beispiel: http-listener Name des Listeners
      Front-End-IP Öffentlich Legen Sie für Internetzugriff „Öffentlich“ fest.
      Protocol HTTP Verwenden Sie keine TLS/SSL-Verschlüsselung.
      Port 80 Standard-HTTP-Port
      Listenertyp Mehrere Standorte Lassen Sie das Lauschen an mehreren Standorten auf dem Anwendungsgateway zu.
      Hosttyp Mehrere/Platzhalter Die Festlegung auf mehrere Websitenamen oder Platzhalter wird empfohlen, wenn der Listenertyp auf mehrere Standorte festgelegt ist.
      Hostname Beispiel: app.asabuludemo.com Legen Sie für App Service einen routingfähigen Domänennamen fest.

      Screenshot of HTTP Listener of the application gateway Routing Rule.

    • Um für Verbindungen mit dem Anwendungsgateway die TLS/SSL-Verschlüsselung zu verwenden, können Sie einen Listener mit den folgenden Einstellungen erstellen:

      Parameter Wert BESCHREIBUNG
      Regelname Beispiel: https-routingrule Routingname
      Name des Listeners Beispiel: https-listener Name des Listeners
      Front-End-IP Öffentlich Legen Sie für Internetzugriff „Öffentlich“ fest.
      Protocol HTTPS Verwenden Sie TLS/SSL-Verschlüsselung.
      Port 443 Standard-HTTPS-Port
      HTTPS-Einstellungen Hochladen eines Zertifikats Laden Sie ein Zertifikat mit dem CN und dem privaten Schlüssel im PFX-Format hoch.
      Listenertyp Mehrere Standorte Lassen Sie das Lauschen an mehreren Standorten auf dem Anwendungsgateway zu.
      Hosttyp Mehrere/Platzhalter Die Festlegung auf mehrere Websitenamen oder Platzhalter wird empfohlen, wenn der Listenertyp auf mehrere Standorte festgelegt ist.
      Hostname Beispiel: app.asabuludemo.com Legen Sie für App Service einen routingfähigen Domänennamen fest.

      HTTPS listener of the application gateway Routing Rule.

    • Sie müssen den Back-End-Pool und die HTTP-Einstellungen in den Back-End-Zielen konfigurieren. Der Back-End-Pool wurde in den vorherigen Schritten konfiguriert. Wählen Sie den Link Neu hinzufügen aus, um eine HTTP-Einstellung hinzuzufügen.

      Screenshot of adding new link to add an H T T P setting.

    • Im Folgenden sind die HTTP-Einstellungen aufgeführt:

      Parameter Wert BESCHREIBUNG
      Name der HTTP-Einstellung Beispiel: https-setting Name der HTTP-Einstellung
      Back-End-Protokoll HTTPS Verwenden Sie TLS/SSL-Verschlüsselung.
      Back-End-Port 443 Standard-HTTPS-Port
      Zertifikat einer bekannten Zertifizierungsstelle verwenden Ja Der Standarddomänenname der ILB-ASE lautet .appserviceenvironment.net und das Zertifikat dieser Domäne wird von einer öffentlichen vertrauenswürdigen Stammzertifizierungsstelle ausgestellt. In der Einstellung „Vertrauenswürdiges Stammzertifikat“ können Sie festlegen, dass ein bekanntes vertrauenswürdiges Zertifizierungsstellen-Stammzertifikat verwendet wird.
      Mit neuem Hostnamen überschreiben Ja Der Hostnamenheader wird beim Herstellen einer Verbindung mit der App in der ILB-ASE überschrieben.
      Hostnamen außer Kraft setzen Hostnamen aus Back-End-Ziel auswählen Wenn Sie den Back-End-Pool auf App Service festlegen, können Sie den Host am Back-End-Ziel auswählen.
      Benutzerdefinierte Tests erstellen Nein Verwenden Sie den Standardintegritätstest.

      Screenshot of **Add an H T T P setting** dialog.

Konfigurieren einer Anwendungsgatewayintegration mit einer ILB-ASE

Um über das Anwendungsgateway auf die ILB-ASE zuzugreifen, müssen Sie überprüfen, ob ein virtuelles Netzwerk mit der privaten DNS-Zone verknüpft ist. Wenn kein virtuelles Netzwerk mit dem VNet Ihres Anwendungsgateways verknüpft ist, fügen Sie mit den folgenden Schritten eine Verknüpfung mit dem virtuellen Netzwerk hinzu.

  • Um eine Verknüpfung des virtuellen Netzwerks mit einer privaten DNS-Zone zu konfigurieren, wechseln Sie zum Konfigurationsbereich der privaten DNS-Zone. Wählen Sie VNET-Verknüpfungen>Hinzufügen aus.

Add a virtual network link to private DNS zone.

  • Geben Sie den Linknamen ein, und wählen Sie das entsprechende Abonnement und virtuelle Netzwerk aus, in dem sich das Anwendungsgateway befindet.

Screenshot of input link name details to virtual network links setting in private DNS zone.

  • Sie können den Back-End-Integritätsstatus unter Back-End-Integrität im Bereich des Anwendungsgateways überprüfen.

Screenshot of confirm the backend health status from backend health.

Hinzufügen eines öffentlichen DNS-Eintrags

Sie müssen eine ordnungsgemäße DNS-Zuordnung konfigurieren, wenn Sie über das Internet auf das Anwendungsgateway zugreifen.

  • Die öffentliche IP-Adresse des Anwendungsgateways finden Sie im Bereich des Anwendungsgateways unter Front-End-IP-Konfigurationen.

Application gateway frontend IP address can be found in Frontend IP configuration.

  • Verwenden Sie den Azure DNS-Dienst als Beispiel. Sie können einen Datensatz hinzufügen, um den App-Domänennamen der öffentlichen IP-Adresse des Anwendungsgateways zuzuordnen.

Screenshot of adding a record set to map the app domain name to the public IP address of the application gateway.

Überprüfen der Verbindung

  • Sie können auf einem Computer mit Internetzugriff die Namensauflösung für den App-Domänennamen mit der öffentlichen IP-Adresse des Anwendungsgateways überprüfen.

validate the name resolution from a command prompt.

  • Testen Sie auf einem Computer mit Internetzugriff den Webzugriff über einen Browser.

Screenshot of opening a browser, access to the web.