Konfigurieren von App Service mit Application Gateway

Mit Application Gateway können Sie eine App Service-App oder einen anderen mehrinstanzenfähigen Dienst als Back-End-Poolmitglied einrichten. In diesem Artikel erfahren Sie, wie Sie eine App Service-App mit Application Gateway konfigurieren. Die Konfiguration für Application Gateway hängt davon ab, wie auf App Service zugegriffen wird:

  • Bei der ersten Option wird sowohl für Application Gateway als auch für App Service im Back-End eine benutzerdefinierte Domäne verwendet.
  • Die zweite Option besteht darin, dass Application Gateway mithilfe der Standarddomäne, die den Suffix „.azurewebsites.net“ aufweist, auf App Service zugreift.

Diese Konfiguration wird für Produktionsszenarien empfohlen und entspricht der Praxis, den Hostnamen im Anforderungsfluss nicht zu ändern. Sie müssen über eine benutzerdefinierte Domäne (und ein zugehöriges Zertifikat) verfügen, damit Sie nicht auf die Standarddomäne „.azurewebsites“ angewiesen sind.

Durch Zuordnung des gleichen Domänennamens zu Application Gateway und App Service im Back-End-Pool muss der Anforderungsflow den Hostnamen nicht außer Kraft setzen. Die Back-End-Webanwendung sieht den ursprünglichen Host so wie er vom Client verwendet wurde.

Szenarioübersicht: Application Gateway und App Service, für die beide die gleiche benutzerdefinierte Domäne verwendet wird

In diesem Artikel lernen Sie Folgendes:

  • Konfigurieren des DNS
  • Hinzufügen von App Service als Back-End-Pool zu Application Gateway
  • Konfigurieren von HTTP-Einstellungen für die Verbindung mit App Service
  • Konfigurieren eines HTTP-Listeners
  • Konfigurieren einer Anforderungsroutingregel

Voraussetzungen

Konfigurieren des DNS

Im Kontext dieses Szenarios ist das DNS an zwei Stellen relevant:

  • Beim DNS-Namen, den der Benutzer oder Client für Application Gateway verwendet und der in einem Browser angezeigt wird
  • Beim DNS-Namen, den Application Gateway intern verwendet, um auf App Service im Back-End zuzugreifen

Leiten Sie den Benutzer oder Client mithilfe der benutzerdefinierten Domäne an Application Gateway weiter. Richten Sie das DNS mithilfe eines CNAME-Alias ein, der auf das DNS für Application Gateway zeigt. Die DNS-Adresse von Application Gateway wird auf der Übersichtsseite der zugehörigen öffentlichen IP-Adresse angezeigt. Alternativ können Sie einen A-Eintrag erstellen, der direkt auf die IP-Adresse verweist. (Bei Application Gateway V1 kann sich die VIP ändern, wenn Sie den Dienst beenden und starten, weshalb diese Option unerwünscht ist.)

App Service sollte so konfiguriert sein, dass Datenverkehr von Application Gateway mithilfe des benutzerdefinierten Domänennamens als eingehender Host akzeptiert wird. Weitere Informationen zum Zuordnen einer benutzerdefinierten Domäne zu App Service finden Sie unter Tutorial: Zuordnen eines vorhandenen benutzerdefinierten DNS-Namens zu Azure App Service. Um die Domäne zu überprüfen, muss App Service nur ein TXT-Eintrag hinzugefügt werden. Für CNAME- oder A-Einträge ist keine Änderung erforderlich. Die DNS-Konfiguration für die benutzerdefinierte Domäne bleibt auf Application Gateway ausgerichtet.

Konfigurieren Sie die TLS-Bindung, um Verbindungen mit App Service über HTTPS zu akzeptieren. Weitere Informationen finden Sie unter Schützen eines benutzerdefinierten DNS-Namens mit einer TLS/SSL-Bindung in Azure App Service. Konfigurieren Sie App Service, um einen Pull für das Zertifikat für die benutzerdefinierte Domäne aus Azure Key Vault auszuführen.

