Hybridanslutningar i Azure App Service
Hybridanslutningar är både en tjänst i Azure och en funktion i Azure App Service. Som en tjänst har den användningsområden och funktioner utöver de som används i App Service. Mer information om hybridanslutningar och deras användning utanför App Service finns i Azure Relay Hybrid-anslutningar.
I App Service kan hybridanslutningar användas för att komma åt programresurser i alla nätverk som kan göra utgående anrop till Azure via port 443. Hybridanslutningar ger åtkomst från din app till en TCP-slutpunkt. Det aktiverar inte ett nytt sätt att komma åt din app. Som används i App Service korrelerar varje hybridanslutning med en enda TCP-värd och portkombination.
Med den här funktionen kan dina appar komma åt resurser i alla operativsystem, förutsatt att det är en TCP-slutpunkt. Funktionen Hybridanslutningar vet eller bryr sig inte om vad programprotokollet är eller vad du har åtkomst till. Det ger helt enkelt nätverksåtkomst.
Hur det fungerar
Hybridanslutningar kräver att en reläagent distribueras där den kan nå både önskad slutpunkt och Azure. Reläagenten, Hybridanslutningshanteraren (HCM), anropar Azure Relay via port 443. Från webbplatsen för webbappen ansluter App Service-infrastrukturen också till Azure Relay för programmets räkning. Via de anslutna anslutningarna kan din app komma åt önskad slutpunkt. Anslutningen använder TLS 1.2 för säkerhets- och signaturnycklar för delad åtkomst (SAS) för autentisering och auktorisering.
När din app gör en DNS-begäran som matchar en konfigurerad hybridanslutningsslutpunkt omdirigeras den utgående TCP-trafiken via hybridanslutningen.
Kommentar
Det innebär att du alltid bör försöka använda ett DNS-namn för hybridanslutningen. Vissa klientprogram gör ingen DNS-sökning om slutpunkten använder en IP-adress i stället.
Fördelar med Hybridanslutning för App Service
Det finns många fördelar med hybridanslutningsfunktionen, bland annat:
- Appar kan komma åt lokala system och tjänster på ett säkert sätt.
- Funktionen kräver ingen internettillgänglig slutpunkt.
- Det är snabbt och enkelt att konfigurera. Inga gatewayer krävs.
- Varje hybridanslutning matchar en enda kombination av värd:port, vilket är användbart för säkerheten.
- Det kräver normalt inte brandväggshål. Anslutningarna är alla utgående via standardwebbportar.
- Eftersom funktionen är på nätverksnivå är den agnostisk för det språk som appen använder och den teknik som slutpunkten använder.
- Den kan användas för att ge åtkomst i flera nätverk från en enda app.
- Stöds i GA för Windows-appar och Linux-appar. Hybridanslutningar stöds inte för anpassade Windows-containrar.
Saker du inte kan göra med hybridanslutningar
Saker du inte kan göra med hybridanslutningar är:
- Montera en enhet.
- Använd UDP.
- Få åtkomst till TCP-baserade tjänster som använder dynamiska portar, till exempel FTP Passivt läge eller Utökat passivt läge.
- Stöd för LDAP eftersom det kan kräva UDP.
- Stöd för Active Directory eftersom du inte kan domänansluta en App Service-arbetare.
Lägga till och skapa hybridanslutningar i din app
Så här skapar du en hybridanslutning:
I Azure Portal väljer du din app. Välj Inställningar>Nätverk.
Bredvid Hybridanslutningar väljer du länken Inte konfigurerad . Här kan du se de hybridanslutningar som har konfigurerats för din app.
Om du vill lägga till en ny hybridanslutning väljer du Lägg till hybridanslutning. Du ser en lista över hybridanslutningar som du redan har skapat. Om du vill lägga till en eller flera av dem i din app väljer du de som du vill använda och väljer sedan Lägg till vald hybridanslutning.
Om du vill skapa en ny hybridanslutning väljer du Skapa ny hybridanslutning. Ange följande värden.
- Hybridanslutningsnamn.
- Slutpunktsvärdnamn.
- Slutpunktsport.
- Service Bus-namnområde som du vill använda.
Varje hybridanslutning är kopplad till ett Service Bus-namnområde. Varje Service Bus-namnområde finns i en Azure-region. Om du vill undvika svarstid i nätverket använder du ett Service Bus-namnområde i samma region som din app.
Om du vill ta bort hybridanslutningen från din app högerklickar du på den och väljer Koppla från.
När en hybridanslutning läggs till i din app kan du se information om den genom att välja den.
Skapa en hybridanslutning i Azure Relay-portalen
Förutom portalupplevelsen inifrån din app kan du skapa hybridanslutningar inifrån Azure Relay-portalen. För att en hybridanslutning ska användas av App Service måste den:
- Kräv klientauktorisering.
- Ha ett metadataobjekt och en namngiven slutpunkt som innehåller en kombination av värd:port som värde.
Hybridanslutningar och App Service-planer
Hybridanslutningar för App Service är endast tillgängliga i SKU:er för Grundläggande, Standard, Premium och Isolerade priser. Hybridanslutningar är inte tillgängliga för funktionsappar i förbrukningsplaner. Det finns gränser som är knutna till prisplanen.
Prisplan | Antal hybridanslutningar som kan användas i planen |
---|---|
Grundläggande | 5 per plan |
Standard | 25 per plan |
Premium (v1-v3) | 220 per app |
Isolerad (v1-v2) | 220 per app |
Användargränssnittet för App Service-planen visar hur många hybridanslutningar som används och av vilka appar.
Om du vill se information väljer du Hybridanslutning. Du kan se all information som du såg i appvyn. Du kan också se hur många andra appar i samma plan som använder den hybridanslutningen.
Det finns en gräns för antalet hybridanslutningsslutpunkter som kan användas i en App Service-plan. Varje hybridanslutning som används kan användas i valfritt antal appar i planen. Till exempel räknas en enda hybridanslutning som används i fem separata appar i en App Service-plan som en hybridanslutning.
Prissättning
Förutom att det finns ett SKU-krav för App Service-plan finns det en extra kostnad för att använda hybridanslutningar. Det debiteras för varje lyssnare som en hybridanslutning använder. Lyssnaren är Hybridanslutningshanteraren. Om du hade fem hybridanslutningar som stöds av två Hybridanslutningshanteraren som skulle vara 10 lyssnare. Mer information finns i Service Bus-priser.
Hybridanslutningshanteraren
Funktionen Hybridanslutningar kräver en reläagent i nätverket som är värd för din hybridanslutningsslutpunkt. Den reläagenten kallas Hybridanslutningshanteraren (HCM). Så här laddar du ned HCM:
- I Azure Portal väljer du din app. Välj Inställningar>Nätverk.
- Bredvid Hybridanslutningar väljer du länken för att öppna sidan Hybridanslutningar.
- Välj Ladda ned anslutningshanteraren.
Det här verktyget körs på Windows Server 2012 och senare. HCM körs som en tjänst och ansluter utgående till Azure Relay på port 443.
När du har installerat HCM kan du köra HybridConnectionManagerUi.exe för att använda användargränssnittet för verktyget. Den här filen finns i installationskatalogen för Hybridanslutningshanteraren. I Windows 10 kan du också söka efter Hybridanslutningshanteraren användargränssnitt i sökrutan.
När du startar HCM-användargränssnittet är det första du ser en tabell som visar alla hybridanslutningar som har konfigurerats med den här instansen av HCM. Om du vill göra några ändringar autentiserar du först med Azure.
Så här lägger du till en eller flera hybridanslutningar till din HCM:
Starta HCM-användargränssnittet.
Välj Lägg till en ny hybridanslutning.
Logga in med ditt Azure-konto för att få dina hybridanslutningar tillgängliga med dina prenumerationer. HCM fortsätter inte att använda ditt Azure-konto utöver det här steget.
Välj en prenumeration.
Välj de hybridanslutningar som du vill att HCM ska vidarebefordra.
Välj Spara.
Nu kan du se de hybridanslutningar som du har lagt till. Du kan också välja den konfigurerade hybridanslutningen för att se information.
För att stödja de hybridanslutningar som den har konfigurerats med kräver HCM:
- TCP-åtkomst till Azure via port 443.
- TCP-åtkomst till hybridanslutningsslutpunkten.
- Möjligheten att göra DNS-sökningar på slutpunktsvärden och Service Bus-namnområdet. Med andra ord bör värdnamnet i Azure Relay-anslutningen kunna matchas från den dator som är värd för HCM.
Kommentar
Azure Relay förlitar sig på Web Sockets för anslutning. Den här funktionen är endast tillgänglig på Windows Server 2012 eller senare. På grund av detta stöds inte HCM på system som är tidigare än Windows Server 2012.
Redundans
Varje HCM har stöd för flera hybridanslutningar. Flera HCM:er har stöd för alla hybridanslutningar. Standardbeteendet är att dirigera trafik över de konfigurerade HCM:erna för en viss slutpunkt. Om du vill ha hög tillgänglighet på dina hybridanslutningar från nätverket kör du flera HCM:er på separata datorer. Den belastningsfördelningsalgoritm som används av Relay-tjänsten för att distribuera trafik till de virtuella datorerna är slumpmässig tilldelning.
Lägga till en hybridanslutning manuellt
Om du vill att någon utanför din prenumeration ska vara värd för en HCM-instans för en viss hybridanslutning delar du gatewayens anslutningssträng för hybridanslutningen med dem. Du kan se gatewayens anslutningssträng i hybridanslutningsegenskaperna i Azure Portal. Om du vill använda strängen väljer du Ange manuellt i HCM och klistrar in gatewayen anslutningssträng.
Uppgradering
Det finns regelbundna uppdateringar av Hybridanslutningshanteraren för att åtgärda problem eller tillhandahålla förbättringar. När uppgraderingar släpps visas en dialogruta i HCM-användargränssnittet. När du tillämpar uppgraderingen tillämpas ändringarna och HCM startas om.
Lägga till en hybridanslutning till din app programmatiskt
Det finns Azure CLI-stöd för hybridanslutningar. Kommandona som tillhandahålls fungerar både på app- och App Service-plannivå. Kommandona på appnivå är:
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.
Med App Service-plankommandona kan du ange vilken nyckel en viss hybridanslutning använder. Det finns två nycklar inställda på varje hybridanslutning, en primär och en sekundär. Du kan välja att använda den primära eller sekundära nyckeln med följande kommandon. Med det här alternativet kan du växla nycklar för när du regelbundet vill återskapa dina nycklar.
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.
Skydda dina hybridanslutningar
Alla användare som har tillräcklig behörighet för en Azure Service Bus Relay kan lägga till en befintlig hybridanslutning för det reläet till andra App Service-webbappar. Om du vill förhindra att andra återanvänder samma hybridanslutning låser du åtkomsten till Azure Service Bus Relay. Den här situationen kan inträffa när målresursen är en tjänst som inte har några andra säkerhetsåtgärder på plats för att förhindra obehörig åtkomst.
Alla som har Reader
åtkomst till Relay kan se hybridanslutningen om de försöker lägga till den i sin webbapp i Azure Portal. De kan inte lägga till den eftersom de saknar behörighet att hämta anslutningssträng som används för att upprätta reläanslutningen. För att kunna lägga till hybridanslutningen måste de ha behörigheten listKeys
(Microsoft.Relay/namespaces/hybridConnections/authorizationRules/listKeys/action
). Rollen Contributor
eller någon annan roll som innehåller den här behörigheten på Relay tillåter användare att använda hybridanslutningen och lägga till den i sina egna Webbappar.
Hantera dina hybridanslutningar
Om du behöver ändra slutpunktsvärden eller porten för en hybridanslutning använder du följande steg:
- I Hybridanslutningshanteraren väljer du anslutningen för att se dess informationsfönster. Välj sedan Ta bort.
- I Azure Portal väljer du din app. Välj Inställningar>Nätverk.
- Bredvid Hybridanslutningar väljer du länken Konfigurerad .
- Högerklicka på anslutningen i Hybridanslutningar och välj Koppla från.
- Gå till Relay för den slutpunkt som du behöver uppdatera. I navigeringsmenyn under Entiteter väljer du Hybridanslutningar under Entiteter.
- Välj Hybridanslutning. I navigeringsmenyn går du till Inställningar och väljer Egenskaper.
- Gör dina ändringar och välj Spara ändringar.
- Gå tillbaka till inställningarna för hybridanslutningar för Din App Service och lägg till hybridanslutningen igen. Se till att slutpunkten uppdateras som avsett. Om du inte ser hybridanslutningen i listan uppdaterar du om 5–10 minuter.
- Gå tillbaka till Hybridanslutningshanteraren på den lokala datorn och lägg till anslutningen igen.
Felsökning
Statusen ansluten innebär att minst en HCM har konfigurerats med den hybridanslutningen och kan nå Azure. Om statusen för din hybridanslutning inte säger Ansluten, är hybridanslutningen inte konfigurerad på någon HCM som har åtkomst till Azure. När din HCM visar Inte ansluten finns det några saker att kontrollera:
Har värden utgående åtkomst till Azure på port 443? Du kan testa från HCM-värden med hjälp av PowerShell-kommandot
Test-NetConnection Destination -P Port
.Är din HCM potentiellt i ett dåligt tillstånd? Prova att starta om den lokala Tjänsten Azure Hybridanslutningshanteraren Service.
Har du programvara i konflikt installerad? Hybridanslutningshanteraren kan inte samexistera med Biztalk Hybridanslutningshanteraren eller Service Bus för Windows Server. När du installerar HCM bör du först ta bort alla versioner av dessa paket.
Har du en brandvägg mellan HCM-värden och Azure? I så fall måste du tillåta utgående åtkomst till både Service Bus-slutpunkts-URL:en och Service Bus-gatewayerna som betjänar hybridanslutningen.
Du hittar Service Bus-slutpunkts-URL:en i Hybridanslutningshanteraren användargränssnittet.
Service Bus-gatewayerna är de resurser som accepterar begäran till hybridanslutningen och skickar den via Azure Relay. Du måste tillåtalistning av alla 128 gatewayer. Gatewayerna har formatet :
G#-prod-[stamp]-sb.servicebus.windows.net
. Nummertecknet ,#
är ett tal mellan 0 och 127 ochstamp
är namnet på instansen i ditt Azure-datacenter där Service Bus-slutpunkten finns.Om du kan använda ett jokertecken kan du tillåtalista *.servicebus.windows.net.
Om du inte kan använda ett jokertecken måste du tillåta alla 128 gatewayer.
Du kan ta reda på stämpeln med nslookup på Service Bus-slutpunktens URL.
I det här exemplet är
sn3-010
stämpeln . Om du vill tillåta listan över Service Bus-gatewayer behöver du följande poster: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
Om statusen säger Ansluten men appen inte kan nå slutpunkten:
- Kontrollera att du använder ett DNS-namn i hybridanslutningen. Om du använder en IP-adress kanske den nödvändiga DNS-sökningen för klienten inte sker. Om klienten som körs i webbappen inte gör en DNS-sökning fungerar inte hybridanslutningen.
- Kontrollera att DNS-namnet som används i hybridanslutningen kan matchas från HCM-värden. Kontrollera upplösningen med nslookup EndpointDNSname där EndpointDNSname är en exakt matchning till vad som används i hybridanslutningsdefinitionen.
- Testa åtkomsten från HCM-värden till slutpunkten med hjälp av PowerShell-kommandot
Test-NetConnection EndpointDNSname -P Port
. Om du inte kan nå slutpunkten från HCM-värden kontrollerar du brandväggarna mellan de två värdarna, inklusive eventuella värdbaserade brandväggar på målvärden. - Om du använder App Service på Linux kontrollerar du att du inte använder
localhost
som slutpunktsvärd. Använd i stället datornamnet om du försöker skapa en anslutning till en resurs på den lokala datorn.
I App Service kan kommandoradsverktyget tcpping anropas från Kudu-konsolen (Advanced Tools). Det här verktyget kan tala om för dig om du har åtkomst till en TCP-slutpunkt, men det anger inte om du har åtkomst till en hybridanslutningsslutpunkt. När du använder verktyget i konsolen mot en hybridanslutningsslutpunkt bekräftar du bara att det använder en kombination av värd:port.
Om du har en kommandoradsklient för slutpunkten kan du testa anslutningen från appkonsolen. Du kan till exempel testa åtkomsten till webbserverslutpunkter med hjälp av curl.