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. Dabei handelt sich nicht um eine neue Möglichkeit für den Zugriff auf Ihre App. 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 unter jedem 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
Hybridverbindungen erfordern, dass ein Relay-Agent bereitgestellt wird, über den der Dienst 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.
Wenn Ihre App eine DNS-Anforderung sendet, die mit einem konfigurierten Hybridverbindungsendpunkt übereinstimmt, wird der ausgehende TCP-Datenverkehr über die Hybridverbindung weitergeleitet.
Hinweis
Sie sollten daher versuchen, stets einen DNS-Namen für Ihre Hybridverbindung zu verwenden. Manche Clientsoftware führt keine DNS-Suche durch, wenn der Endpunkt stattdessen eine IP-Adresse verwendet.
Vorteile der App Service-Hybridverbindungen
Die Funktion für Hybridverbindungen bietet zahlreiche Vorteile wie etwa Folgende:
- 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 bietet.
- 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 Ihre App verwendet, und von der Technologie, die der Endpunkt verwendet, abhängig.
- Sie kann verwendet werden, um über eine einzige App Zugriff in mehreren Netzwerken bereitzustellen.
- In einer allgemein verfügbaren Version von Windows- und Linux-Apps unterstützt. Für benutzerdefinierte Windows-Container wird „Hybridverbindungen“ nicht unterstützt.
Einschränkungen bei „Hybridverbindungen“
Die folgenden Aktionen sind u. a. mit „Hybridverbindungen“ nicht möglich:
- 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ützung von Active Directory, da der Domänenbeitritt eines App Service-Workers nicht möglich ist.
Hinzufügen und Erstellen von Hybridverbindungen in Ihrer App
So erstellen Sie eine Hybridverbindung
Wählen Sie im Azure-Portal Ihre App aus. Wählen Sie Einstellungen>Netzwerk aus.
Wählen Sie neben Hybridverbindungen den Link Nicht konfiguriert aus. Hier können Sie die Hybridverbindungen anzeigen, die für Ihre App konfiguriert sind.
Um eine neue Hybridverbindung hinzuzufügen, wählen Sie Hybridverbindung hinzufügen aus. Es wird eine Liste der Hybridverbindungen angezeigt, die Sie bereits erstellt haben. Um Ihrer App eine oder mehrere dieser Hybridverbindungen hinzuzufügen, markieren Sie diese und wählen anschließend Ausgewählte Hybridverbindung hinzufügen aus.
Wenn Sie eine neue Hybridverbindung erstellen möchten, wählen Sie Neue Hybridverbindung erstellen aus. Füllen Sie die folgenden Werte aus:
- Hybridverbindungsname
- Endpunkt-Hostname
- Endpunktport
- Zu verwendender Service Bus-Namespace
Jede Hybridverbindung ist an einen Service Bus-Namespace gebunden. Jeder Service Bus-Namespace befindet sich in einer Azure-Region. Verwenden Sie einen Service Bus-Namespace in derselben Region wie Ihre App, 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.
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
- ein Metadatenelement und einen benannten Endpunkt aufweisen, 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.
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 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.
Preise
Zusätzlich zur SKU-Anforderung eines App Service-Plans fallen zusätzliche Kosten für die Nutzung von Hybridverbindungen an. 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. So laden Sie den HCM herunter
- Wählen Sie im Azure-Portal Ihre App aus. Wählen Sie Einstellungen>Netzwerk aus.
- Wählen Sie neben Hybridverbindungen den Link aus, um die Seite Hybridverbindungen zu öffnen.
- Wählen Sie Verbindungs-Manager herunterladen 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 des 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 im Suchfeld nach Hybridverbindungs-Manager-Benutzeroberfläche suchen.
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:
Starten Sie die Benutzeroberfläche des HCM.
Wählen Sie Neue Hybridverbindung hinzufügen aus.
Melden Sie sich mit Ihrem Azure-Konto an, um die für Ihre Abonnements verfügbaren Hybrid Connections abzurufen. Der HCM verwendet Ihr Azure-Konto darüber hinaus nicht.
Wählen Sie ein Abonnement aus.
Wählen Sie die Hybridverbindungen aus, die der HCM weiterleiten soll.
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.
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. Aufgrund dieser Tatsache wird der HCM von Systemen mit Versionen vor Windows Server 2012 nicht unterstützt.
Redundanz
Jeder HCM kann mehrere Hybridverbindungen unterstützen. Mehrere HCMs können jede Hybridverbindung unterstützen. 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.
Aktualisieren
Es sind regelmäßige Updates für den Hybridverbindungs-Manager zum Beheben von Problemen oder Bereitstellen von Verbesserungen verfügbar. Wenn Upgrades veröffentlicht werden, wird auf der HCM-Benutzeroberfläche ein Dialogfeld angezeigt. Durch Ausführen des Upgrades werden die Änderungen angewendet, und der HCM wird 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 Befehlen des App Service-Plans können Sie festlegen, welcher Schlüssel von einer bestimmten Hybridverbindung verwendet werden soll. Für jede Hybridverbindung sind zwei Schlüssel festgelegt, ein primärer und ein sekundärer. Sie können die Verwendung des Primär- oder Sekundärschlüssels mit den folgenden Befehlen auswählen. Diese Option ermöglicht es Ihnen, die Schlüssel zu wechseln, wenn Sie Ihre Schlüssel in regelmäßigen Abständen erneut 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
Jede benutzende Person mit ausreichenden Berechtigungen für eine Azure Service Bus Relay-Instanz kann eine vorhandene Hybridverbindung für diese Relay-Instanz anderen App Service-Web-Apps hinzufügen. Um zu verhindern, dass andere Personen dieselbe Hybridverbindung wiederverwenden, sperren Sie den Zugriff auf Azure Service Bus Relay. Diese Situation kann auftreten, wenn es sich bei der Zielressource um einen Dienst handelt, für den keine anderen Sicherheitsmaßnahmen festgelegt sind, um nicht autorisierten Zugriff zu verhindern.
Jede Person mit Zugriff vom Typ Reader
auf die Relay-Instanz kann die Hybridverbindung anzeigen, wenn sie versucht, sie ihrer Web-App im Azure-Portal hinzuzufügen. Sie kann sie nicht hinzufügen, da sie nicht über die Berechtigungen zum Abrufen der Verbindungszeichenfolge verfügt, die zum Herstellen der Relayverbindung verwendet wird. Damit die Hybridverbindung hinzugefügt werden kann, muss sie über die listKeys
-Berechtigung (Microsoft.Relay/namespaces/hybridConnections/authorizationRules/listKeys/action
) verfügen. Mit der Rolle Contributor
oder einer anderen Rolle, die diese Berechtigung für die Relay-Instanz umfasst, können Benutzende die Hybridverbindung verwenden und sie den eigenen Web-Apps hinzufügen.
Verwalten von Hybridverbindungen
Wenn Sie den Endpunkthost oder -port für eine Hybridverbindung ändern müssen, führen Sie die folgenden Schritte aus:
- Wählen Sie im Hybridverbindungs-Manager die Verbindung aus, um das Detailfenster anzuzeigen. Wählen Sie dann Entfernen.
- Wählen Sie im Azure-Portal Ihre App aus. Wählen Sie Einstellungen>Netzwerk aus.
- Wählen Sie neben Hybridverbindungen den Link Konfiguriert aus.
- Klicken Sie unter Hybridverbindungen mit der rechten Maustaste auf die Verbindung, und wählen Sie Trennen aus.
- Navigieren Sie zur Relay-Instanz für den Endpunkt, den Sie aktualisieren müssen. Wählen Sie im Navigationsmenü unter Entitäten die Option Hybridverbindungenaus.
- Wählen Sie die Hybridverbindung aus. Wählen Sie im Navigationsmenü unter Einstellungen die Option Eigenschaften aus.
- Nehmen Sie die gewünschten Änderungen vor, und wählen Sie dann Änderungen speichern aus.
- 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.
- 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 für Ihren HCM der Status Nicht verbunden angezeigt wird, müssen Sie einige Punkte ü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-Hybridverbindungs-Manager 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 gleichzeitig vorhanden sein. Wenn Sie den HCM installieren, sollten Sie zuerst alle Versionen dieser Pakete entfernen.
Ist eine Firewall zwischen Ihrem HCM-Host und Azure eingerichtet? Falls ja, müssen Sie den ausgehenden Zugriff auf die Service Bus-Endpunkt-URL UND die Service Bus-Gateways zulassen, die Ihre Hybridverbindung bedienen.
Sie finden die Service Bus-Endpunkt-URL auf der Hybridverbindungs-Manager-Benutzeroberfläche.
Die Service Bus-Gateways sind die Ressourcen, die die Anforderung an die Hybridverbindung akzeptieren und über Azure Relay übergeben. Sie müssen alle 128 Gateways auf die Positivliste setzen. Die Gateways liegen im Format
G#-prod-[stamp]-sb.servicebus.windows.net
vor. Das Nummernzeichen#
ist eine Zahl zwischen 0 und 127, undstamp
ist der Name der Instanz in Ihrem Azure-Rechenzentrum, in der der Service Bus-Endpunkt vorhanden ist.Wenn Sie einen Platzhalter verwenden können, können Sie *.servicebus.windows.net auf die Positivliste setzen.
Wenn Sie keinen Platzhalter verwenden können, müssen Sie alle 128 Gateways auf die Positivliste setzen.
Sie können den Stempel mithilfe von nslookup für die Service Bus-Endpunkt-URL ermitteln.
In diesem Beispiel ist der Stempel
sn3-010
. Um die Service Bus-Gateways auf die Positivliste zu setzen, 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
Gehen Sie wie folgt vor, wenn der Status Verbunden lautet, die App den Endpunkt aber nicht erreichen kann:
- Stellen Sie sicher, dass Sie einen DNS-Namen in Ihrer Hybridverbindung verwenden. Wenn Sie eine IP-Adresse verwenden, wird möglicherweise das erforderliche Client-DNS-Lookup nicht durchgeführt. Wenn der Client, der in Ihrer Web-App ausgeführt wird, kein DNS-Lookup durchführt, funktioniert die Hybridverbindung nicht.
- Prüfen Sie, ob der DNS-Name, der in Ihrer Hybridverbindung verwendet wird, 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 den Endpunkt mithilfe des PowerShell-Befehls
Test-NetConnection EndpointDNSname -P Port
. Wenn Sie den Endpunkt von Ihrem HCM-Host nicht erreichen können, überprüfen Sie Firewalls zwischen den beiden Hosts, einschließlich aller hostbasierten Firewalls auf dem Zielhost. - Wenn Sie App Service für Linux verwenden, verwenden Sie nicht
localhost
als Endpunkthost. 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.