Hybridanslutningar med 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 hybridanslutningar.

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 och ger inte ett nytt sätt att komma åt din app. Som används i App Service korrelerar varje hybridanslutning med en enda kombination av TCP-värd och port. Detta gör att dina appar kan komma åt resurser i alla operativsystem, förutsatt att det är en TCP-slutpunkt. Funktionen Hybridanslutningar vet inte vad programprotokollet är eller vad du har åtkomst till. Det ger helt enkelt nätverksåtkomst.

Så här fungerar det

Hybridanslutningar kräver att en reläagent distribueras där den kan nå både den önskade slutpunkten och till Azure. Reläagenten, Hybridanslutningshanteraren (HCM), anropar Azure Relay port 443. Från webbplatsen för webbappen ansluter App Service även till Azure Relay för ditt programs räkning. Via de sammanslutna anslutningarna kan din app komma åt önskad slutpunkt. Anslutningen använder TLS 1.2 för säkerhets- och SAS-nycklar (signatur för delad åtkomst) för autentisering och auktorisering.

Diagram över ett högnivåflöde för hybridanslutning

När din app gör en DNS-begäran som matchar en konfigurerad hybridanslutningsslutpunkt omdirigeras den utgående TCP-trafiken via hybridanslutningen.

Anteckning

Det innebär att du bör försöka att alltid 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.

App Service hybridanslutningsfördelar

Det finns ett antal fördelar med hybridanslutningar, bland annat:

  • Appar kan komma åt lokala system och tjänster på ett säkert sätt.
  • Funktionen kräver inte någon internettillgänglig slutpunkt.
  • Det går snabbt och enkelt att konfigurera. Inga gatewayer krävs.
  • Varje hybridanslutning matchar en enskild värd:portkombination, 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 på det språk som används av din app och den teknik som används av slutpunkten.
  • Den kan användas för att ge åtkomst i flera nätverk från en enda app.
  • Det stöds i GA för Windows och Linux-appar. Det stöds inte för Windows containerappar.

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 passivt läge för FTP 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än-ansluta App Service arbetsroll.

Lägga till och skapa hybridanslutningar i din app

Om du vill skapa en hybridanslutning går du till Azure Portal och väljer din app. Välj Nätverk Konfigurera dina > hybridanslutningsslutpunkter. Här kan du se de hybridanslutningar som har konfigurerats för din app.

Skärmbild av listan över hybridanslutningar

Om du vill lägga till en ny hybridanslutning väljer du [+] Lägg till hybridanslutning. Du ser en lista över de hybridanslutningar som du redan har skapat. Om du vill lägga till en eller flera av dem i din app väljer du de du vill ha och väljer sedan Lägg till vald hybridanslutning.

Skärmbild av hybridanslutningsportalen

Om du vill skapa en ny hybridanslutning väljer du Skapa ny hybridanslutning. Ange:

  • Hybridanslutningens namn.
  • Värdnamn för slutpunkt.
  • Slutpunktsport.
  • Service Bus namnområde som du vill använda.

Skärmbild av dialogrutan Skapa ny hybridanslutning

Varje hybridanslutning är kopplad till ett Service Bus namnområde och varje Service Bus är i en Azure-region. Det är viktigt att försöka använda en Service Bus i samma region som din app för att undvika nätverksfördröjning.

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.

Skärmbild av information om hybridanslutningar

Skapa en hybridanslutning i Azure Relay portalen

Förutom portalupplevelsen inifrån din app kan du skapa hybridanslutningar från Azure Relay portalen. För att en hybridanslutning ska användas av App Service måste den:

  • Kräv klientauktorisering.
  • Ha ett metadataobjekt med namnet slutpunkt som innehåller en host:port-kombination som värde.

Hybridanslutningar och App Service planer

App Service hybridanslutningar är endast tillgängliga i SKU:er för Basic, Standard, Premium och Isolerad. Det finns gränser som är knutna till prisplanen.

