Azure App Service-Hybridverbindungen

Hybrid Connections ist sowohl ein Dienst in Azure als auch ein Feature in Azure App Service. Als Dienst gehen seine Einsatzmöglichkeiten und Funktionen über die von Azure App Service hinaus. Weitere Informationen zu Hybrid Connections und der Verwendung außerhalb von App Service finden Sie unter Azure Relay Hybrid Connections.

In App Service kann mithilfe von Hybridverbindungen auf Anwendungsressourcen in einem beliebigen Netzwerk zugegriffen werden, das ausgehende Aufrufe an Azure über Port 443 ausführen kann. Hybridverbindungen ermöglichen den Zugriff von Ihrer App auf einen TCP-Endpunkt, sie bieten keine neue Möglichkeit, um auf Ihre App zuzugreifen. Bei der Verwendung in App Service entspricht jede Hybridverbindung einer Kombination aus einem einzelnen TCP-Host und einem Port. Mit diesem Feature können Ihre Apps auf Ressourcen auf einem beliebigen Betriebssystem zugreifen, sofern es sich um einen TCP-Endpunkt handelt. Das Feature „Hybridverbindungen“ verfügt nicht über Informationen zum Anwendungsprotokoll oder zum abzurufenden Inhalt und benötigt diese Informationen auch nicht. Es ermöglicht lediglich den Netzwerkzugriff.

Funktionsweise

Hybrid-Verbinden ions erfordert, dass ein Relay-Agent bereitgestellt wird, in dem er sowohl den gewünschten Endpunkt als auch Azure erreichen kann. Der Relay-Agent, Hybridverbindungs-Manager (HCM), ruft ausgehend über Port 443 Azure Relay auf. Von der Web-App-Site aus stellt die App Service-Infrastruktur auch eine Verbindung mit Azure Relay im Auftrag Ihrer Anwendung her. Über die verbundenen Verbindungen kann Ihre App auf den gewünschten Endpunkt zugreifen. Die Verbindung verwendet zum Schutz TLS 1.2 und zur Authentifizierung/Autorisierung SAS-Schlüssel.

Diagram of Hybrid Connection high-level flow.

Wenn Ihre App eine DNS-Anforderung sendet, die einem konfigurierten Hybrid-Verbinden ion-Endpunkt entspricht, wird der ausgehende TCP-Datenverkehr über die Hybrid-Verbinden ion umgeleitet.

Hinweis

Sie sollten folglich versuchen, stets einen DNS-Namen für Ihre Hybridverbindung zu verwenden. Einige Clientsoftware führen keine DNS-Suche durch, wenn der Endpunkt stattdessen eine IP-Adresse verwendet.

Vorteile der App Service-Hybridverbindungen

Es gibt viele Vorteile für die Hybrid-Verbinden ions-Funktion, einschließlich:

  • Sie ermöglicht Apps den sicheren Zugriff auf lokale Systeme und Dienste.
  • Für das Feature ist kein Endpunkt erforderlich, der über das Internet zugänglich ist.
  • Es lässt sich schnell und einfach einrichten. Gateways sind nicht erforderlich.
  • Jede Hybridverbindung entspricht einer einzelnen Host-Port-Kombination, die auch einen Sicherheitsvorteil darstellt.
  • Firewalllücken sind normalerweise nicht erforderlich. Die Verbindungen sind alle ausgehend über Standardwebports.
  • Da das Feature auf Netzwerkebene ausgeführt wird, ist es nicht von der Sprache, die von Ihrer App verwendet wird, und von der Technologie, die vom Endpunkt verwendet wird, abhängig.
  • Sie kann verwendet werden, um über eine einzige App Zugriff in mehreren Netzwerken bereitzustellen.
  • Unterstützt in GA für Windows-Apps und Linux-Apps. Für benutzerdefinierte Windows-Container wird es nicht unterstützt.

Dinge, die Sie nicht mit hybriden Verbinden ionen tun können

