Teilen über


Konfigurieren von App Service mit Application Gateway

Mit azure Application Gateway können Sie über eine App Service-App oder einen anderen Mehrinstanzendienst als Back-End-Poolmitglied verfügen. In diesem Artikel erfahren Sie, wie Sie eine App Service-App mit Application Gateway konfigurieren. Die Konfiguration für das Anwendungsgateway unterscheidet sich je nachdem, wie auf den App-Dienst zugegriffen werden kann:

  • 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 das Anwendungsgateway auf den App-Dienst über dessen Standarddomäne ".azurewebsite.net" 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 zugeordnetes Zertifikat) verfügen, um zu vermeiden, dass Sie sich auf die Standardeinstellung "verlassen müssen. Azurewebsite"-Domäne.

Der gleiche Domänenname für sowohl das Application Gateway als auch den App Service im Back-End-Pool erfordert nicht, dass der Anforderungsfluss den Hostnamen überschreibt. Die Back-End-Webanwendung sieht den ursprünglichen Host wie vom Client verwendet.

Szenarioübersicht für Application Gateway und App Service unter Verwendung derselben benutzerdefinierten Domäne für beide

In diesem Artikel erfahren Sie, wie Sie Folgendes tun:

  • Konfigurieren von 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 von 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 wird weiterhin auf das Anwendungsgateway gerichtet.

Konfigurieren Sie die TLS-Bindung, um Verbindungen mit App Service über HTTPS zu akzeptieren. Weitere Informationen finden Sie unter Sichern Sie einen benutzerdefinierten DNS-Namen mit einer TLS/SSL-Bindung in Azure App Service. Konfigurieren Sie App Service so, dass das Zertifikat für die benutzerdefinierte Domain aus dem Azure Key Vault abgerufen wird.

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 füllt nur die App-Dienste auf, die sich im selben Abonnement wie Ihr Anwendungsgateway befinden. Wenn Sie einen App-Dienst verwenden möchten, der sich in einem anderen Abonnement befindet als das, in dem sich das Anwendungsgateway befindet, wählen Sie im Dropdownmenü "Ziele" statt "App-Dienste" die Option "IP-Adresse" oder "Hostname" aus, und geben Sie den Hostnamen (example.azurewebsites.net) des App-Diensts ein. Wenn Sie private Endpunkte mit Ihrem App Service verwenden, sollten Sie stattdessen den FQDN oder die IP-Adresse des privaten Endpunkts verwenden.

  5. Wählen Sie Speichern aus.

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 eine Verbindung mit dem Back-End mithilfe von HTTPS 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 Autorität signiert ist, wählen Sie "Ja" für "Zertifikat der bekannten Zertifizierungsstelle des Benutzers" aus. Alternativ können Sie Authentifizierungs-/vertrauenswürdige Stammzertifikate von Back-End-Servern hinzufügen
  5. Stellen Sie sicher, dass „Mit neuem Hostnamen außer Kraft setzen“ auf „Nein“ festgelegt ist.
  6. Wählen Sie die benutzerdefinierte HTTPS-Überprüfung in der Dropdownliste für "Benutzerdefinierte Überprüfung" 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 zu Listener finden Sie unter Application Gateway-Listener-Konfiguration.

  1. Öffnen Sie den Abschnitt "Listener", und wählen Sie "Listener hinzufügen" aus, oder wählen Sie einen vorhandenen Listener aus, der bearbeitet werden soll.
  2. Für einen neuen Listener: Geben Sie ihm einen Namen.
  3. Wählen Sie unter "Front-End-IP" die IP-Adresse aus, auf der Sie lauschen möchten.
  4. Wählen Sie unter "Port" die Option 443 aus.
  5. Wählen Sie unter "Protokoll" "HTTPS" aus.
  6. Wählen Sie unter "Zertifikat auswählen" die Option "Zertifikat aus Key Vault auswählen" aus. Weitere Informationen finden Sie unter Verwenden von Key Vault , wo Sie weitere Informationen zum Zuweisen einer verwalteten Identität und zur Bereitstellung von Rechten für Ihren Key Vault finden.
    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" "Einfach" aus.
  8. Wählen Sie "Hinzufügen" aus, um den Listener hinzuzufügen.

Hinzufügen eines Listeners für HTTPS-Datenverkehr

Konfigurieren einer Anforderungsroutingregel

Der zuvor konfigurierte Back-End-Pool und die HTTP-Einstellungen ermöglichen es, eine Anforderungsroutingregel einzurichten, die den Datenverkehr von einem Listener empfängt und unter Verwendung der HTTP-Einstellungen an den Back-End-Pool weiterleitet. Stellen Sie dafür sicher, dass Sie über einen HTTP- oder HTTPS-Listener verfügen, der noch nicht an eine vorhandene Routingregel gebunden ist.

  1. Wählen Sie unter "Regeln" aus, um eine neue "Anforderungsroutingregel" 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-Zustand" und stellen Sie sicher, dass die Spalte "Status" das Zusammenspiel von HTTP-Einstellung und Back-End-Pool als "Gesund" anzeigt.

Überprüfen der Back-End-Integrität über das 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 beabsichtigen, ein Feature in der Produktion bereitzustellen, möchten Sie weitere Einschränkungen hinzufügen. 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.