Skapa en Azure Relay-hybridanslutning

Slutförd

Azure Relay ger dig möjlighet att ansluta tjänster över nätverksgränser och brandväggar utan att behöva konfigurera om säkerhetsinställningarna.

Du vill flytta alla system i din ekonomiorganisation till molnet. Reglerna i din jurisdiktion hindrar dock att du migrerar kreditkontrolltjänsten. Tjänsten måste vara kvar lokalt i dataskyddssyfte. Du behöver ett sätt att ansluta molntjänsterna till kreditkontrolltjänsten. Du vill helst inte öppna extra portar i den lokala brandväggen eller skapa ett virtuellt privat nätverk.

I den här lektionen får du lära dig hur Azure Relay kan tillhandahålla den här anslutningen.

Vad är Azure Relay?

Många organisationer migrerar sina system till molnet. Den här processen görs ofta komponent för komponent, indelat i faser. En sådan metod begränsar effekten av problem som kan uppstå under migreringen, men den har sina egna utmaningar. En molnkomponent som nyss migrerats måste till exempel ofta kommunicera med en annan komponent som fortfarande finns lokalt, men som skyddas av en brandvägg eller andra säkerhetssystem.

I andra fall kanske du upptäcker att en lokal tjänst inte kan migreras till molnet. Din jurisdiktion kanske till exempel inför ytterligare säkerhetskrav för ekonomisystem, som du inte kan uppfylla i ett molnsystem.

I sådana lägen måste du ha lokala tjänster som kan adresseras från Internetklienter eller molnkomponenter. Du kan öppna en brandväggsport för att aktivera den här kommunikationen, men den metoden kan få oönskade konsekvenser. Du kan till exempel göra andra tjänster tillgängliga helt oavsiktligt. I en stor organisation kanske det inte är du som är ansvarig för brandväggen. En ändring i säkerhetssystemet kan kräva godkännande på hög nivå och det tar tid.

Azure Relay åtgärdar den här sortens problem genom att tillhandahålla en punkt i molnet där lokala och Internetbaserade komponenter kan ansluta. Eftersom det lokala systemet initierar den här anslutningen behöver du inte öppna några brandväggsportar eller konfigurera om det lokala nätverket på något sätt.

Hybridanslutningar och Windows Communication Foundation-anslutningar

Azure Relay upprättar en anslutning mellan två komponenter, till exempel en Azure-funktion och en lokal tjänst. När anslutningen har upprättats kan begäranden och svar utbytas via reläet, som om det vore en direkt anslutning. Du kan göra två typer av anslutningar i Azure Relay:

  • Hybridanslutningar: Hybridanslutningar är dubbelriktade strömmar av binära data som använder antingen WebSocket- eller HTTP-standarder. Eftersom de här anslutningarna baseras på öppna standarder kan du använda dem från nästan alla språk och kodningsramverk. Du kan till exempel använda dem för att ansluta en lokal Node.js-server till ett Azure-webbjobb som är skrivet i C# och .NET Framework.
  • WCF-anslutningar: Vissa utvecklare använder Windows Communication Foundation (WCF) för att aktivera fjärrproceduranrop. WCF användes ofta för nätverkskommunikation med äldre versioner av .NET Framework. WCF anses nu vara ett föråldrat protokoll, men det används fortfarande i äldre program. Eftersom Azure Relay stöder WCF kan du använda det med befintliga .NET Framework-komponenter som använder denna standard utan att behöva skriva om dem.

Använd hybridanslutningar om du inte har stöd för befintliga .NET Framework-komponenter som använder WCF.

WebSocket-anslutningar och HTTP-anslutningar

Hybridanslutningar kan använda något av dessa protokoll:

  • HTTP: Det här tillståndslösa protokollet består av begäranden som GET och POST och används för att överföra webbsidor mellan webbservrar och webbläsare. HTTP använder vanligtvis TCP-port 80 eller 443 när begäran skyddas med Secure Sockets Layer. Det här protokollet stöds i hög utsträckning och är enkelt att koda för. Men eftersom det här protokollet är tillståndslöst är det mindre effektivt för fortlöpande kommunikation.
  • WebSocket: Det här protokollet skapar en fullständig duplex-kommunikationskanal via port 80 eller 443, vilket är effektivare än det tillståndslösa HTTP-protokollet. WebSocket-anslutningar är särskilt effektiva när kommunikationen består av många meddelanden, inte bara en enskild begäran och ett svar.

I den här modulen, eftersom processen är en enkel begäran om en kreditkontroll, följt av ett enda svar, använder du en hybridanslutning och HTTP-protokollet.

Så här fungerar Azure Relay

Eftersom både molnbaserade och lokala komponenter initierar anslutningen till Azure Relay aktiveras inga lokala brandväggar. När anslutningen har upprättats kan kommunikationen skickas i båda riktningarna.

Följande diagram visar hur anslutningen görs:

Diagram showing how Azure Relay exchanges messages.

  1. Den lyssnande klienten skickar en lyssningsbegäran till Azure Relay-tjänsten. Azure-lastbalanseraren dirigerar begäran till någon av gatewaynoderna.
  2. Azure Relay-tjänsten skapar ett relä i gatewayarkivet.
  3. Den skickande klienten skickar en anslutningsbegäran till den lyssnande tjänsten.
  4. Den gateway som tar emot begäran söker efter reläet i gatewayarkivet.
  5. Gatewayen vidarebefordrar anslutningsbegäran till rätt gateway som nämns i gatewayarkivet.
  6. Gatewayen skickar en begäran till den lyssnande klienten om att skapa en tillfällig kanal till den gatewaynod som är närmast den skickande klienten.
  7. Den lyssnande klienten skapar en tillfällig kanal till den gateway som är närmast den skickande klienten. Nu när anslutningen har upprättats mellan klienter via en gateway kan klienterna utbyta meddelanden med varandra.
  8. Gatewayen vidarebefordrar alla meddelanden från den lyssnande klienten till den sändande klienten.
  9. Gatewayen vidarebefordrar alla meddelanden från den skickande klienten till den lyssnande klienten.

Så skapar du ett relä

Om du vill skapa ett relä behöver du ett namnområde som är unikt i servicebus.windows.net-domänen. Du kan också ange en prenumeration, en resursgrupp och en plats för reläet, som bör ligga nära de flesta av dina klienter.

Använd principer för delad åtkomst för att styra vad klienterna kan göra när de ansluter. Du använder de här principerna för att tillåta om klienter kan skicka meddelanden till eller läsa meddelanden från reläet. Varje princip för delad åtkomst har primära och sekundära nycklar. Varje klient måste ange en av de här nycklarna för att kunna ansluta till reläet.

Slutligen bör du skapa en anslutning i namnområdet. Det kan vara antingen en hybridanslutning eller en WCF-anslutning.