Zu den Dingen, die Sie mit hybriden Verbinden ionen nicht tun können, gehören:

  • Bereitstellen eines Laufwerks.
  • Verwenden von UDP.
  • Zugreifen auf TCP-basierte Dienste, die dynamische Ports verwenden, wie der passive Modus für FTP oder der erweiterte passive Modus.
  • Unterstützung von LDAP, weil UDP erforderlich sein kann.
  • Unterstützen Sie Active Directory, da Sie dies nicht tun können Standard einem App Service-Worker beitreten.

Hinzufügen und Erstellen von Hybridverbindungen in Ihrer App

Navigieren Sie zum Erstellen einer Hybridverbindung zum Azure-Portal, und wählen Sie Ihre App aus. Wählen Sie Netzwerk>Endpunkte der Hybridverbindung konfigurieren aus. Hier können Sie die Hybridverbindungen anzeigen, die für Ihre App konfiguriert sind.

Screenshot of Hybrid Connection list.

Um eine neue Hybridverbindung hinzuzufügen, wählen Sie [+] Hybridverbindung hinzufügen aus. Es wird eine Liste der bereits erstellten Hybrid-Verbinden ionen angezeigt. Um Ihrer App eine oder mehrere dieser Hybridverbindungen hinzuzufügen, markieren Sie diese und wählen anschließend Ausgewählte Hybridverbindung hinzufügen aus.

Screenshot of Hybrid Connection portal.

Wenn Sie eine neue Hybridverbindung erstellen möchten, wählen Sie Neue Hybridverbindung erstellen aus. Geben Sie Folgendes an:

  • Hybridverbindungsname
  • Endpunkt-Hostname
  • Endpunktport
  • Zu verwendender Service Bus-Namespace

Screenshot of Create new hybrid connection dialog box.

Jede Hybridverbindung ist mit einem Service Bus-Namespace verbunden. Jeder Service Bus-Namespace befindet sich in einer Azure-Region. Es ist wichtig, einen Service Bus-Namespace in derselben Region wie Ihre App zu verwenden, um durch das Netzwerk verursachte Latenzen zu vermeiden.

Wenn Sie Ihre Hybridverbindung aus Ihrer App entfernen möchten, klicken Sie mit der rechten Maustaste darauf, und wählen Sie Verbindung trennen aus.

Nachdem Ihrer App eine Hybridverbindung hinzugefügt wurde, können Sie die Details zu dieser anzeigen, indem Sie sie einfach auswählen.

Screenshot of Hybrid connections details.

Erstellen einer Hybridverbindung im Azure Relay-Portal

Sie können Hybridverbindungen nicht nur über das Portal Ihrer App erstellen, sondern auch über das Azure Relay-Portal. Damit eine Hybridverbindung von App Service verwendet werden kann, muss sie:

  • eine Clientautorisierung erfordern
  • Weisen Sie ein Metadatenelement und einen benannten Endpunkt auf, der eine Host:Port-Kombination als Wert enthält.

Hybrid Connections und App Service-Pläne

App Service-Hybridverbindungen sind nur in den Preis-SKUs Basic, Standard, Premium und Isolated verfügbar. Hybridverbindungen sind für Funktions-Apps in Verbrauchsplänen nicht verfügbar. Es gelten Beschränkungen, die am Tarif geknüpft sind.

Tarif Anzahl der im Plan verwendbaren Hybridverbindungen
Basic 5 pro Plan
Standard 25 pro Plan
Premium (v1-v3) 220 pro App
Isoliert (v1-v2) 220 pro App

Die Benutzeroberfläche des App Service-Plans zeigt auch, wie viele Hybridverbindungen verwendet werden und von welchen Apps.

Screenshot of App Service plan properties.

Wählen Sie die Hybridverbindung aus, um Details anzuzeigen. Sie können alle Informationen sehen, die auch in der App-Ansicht angezeigt wurden. Außerdem können Sie sehen, wie viele andere Apps im gleichen Plan diese Hybridverbindung verwenden.