Prisplan Antal hybridanslutningar som kan användas i planen
Basic 5 per plan
Standard 25 per plan
Premium (v1-v3) 220 per app
Isolerad (v1-v2) 220 per app

Användargränssnittet App Service plan visar hur många hybridanslutningar som används och av vilka appar.

Skärmbild av App Service plan egenskaper

Välj Hybridanslutning för att se information. 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 hur många hybridanslutningsslutpunkter som kan användas i en App Service plan. Varje hybridanslutning som används kan dock användas i alla 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 App Service plan SKU-krav finns det en extra kostnad för att använda hybridanslutningar. Det finns en avgift för varje lyssnare som används av en hybridanslutning. Lyssnaren är Hybridanslutningshanteraren. Om du hade fem hybridanslutningar som stöds av två hybridanslutningshanterare skulle det 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. Reläagenten kallas för Hybridanslutningshanteraren (HCM). Om du vill ladda ned HCM från din app i Azure Portalväljer du Nätverkskonfigurera dina > hybridanslutningsslutpunkter.

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 HybridConnectionManagerUi.exe att använda användargränssnittet för verktyget. Den här filen finns Hybridanslutningshanteraren installationskatalogen. I Windows 10 kan du också bara söka efter Hybridanslutningshanteraren användargränssnitt i sökrutan.

Skärmbild av Hybridanslutningshanteraren

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:

  1. Starta HCM-användargränssnittet.

  2. Välj Lägg till en ny hybridanslutning. Skärmbild av konfigurera nya hybridanslutningar

  3. 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.

  4. Välj en prenumeration.

  5. Välj de hybridanslutningar som du vill att HCM ska vidarebefordra. Skärmbild av hybridanslutningar

  6. Välj Spara.

Nu kan du se de hybridanslutningar som du har lagt till. Du kan också välja den konfigurerade hybridanslutningen om du vill se mer information.

Skärmbild av hybridanslutningsinformation

HCM kräver följande för att stödja hybridanslutningar som den är konfigurerad med:

  • TCP-åtkomst till Azure via port 443.
  • TCP-åtkomst till hybridanslutningens slutpunkt.
  • Möjligheten att utföra DNS-uppslag på slutpunktsvärden och Service Bus namnområdet.

Anteckning

Azure Relay förlitar sig på websocketar för anslutning. Den här funktionen är endast tillgänglig på Windows Server 2012 eller senare. HCM stöds därför inte på något tidigare än Windows Server 2012.

Redundans

Varje HCM har stöd för flera hybridanslutningar. Dessutom kan alla angivna hybridanslutningar stödjas av flera HCM:er. Standardbeteendet är att dirigera trafik mellan 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. Algoritmen för belastningsutjämning som används av Relay-tjänsten för att distribuera trafik till HCM:erna är slumpmässig tilldelning.

Lägga till en hybridanslutning manuellt

Om du vill göra det möjligt för någon utanför din prenumeration att vara värd för en HCM-instans för en viss hybridanslutning delar du gatewayanslutningssträngen för hybridanslutningen med dem. Du kan se gatewayanslutningssträngen i egenskaperna för hybridanslutning i Azure Portal. Om du vill använda strängen väljer du Ange manuellt i HCM och klistrar in gatewayanslutningssträngen.

Lägga till en hybridanslutning manuellt

Uppgradera

Det finns regelbundna uppdateringar av Hybridanslutningshanteraren för att åtgärda problem eller tillhandahålla förbättringar. När uppgraderingar släpps visas ett popup-fönster i HCM-användargränssnittet. Om du tillämpar uppgraderingen tillämpas ändringarna och HCM startas om.

Lägga till en hybridanslutning i appen programmatiskt

Det finns Azure CLI-stöd för hybridanslutningar. De kommandon som tillhandahålls fungerar både på app- och App Service plan nivå. 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 plan kommandon kan du ange vilken nyckel en viss hybridanslutning ska använda. Det finns två nycklar för varje hybridanslutning, en primär och en sekundär. Du kan välja att använda den primära eller sekundära nyckeln med kommandona nedan. På så sätt kan du växla nycklar 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