Hinzufügen eines App-Diensts als Back-End-Pool

  1. Wählen Sie im Azure-Portal Ihre Application Gateway-Instanz aus.

  2. Wählen Sie unter Back-End-Poolsden Back-End-Pool aus.

  3. Wählen Sie unter Zieltyp die Option App Services aus.

  4. Wählen Sie unter Ziel Ihren App Service aus.

    Screenshot: App-Dienst-Backend

    Hinweis

    Die Dropdownliste wird nur mit den App Services aufgefüllt, die sich unter demselben Abonnement wie Ihr Application Gateway befinden. Wenn Sie eine App Service-Instanz verwenden möchten, die sich unter einem anderen Abonnement als dem Abonnement von Application Gateway befindet, sollten Sie anstelle von App Services in der Dropdownliste Ziele die Option IP-Adresse oder Hostname wählen und den Hostnamen der App Service-Instanz eingeben (z. B. „example.azurewebsites.net“).

  5. Wählen Sie Speichern.

Bearbeiten von HTTP-Einstellungen für App Service

Eine HTTP-Einstellung ist erforderlich, die Application Gateway anweist, mithilfe des benutzerdefinierten Domänennamens auf das App Service-Back-End zuzugreifen. Die HTTP-Einstellung verwendet standardmäßig den Standardintegritätstest. Während Standardintegritätstests Anforderungen mit dem Hostnamen weiterleiten, unter dem Datenverkehr empfangen wird, verwenden die Integritätstests 127.0.0.1 als Hostnamen für den Back-End-Pool, da nicht explizit ein Hostname definiert wurde. Aus diesem Grund müssen Sie zunächst einen benutzerdefinierten Integritätstest erstellen, der mit dem richtigen benutzerdefinierten Domänennamen als Hostnamen konfiguriert ist.

Wir stellen über HTTPS eine Verbindung mit dem Back-End her.

  1. Wählen Sie unter HTTP-Einstellungen eine vorhandene HTTP-Einstellung aus oder fügen Sie eine neue hinzu.
  2. Wenn Sie eine neue HTTP-Einstellung erstellen, geben Sie ihr einen Namen.
  3. Wählen Sie HTTPS als gewünschtes Back-End-Protokoll mit Port 443 aus.
  4. Wenn das Zertifikat von einer bekannten Zertifizierungsstelle signiert wurde, klicken Sie bei „Dem Benutzer bekanntes Zertifizierungsstellenzertifikat“ auf „Ja“. Fügen Sie alternativ Authentifizierungs- bzw. vertrauenswürdige Stammzertifikate von Back-End-Servern hinzu, wie hier beschrieben wird.
  5. Stellen Sie sicher, dass „Mit neuem Hostnamen außer Kraft setzen“ auf „Nein“ festgelegt ist.
  6. Wählen Sie in der Dropdownliste „Benutzerdefinierter Test“ den benutzerdefinierten HTTPS-Integritätstest aus.

Konfigurieren von HTTP-Einstellungen zur Verwendung einer benutzerdefinierten Domäne für das App Service-Back-End ohne Außerkraftsetzung

Konfigurieren eines HTTP-Listeners

Um Datenverkehr zu akzeptieren, muss ein Listener konfiguriert werden. Weitere Informationen finden Sie unter Konfiguration des Application Gateway-Listeners.

  1. Öffnen Sie den Abschnitt „Listener“ und klicken Sie auf „Listener hinzufügen“ oder klicken Sie auf einen vorhandenen Listener, um diesen zu bearbeiten.
  2. Für einen neuen Listener: Geben Sie ihm einen Namen.
  3. Wählen Sie unter „Front-End-IP“ die IP-Adresse aus, an der gelauscht werden soll.
  4. Wählen Sie unter „Port“ die Option „443“ aus.
  5. Aktivieren Sie unter „Protokoll“ die Option „HTTPS“.
  6. Aktivieren Sie unter „Zertifikat auswählen“ die Option „Zertifikat aus Key Vault auswählen“. Weitere Informationen finden Sie unter Verwenden von Key Vault. Dort finden Sie weitere Informationen zum Zuweisen einer verwalteten Identität und Ausstatten mit Rechten für Ihre Key Vault-Instanz.
    1. Benennen Sie das Zertifikat.
    2. Wählen Sie die verwaltete Identität aus.
    3. Wählen Sie die Key Vault-Instanz aus, aus der das Zertifikat abgerufen werden soll.
    4. Auswählen des Zertifikats
  7. Wählen Sie unter „Listenertyp“ die Option „Grundlegend“ aus.
  8. Klicken Sie auf „Hinzufügen“, um den Listener hinzuzufügen.