Es gilt eine Einschränkung für die Anzahl der Hybridverbindungsendpunkte, die in einem App Service-Plan verwendet werden können. Jede verwendete Hybridverbindung kann jedoch von einer beliebigen Anzahl von Apps in diesem Plan verwendet werden. Eine einzelne Hybridverbindung, die in fünf separaten Apps in einem App Service-Plan verwendet wird, zählt z.B. als eine Hybridverbindung.

Preisberechnung

Zusätzlich zu einer SKU-Anforderung des App Service-Plans gibt es zusätzliche Kosten für die Verwendung von Hybrid-Verbinden ionen. Für jeden Listener, der von einer Hybridverbindung verwendet wird, fällt eine Gebühr an. Der Listener ist der Hybridverbindungs-Manager. Wenn Sie fünf Hybridverbindungen verwenden, die von zwei Hybridverbindungs-Managern unterstützt werden, würde dies 10 Listener bedeuten. Weitere Informationen finden Sie unter Service Bus – Preise.

Hybrid Connection Manager

Damit das Feature Hybrid Connections funktioniert, ist ein Relay-Agent in dem Netzwerk erforderlich, das Ihren Hybridverbindungs-Endpunkt hostet. Dieser Relay-Agent wird als Hybrid Connection Manager (HCM) bezeichnet. Zum Herunterladen von HCM wählen Sie in Ihrer App im Azure-Portal die Option Netzwerk>Endpunkte der Hybridverbindung konfigurieren aus.

Dieses Tool wird unter Windows Server 2012 und höher ausgeführt. HCM wird als Dienst ausgeführt und verbindet ausgehenden Datenverkehr mit Azure Relay über Port 443.

Sie können nach der Installation von HCM die Datei „HybridConnectionManagerUi.exe“ ausführen, um die Benutzeroberfläche für das Tool zu verwenden. Diese Datei befindet sich im Installationsverzeichnis des Hybridverbindungs-Managers. Unter Windows 10 können Sie auch einfach im Suchfeld nach Hybridverbindungs-Manager-Benutzeroberfläche suchen.

Screenshot of Hybrid Connection Manager.

Wenn Sie die Benutzeroberfläche des HCM starten, wird als Erstes eine Tabelle angezeigt, in der alle Hybridverbindungen aufgeführt werden, die mit dieser Instanz des HCM konfiguriert sind. Wenn Sie Änderungen vornehmen möchten, müssen Sie sich zunächst bei Azure authentifizieren.

So fügen Sie Ihrem HCM eine oder mehrere Hybridverbindungen hinzu:

  1. Starten Sie die Benutzeroberfläche des HCM.

  2. Wählen Sie Neue Hybridverbindung hinzufügen aus. Screenshot of Configure New Hybrid Connections.

  3. Melden Sie sich mit Ihrem Azure-Konto an, um die für Ihre Abonnements verfügbaren Hybrid Connections abzurufen. Das HCM verwendet Ihr Azure-Konto nicht über diesen Schritt hinaus.

  4. Wählen Sie ein Abonnement aus.

  5. Wählen Sie die Hybridverbindungen aus, die der HCM weiterleiten soll. Screenshot of Hybrid Connections.

  6. Wählen Sie Speichern.

Es werden nun die Hybridverbindungen angezeigt, die Sie hinzugefügt haben. Sie können die konfigurierte Hybridverbindung auch auswählen, um Details anzuzeigen.

Screenshot of Hybrid Connection Details.

Damit der HCM die bei ihm konfigurierten Hybridverbindungen unterstützen kann, ist Folgendes erforderlich:

  • TCP-Zugriff auf Azure über Port 443.
  • TCP-Zugriff auf den Hybridverbindungs-Endpunkt
  • Möglichkeit für DNS-Suchvorgänge auf dem Endpunkthost und im Service Bus-Namespace Anders ausgedrückt: Der Hostname in der Azure Relay-Verbindung sollte von dem Computer aufgelöst werden können, der den HCM hostet.

Hinweis

Azure-Relay nutzt Websockets für die Konnektivität. Diese Funktion ist nur für Windows Server 2012 oder höher verfügbar. Aus diesem Grund wird der HCM von Versionen vor Windows Server 2012 nicht unterstützt.