En befintlig hybridanslutning kan läggas till i andra App Service Web Apps av alla användare som har tillräcklig behörighet för den underliggande Azure Service Bus Relay. Det innebär att om du måste hindra andra från att återanvända samma hybridanslutning (till exempel när målresursen är en tjänst som inte har några ytterligare säkerhetsåtgärder på plats för att förhindra obehörig åtkomst) måste du låsa åtkomsten till Azure Service Bus Relay.

Alla med åtkomst till Relay kommer att kunna se hybridanslutningen när de försöker lägga till den i sin webbapp i Azure Portal, men de kommer inte att kunna lägga till den eftersom de saknar behörighet att hämta anslutningssträngen som används för att upprätta Reader reläanslutningen. För att kunna lägga till hybridanslutningen måste de ha listKeys behörigheten ( Microsoft.Relay/namespaces/hybridConnections/authorizationRules/listKeys/action ). Rollen eller någon annan roll som innehåller den här behörigheten i Relay tillåter användare att använda hybridanslutningen och lägga till den i Contributor sina egna Web Apps.

Hantera dina hybridanslutningar

Om du behöver ändra slutpunktsvärden eller porten för en hybridanslutning följer du stegen nedan:

  1. Ta bort hybridanslutningen från Hybridanslutningshanteraren på den lokala datorn genom att välja anslutningen och välja Ta bort längst upp till vänster i fönstret Hybridanslutningsinformation.
  2. Koppla bort hybridanslutningen från App Service genom att gå till Hybridanslutningar på App Service nätverkssidan.
  3. Gå till Relay för den slutpunkt som du behöver uppdatera och välj Hybridanslutningar under Entiteter i den vänstra navigeringsmenyn.
  4. Välj den hybridanslutning som du vill uppdatera och välj Egenskaper under Inställningar på den vänstra navigeringsmenyn.
  5. Gör dina ändringar och tryck på Spara ändringar högst upp.
  6. Gå tillbaka till inställningarna för hybridanslutningar för App Service och lägg till hybridanslutningen igen. Se till att slutpunkten uppdateras som avsett. Om du inte ser hybridanslutningen i listan uppdaterar du inom 5–10 minuter.
  7. 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 hybridanslutningen inte säger Ansluten är din hybridanslutning 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 PowerShell-kommandot Test-NetConnection Destination -P Port

  • Är din HCM potentiellt i ett felaktigt tillstånd? Prova att starta om den lokala tjänsten "Azure Hybridanslutningshanteraren Service".

  • Har du programvara som står i konflikt? Hybridanslutningshanteraren kan inte samexistera med Biztalk Hybridanslutningshanteraren eller Service Bus för Windows Server. När du installerar HCM bör därför alla versioner av dessa paket tas bort först.

Om statusen är Ansluten men appen inte kan nå slutpunkten gör du så här:

  • kontrollera att du använder ett DNS-namn i hybridanslutningen. Om du använder en IP-adress kanske inte dns-sökning krävs. Om klienten som körs i webbappen inte gör någon DNS-sökning fungerar inte hybridanslutningen
  • kontrollera att DNS-namnet som används i hybridanslutningen kan matcha från HCM-värden. Kontrollera lösningen med nslookup EndpointDNSname där EndpointDNSname är en exakt matchning av vad som används i hybridanslutningsdefinitionen.
  • testa åtkomsten från HCM-värden till slutpunkten med 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 namnet på datorn om du försöker skapa en anslutning till en resurs på den lokala datorn.

I App Service kan kommandoradsverktyget tcpping anropas från Konsolen Avancerade verktyg (Kudu). Det här verktyget kan berätta om du har åtkomst till en TCP-slutpunkt, men det säger inte om du har åtkomst till en hybridanslutningsslutpunkt. När du använder verktyget i -konsolen mot en hybridanslutningsslutpunkt bekräftar du bara att den 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.