Hinzufügen eines Listeners für HTTPS-Datenverkehr

Konfigurieren einer Anforderungsroutingregel

Die Anforderungsroutingregel, die mit dem zuvor konfigurierten Back-End-Pool und dem HTTP-Einstellungen bereitgestellt wurde, kann so eingerichtet werden, dass Datenverkehr von einem Listener an den Back-End-Pool mithilfe der HTTP-Einstellungen weitergeleitet wird. Stellen Sie hierzu sicher, dass ein HTTP- oder HTTPS-Listener verfügbar ist, der nicht bereits an eine vorhandene Routingregel gebunden ist.

  1. Klicken Sie unter „Regeln“ auf „Anforderungsroutingregel“, um eine neue hinzuzufügen.
  2. Geben Sie einen Namen für die Regel an.
  3. Wählen Sie einen HTTP- oder HTTPS-Listener aus, der noch nicht an eine vorhandene Routingregel gebunden ist.
  4. Wählen Sie unter „Back-End-Ziele“ den Back-End-Pool aus, in dem App Service konfiguriert wurde.
  5. Konfigurieren Sie die HTTP-Einstellungen, mit denen Application Gateway eine Verbindung mit dem App Service-Back-End herstellen soll.
  6. Klicken Sie auf „Hinzufügen“, um diese Konfiguration zu speichern.

Hinzufügen einer neuen Routingregel vom Listener zum App Service-Back-End-Pool mithilfe der konfigurierten HTTP-Einstellungen

Testen

Stellen Sie vorher sicher, dass die Back-End-Integrität als fehlerfrei angezeigt wird:

Öffnen Sie den Abschnitt „Back-End-Integrität“ und stellen Sie sicher, dass die Spalte „Status“ die Kombination für HTTP-Einstellung und Back-End-Pool als „Fehlerfrei“ angibt.

Überprüfen der Back-End-Integrität im Azure-Portal

Navigieren Sie nun zur Webanwendung mithilfe der benutzerdefinierten Domäne, die Sie sowohl Application Gateway als auch App Service im Back-End zugeordnet haben.

Beschränken des Zugriffs

Die in diesen Beispielen bereitgestellten Web-Apps verwenden öffentliche IP-Adressen, auf die aus dem Internet direkt zugegriffen werden kann. Es hilft bei der Problembehandlung, wenn Sie von einem neuen Feature erfahren und neue Dinge ausprobieren. Wenn Sie jedoch ein Feature in einer Produktionsumgebung bereitstellen möchten, ist es sinnvoll, stärkere Einschränkungen vorzusehen. Ziehen Sie folgende Möglichkeiten in Betracht:

  • Konfigurieren Sie Auf Dienstendpunkten basierende Zugriffseinschränkungsregeln. Dadurch können Sie den eingehenden Zugriff auf die App sperren, um sicherzustellen, dass die Quelladresse von Application Gateway stammt.
  • Verwenden Sie Statische Azure App Service-IP-Einschränkungen. Beispielsweise können Sie die Web-App so einschränken, dass sie nur Datenverkehr vom Anwendungsgateway empfängt. Verwenden Sie die IP-Einschränkungsfunktion von App Service, um die Anwendungsgateway-VIP als einzige Adresse aufzulisten, auf die zugegriffen werden kann.