Redundanz

Jeder HCM kann mehrere Hybridverbindungen unterstützen. Darüber hinaus kann eine bestimmte Hybridverbindung durch mehrere HCMs unterstützt werden. Das Standardverhalten ist ein Weiterleiten von Datenverkehr über die konfigurierten HCMs für einen bestimmten Endpunkt. Wenn Sie Hochverfügbarkeit für Hybridverbindungen über Ihr Netzwerk wünschen, führen Sie mehrere HCMs auf unterschiedlichen Computern aus. Der Lastverteilungsalgorithmus, der vom Relaydienst verwendet wird, um Datenverkehr an die HCMs zu verteilen, weist nach dem Zufallsprinzip zu.

Manuelles Hinzufügen einer Hybridverbindung

Damit ein Benutzer außerhalb Ihres Abonnements eine HCM-Instanz für eine bestimmte Hybridverbindung hosten kann, geben Sie für diesen die Gateway-Verbindungszeichenfolge für die Hybridverbindung frei. Sie können die Gatewayverbindungszeichenfolge in den Eigenschaften einer Hybridverbindung im Azure-Portal anzeigen. Um diese Zeichenfolge zu verwenden, wählen Sie im HCM Manuell eingeben aus, und fügen Sie die Gateway-Verbindungszeichenfolge ein.

Manually add a Hybrid Connection.

Upgraden

Es sind regelmäßige Updates für den Hybridverbindungs-Manager zum Beheben von Problemen oder Bereitstellen von Verbesserungen verfügbar. Wenn Upgrades freigegeben werden, wird in der HCM-Benutzeroberfläche ein Popup angezeigt. Beim Anwenden des Upgrades werden die Änderungen angewendet und das HCM neu gestartet.

Programmgesteuertes Hinzufügen einer Hybridverbindung zu Ihrer App

Es gibt Azure CLI-Unterstützung für Hybridverbindungen. Die bereitgestellten Befehle funktionieren sowohl auf der App- als auch auf der App Service-Planebene. Die Befehle auf App-Ebene lauten:

az webapp hybrid-connection

Group
    az webapp hybrid-connection : Methods that list, add and remove hybrid-connections from webapps.
        This command group is in preview. It may be changed/removed in a future release.
Commands:
    add    : Add a hybrid-connection to a webapp.
    list   : List the hybrid-connections on a webapp.
    remove : Remove a hybrid-connection from a webapp.

Mit den App Service-Planbefehlen können Sie festlegen, welchen Schlüssel eine bestimmte Hybridverbindung verwendet. Für jede Hybridverbindung sind zwei Schlüssel festgelegt, ein primärer und ein sekundärer. Sie können die Verwendung des primären oder sekundären Schlüssels mit den folgenden Befehlen auswählen. Mit dieser Option können Sie die Tasten wechseln, wenn Sie ihre Schlüssel regelmäßig neu generieren möchten.

az appservice hybrid-connection --help

Group
    az appservice hybrid-connection : A method that sets the key a hybrid-connection uses.
        This command group is in preview. It may be changed/removed in a future release.
Commands:
    set-key : Set the key that all apps in an appservice plan use to connect to the hybrid-
                connections in that appservice plan.

Sichern der Hybridverbindungen

Eine vorhandene Hybridverbindung kann von jedem Benutzer mit ausreichenden Berechtigungen für das zugrunde liegende Azure Service Bus Relay anderen App Service-Web-Apps hinzugefügt werden. Dies bedeutet, dass Sie verhindern müssen, dass andere Benutzer dieselbe Hybrid-Verbinden ion wiederverwenden (z. B. wenn es sich bei der Zielressource um einen Dienst handelt, der keine anderen Sicherheitsmaßnahmen enthält, um unbefugten Zugriff zu verhindern), müssen Sie den Zugriff auf das Azure Service Bus Relay sperren.

Jeder Benutzer, der Zugriff auf das Relay hatReader, kann die Hybrid-Verbinden ion sehen, wenn er versucht, sie ihrer Web App in der Azure-Portal hinzuzufügen, aber sie können es nicht hinzufügen, da sie nicht über die Berechtigungen zum Abrufen der Verbindungszeichenfolge verfügen, die zum Herstellen der Relayverbindung verwendet wird. Damit die Hybridverbindung erfolgreich hinzugefügt werden kann, müssen Sie über die listKeys-Berechtigung (Microsoft.Relay/namespaces/hybridConnections/authorizationRules/listKeys/action) verfügen. Die Contributor Rolle oder eine andere Rolle, die diese Berechtigung im Relay enthält, ermöglicht Es Benutzern, die Hybrid-Verbinden ion zu verwenden und sie zu ihren eigenen Web-Apps hinzuzufügen.

Verwalten von Hybridverbindungen

Wenn Sie den Endpunkthost oder den Port für eine Hybrid-Verbinden ion ändern müssen, führen Sie die folgenden Schritte aus:

  1. Entfernen Sie die Hybridverbindung aus dem Hybridverbindungs-Manager auf dem lokalen Computer, indem Sie die Verbindung auswählen und oben links im Fenster „Hybridverbindungsdetails“ auf Entfernen klicken.
  2. Trennen Sie die Hybridverbindung von Ihrer App Service-Instanz, indem Sie auf der App Service-Seite Netzwerk zu Hybridverbindungen navigieren.
  3. Wechseln Sie zu dem Relay für den Endpunkt, den Sie aktualisieren möchten, und wählen Sie im Navigationsmenü auf der linken Seite unter Entitäten die Option Hybridverbindungen aus.
  4. Wählen Sie die Hybridverbindung aus, die Sie aktualisieren möchten, und klicken Sie im Navigationsmenü auf der linken Seite unter Einstellungen auf Eigenschaften.
  5. Nehmen Sie Ihre Änderungen vor, und klicken Sie oben auf Änderungen speichern.
  6. Kehren Sie zu den Einstellungen unter Hybridverbindungen für Ihre App Service-Instanz zurück, und fügen Sie die Hybridverbindung erneut hinzu. Stellen Sie sicher, dass der Endpunkt wie vorgesehen aktualisiert wird. Wenn die Hybridverbindung nicht in der Liste angezeigt wird, aktualisieren Sie sie nach 5 bis 10 Minuten.
  7. Kehren Sie zum Hybridverbindungs-Manager auf dem lokalen Computer zurück, und fügen Sie die Verbindung erneut hinzu.

Problembehandlung

Der Status „Verbunden“ bedeutet, dass mindestens ein HCM mit dieser Hybridverbindung konfiguriert ist und Azure erreichen kann. Wenn der Status für die Hybridverbindung nicht Verbunden lautet, wurde die Hybridverbindung nicht auf einem HCM konfiguriert, der auf Azure zugreifen kann. Wenn Ihr HCM nicht Verbinden angezeigt wird, müssen Sie folgendes überprüfen:

  • Verfügt Ihr Host an Port 443 über ausgehenden Zugriff auf Azure? Sie können dies über Ihren HCM-Host mithilfe des PowerShell-Befehls Test-NetConnection Destination -P Port testen.

  • Ist Ihr HCM möglicherweise in einem fehlerhaften Zustand? Versuchen Sie den lokalen Dienst „Azure Hybrid Connection Manager Service“ neu zu starten.

  • Haben Sie in Konflikt stehende Software installiert? Hybridverbindungs-Manager kann nicht mit Biztalk Hybridverbindungs-Manager oder Service Bus für Windows Server koexistieren. Wenn Sie das HCM installieren, sollten alle Versionen dieser Pakete zuerst entfernt werden.

  • Haben Sie eine Firewall zwischen Ihrem HCM-Host und Azure? In diesem Szenario müssen Sie sowohl den ausgehenden Zugriff auf die Endpunkt-URL des Servicebus als auch die ServiceBus-Gateways zulassen, die Ihre Hybrid-Verbinden ion nutzen.

    • Sie finden die Endpunkt-URL des Servicebus in der benutzeroberfläche Hybridverbindungs-Manager.

    Screenshot of Hybrid Connection Service Bus endpoint.

    • Die ServiceBus-Gateways sind die Ressourcen, die die Anforderung an die Hybrid-Verbinden ion akzeptieren und sie über das Azure Relay übergeben. Sie müssen alle 128 Gateways zulassen. Die Gateways befinden sich im Format von G#-prod-[stamp]-sb.servicebus.windows.net , wobei "#" eine Zahl zwischen 0 und 127 und "stamp" der Name der Instanz in Ihrem Azure-Rechenzentrum ist, in der Ihr ServiceBus-Endpunkt vorhanden ist.
      • Wenn Sie ein Wild Karte verwenden können, können Sie die Zulassungsliste "*.servicebus.windows.net" zulassen.

      • Wenn Sie keine Wild Karte verwenden können, müssen Sie alle 128 Gateways zulassen.

        Sie finden den Stempel mithilfe von "nslookup" auf der ServiceBus-Endpunkt-URL.

        Screenshot of terminal showing where to find the stamp name for the Service Bus.

        In diesem Beispiel lautet der Stempel "sn3-010". Um die ServiceBus-Gateways zuzulassen, benötigen Sie die folgenden Einträge:

        G0-prod-sn3-010-sb.servicebus.windows.net
        G1-prod-sn3-010-sb.servicebus.windows.net
        G2-prod-sn3-010-sb.servicebus.windows.net
        G3-prod-sn3-010-sb.servicebus.windows.net
        ...
        G126-prod-sn3-010-sb.servicebus.windows.net
        G127-prod-sn3-010-sb.servicebus.windows.net

Wenn Ihr Status Verbinden, ihre App aber nicht zu Ihrem Endpunkt gelangen kann, gehen Sie wie möglich vor:

  • Stellen Sie sicher, dass Sie in Ihrer Hybrid-Verbinden ion einen DNS-Namen verwenden. Wenn Sie eine IP-Adresse verwenden, tritt die erforderliche Client-DNS-Suche möglicherweise nicht auf. Wenn der client, der in Ihrer Web-App ausgeführt wird, keine DNS-Suche ausführt, funktioniert die Hybrid-Verbinden ion nicht.
  • Überprüfen Sie, ob der in Ihrer Hybrid-Verbinden ion verwendete DNS-Name vom HCM-Host aufgelöst werden kann. Überprüfen Sie die Auflösung mithilfe von nslookup EndpointDNSname, wobei EndpointDNSname eine genaue Entsprechung für die Verwendung in der Definition Ihrer Hybridverbindung ist.
  • Testen Sie den Zugriff von Ihrem HCM-Host auf Ihren Endpunkt mithilfe des PowerShell-Befehls Test-Net Verbinden ion EndpointDNSname -P Port, wenn Sie den Endpunkt von Ihrem HCM-Host nicht erreichen können, überprüfen Sie die Firewalls zwischen den beiden Hosts, einschließlich aller hostbasierten Firewalls auf dem Zielhost.
  • Wenn Sie App Service für Linux verwenden, stellen Sie sicher, dass Sie "localhost" nicht als Endpunkthost verwenden. Verwenden Sie stattdessen Ihren Computernamen, wenn Sie versuchen, eine Verbindung mit einer Ressource auf Ihrem lokalen Computer herzustellen.

In App Service kann das Befehlszeilentool tcpping über die Konsole „Erweiterte Tools (Kudu)“ aufgerufen werden. Mit diesem Tool können Sie feststellen, ob Sie auf einen TCP-Endpunkt zugreifen können, jedoch nicht, ob Sie über Zugriff auf einen Hybridverbindungsendpunkt verfügen. Wenn Sie das Tool an der Konsole für einen Hybridverbindungsendpunkt verwenden, bestätigen Sie damit nur, dass eine Host-Port-Kombination verwendet wird.

Wenn Sie über einen Befehlszeilenclient für Ihren Endpunkt verfügen, können Sie die Konnektivität über die App-Konsole testen. Sie können beispielsweise den Zugriff auf Webserver-Endpunkte mithilfe von cURL testen.