Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Application Gateway je nástroj pro vyrovnávání zatížení webového provozu, který umožňuje spravovat provoz do webových aplikací. Použití služby Application Gateway se službou SignalR umožňuje provádět následující akce:
- Chraňte své aplikace před běžnými ohroženími zabezpečení webu.
- Získejte vyrovnávání zatížení na úrovni aplikace pro škálovatelné a vysoce dostupné aplikace.
- Nastavte komplexní zabezpečení.
- Přizpůsobte název domény.
Tento článek obsahuje dvě části,
- První část ukazuje, jak nakonfigurovat službu Application Gateway tak, aby klienti mohli přistupovat ke službě SignalR prostřednictvím služby Application Gateway.
- Druhá část ukazuje, jak zabezpečit službu SignalR Přidáním řízení přístupu ke službě SignalR a povolit provoz pouze ze služby Application Gateway.
Surové připojovací řetězce se v tomto článku zobrazují pouze pro demonstrační účely. V produkčních prostředích vždy chraňte přístupové klíče. Pomocí služby Azure Key Vault můžete bezpečně spravovat a obměňovat klíče a zabezpečit připojovací řetězec pomocí ID Microsoft Entra a autorizovat přístup pomocí Microsoft Entra ID.
Nastavení a konfigurace služby Application Gateway
Vytvoření instance služby SignalR Service
- Postupujte podle článku a vytvořte instanci služby SignalR Service ASRS1.
Vytvoření instance služby Application Gateway
Vytvořte z portálu instanci Application Gateway AG1:
Na webu Azure Portal vyhledejte Application Gateway a vytvořte.
Na kartě Základy použijte tyto hodnoty pro následující nastavení služby Application Gateway:
Předplatné a skupina prostředků a oblast: stejné jako u služby SignalR
Název služby Application Gateway: AG1
Virtuální síť, vyberte Vytvořit novou a v okně Vytvořit virtuální síť , které se otevře, zadejte následující hodnoty, které vytvoří virtuální síť a dvě podsítě, jednu pro aplikační bránu a druhou pro back-endové servery.
Název: Jako název virtuální sítě zadejte VN1 .
Podsítě: Aktualizujte mřížku podsítí s nižšími 2 podsítěmi.
Název podsítě Rozsah adres Poznámka: myAGSubnet (rozsah adres) Podsíť pro aplikační bránu Podsíť aplikační brány může obsahovat pouze aplikační brány. Nejsou povoleny žádné další prostředky. myBackendSubnet (jiný rozsah adres) Podsíť instance Azure SignalR.
Přijměte výchozí hodnoty pro ostatní nastavení a pak vyberte Další: Front-endy
Na kartě Front-endy:
- Typ IP adresy front-endu: Veřejná.
- Vyberte Přidat novou pro veřejnou IP adresu a jako název veřejné IP adresy zadejte myAGPublicIPAddress a pak vyberte OK.
- Vybrat další: Backend
Na kartě Backend vyberte Přidat skupinu backendů:
- Název: Zadejte signalr pro fond prostředků pro back-end služby SignalR.
- Cíle backendu Target: název hostitele vaší instance služby SignalR Service ASRS1, například
asrs1.service.signalr.net - Vyberte Další: Konfigurace
Na kartě Konfigurace vyberte Přidat pravidlo směrování ve sloupci Pravidla směrování:
Název pravidla: myRoutingRule
Priorita: 1
Na kartě Naslouchací zařízení v okně Přidat pravidlo směrování zadejte následující hodnoty pro naslouchací zařízení:
- Název naslouchacího procesu: Zadejte myListener pro název naslouchacího procesu.
- Front-endová IP adresa: Vyberte veřejnou IP adresu, kterou jste vytvořili pro front-end.
-
Protokol: HTTP
- Front-endový protokol HTTP ve službě Application Gateway v tomto článku používáme ke zjednodušení ukázky a usnadnění práce. Ve skutečnosti ale možná budete muset povolit HTTPS a doménu zákazníka v produkčním scénáři.
- Přijměte výchozí hodnoty pro ostatní nastavení na kartě Naslouchací proces .
Na kartě Backend targets použijte následující hodnoty:
Typ cíle: Backendová skupina
Cílový backend: vyberte signalr, který jsme vytvořili dříve
Nastavení back-endu: Vyberte Přidat nové a přidejte nové nastavení.
- Nastavení backendu - název: mySetting
- Back-endový protokol: HTTPS
- Použití dobře známého certifikátu certifikační autority: Ano
- Přepsání novým názvem hostitele: Ano
- Přepsání názvu hostitele: Výběr názvu hostitele z back-endového cíle
- Ostatní mají výchozí hodnoty.
Kontrola a vytvoření AG1
Konfigurace sondy stavu služby Application Gateway
Po vytvoření AG1 na portálu přejděte na kartu Sondy zdraví v části Nastavení a změňte cestu sondy stavu na/api/health
Rychlý test
Zkuste neplatný požadavek klienta
https://asrs1.service.signalr.net/clienta vrátí 400 s chybovou zprávou 'parametr dotazu „hub“ je povinný'. Znamená to, že žádost dorazila do služby SignalR a provedlo se ověření požadavku.curl -v https://asrs1.service.signalr.net/clientvrací
< HTTP/1.1 400 Bad Request < ... < 'hub' query parameter is required.Přejděte na kartu Přehled u AG1 a zjistěte veřejnou IP adresu front-endu.
Navštivte koncový bod stavu prostřednictvím AG1, a vrací také chybu 400 s chybovou zprávou 'hub' parametr dotazu je vyžadován. Znamená to, že žádost úspěšně prošla službou Application Gateway do služby SignalR a provedla ověření požadavku.
curl -I http://<frontend-public-IP-address>/clientvrací
< HTTP/1.1 400 Bad Request < ... < 'hub' query parameter is required.
Spuštění chatu prostřednictvím služby Application Gateway
Nyní se může provoz dostat ke službě SignalR prostřednictvím Application Gateway. Zákazník může pro přístup k prostředku použít veřejnou IP adresu služby Application Gateway nebo vlastní název domény. Tuto chatovací aplikaci použijeme jako příklad. Začněme tím, že ho spustíme místně.
Nezpracované připojovací řetězce se v tomto článku zobrazují jen pro demonstrační účely. V produkčních prostředích vždy chraňte přístupové klíče. Pomocí služby Azure Key Vault můžete bezpečně spravovat a obměňovat klíče a zabezpečit připojovací řetězec pomocí ID Microsoft Entra a autorizovat přístup pomocí Microsoft Entra ID.
Nejprve získáme připojovací řetězec ASRS1.
-
Na kartě Připojovací řetězce služby ASRS1
-
Koncový bod klienta: Zadejte adresu URL s použitím veřejné IP adresy frontendu AG1, například
http://20.88.8.8. Jedná se o generátor připojovacího řetězce při použití reverzních proxy serverů a hodnota se při příštím návratu na tuto kartu nezachová. Po zadání hodnoty připojovací řetězec připojí oddílClientEndpoint. - Zkopírujte připojovací řetězec
-
Koncový bod klienta: Zadejte adresu URL s použitím veřejné IP adresy frontendu AG1, například
-
Na kartě Připojovací řetězce služby ASRS1
Klonování úložiště GitHub https://github.com/aspnet/AzureSignalR-samples
Přejděte na ukázky nebo složku Chatroom:
Nastavte zkopírovaný připojovací řetězec a spusťte aplikaci lokálně. Můžete pak vidět, že v připojovacím řetězci je část
ClientEndpoint.cd samples/Chatroom dotnet restore dotnet user-secrets set Azure:SignalR:ConnectionString "<copied-connection-string-with-client-endpoint>" dotnet runOtevřete http://localhost:5000 v prohlížeči a pomocí klávesy F12 zobrazte trasování sítě, můžete vidět, že připojení WebSocket je vytvořeno prostřednictvím skupiny dostupnosti AG1.
Zabezpečená služba SignalR
V předchozí části jsme úspěšně nakonfigurovali službu SignalR Jako back-endovou službu služby Application Gateway, můžeme službu SignalR volat přímo z veřejné sítě nebo prostřednictvím služby Application Gateway.
V této části nakonfigurujeme službu SignalR Service tak, aby odepřela veškerý provoz z veřejné sítě a přijímala pouze provoz ze služby Application Gateway.
Konfigurace služby SignalR
Nakonfigurujeme službu SignalR tak, aby umožňovala pouze privátní přístup. Další podrobnosti najdete v použití privátního koncového bodu pro službu SignalR.
Na portálu přejděte k instanci služby SignalR ASRS1.
Přejděte na kartu Sítě :
Na kartě Veřejný přístup : Změna přístupu k veřejné síti na Zakázáno a Uložit, teď už nemáte přístup ke službě SignalR z veřejné sítě.
Na kartě Privátní přístup vyberte + privátní koncový bod:
- Karta Základy :
- Název: PE1
- Název síťového rozhraní: PE1-nic
- Oblast: Ujistěte se, že jste zvolili stejnou oblast jako vaše služba Application Gateway.
- Vyberte Další: Zdroje
- Na kartě Resources
- Zachovat výchozí hodnoty
- Vyberte Další: Virtuální síť
- On Virtual Network tab
- Virtuální síť: Vyberte dříve vytvořenou síť VN1.
- Podsíť: Vyberte dříve vytvořenou VN1/myBackendSubnet
- Ostatní mají výchozí nastavení.
- Vyberte Další: DNS
- Na kartě DNS
- Integrace s privátní zónou DNS: Ano
- Kontrola a vytvoření privátního koncového bodu
- Karta Základy :
Obnovit back-endový fond služby Application Gateway
Vzhledem k tomu, že služba Application Gateway byla nastavena předtím, než byl k dispozici privátní koncový bod, musíme aktualizovat back-endový pool, aby se podíval na zónu Privátní DNS a zjistil, že by měl směrovat provoz na privátní koncový bod místo veřejné adresy. Obnovení provedeme tak, že nastavíme plně kvalifikovaný název domény back-endu na jinou hodnotu a poté ho změníme zpět.
Přejděte na kartu Backendové pooly skupiny AG1 a vyberte signalr:
- Krok 1: Změňte cíl
asrs1.service.signalr.netna jinou hodnotu,x.service.signalr.netnapříklad a vyberte Uložit. - Krok 2: Změna cíle zpět na
asrs1.service.signalr.net
Rychlý test
Teď znovu navštívíme
https://asrs1.service.signalr.net/client. Když je veřejný přístup zakázaný, vrátí místo toho hodnotu 403 .curl -v https://asrs1.service.signalr.net/clientvrací
< HTTP/1.1 403 ForbiddenNavštivte koncový bod prostřednictvím AG1
http://<frontend-public-IP-address>/client, a vrátí 400 s chybovou zprávou 'dotazovací parametr "hub" je povinný'. To znamená, že požadavek úspěšně prošel službou Application Gateway do služby SignalR.curl -I http://<frontend-public-IP-address>/clientvrací
< HTTP/1.1 400 Bad Request < ... < 'hub' query parameter is required.
Pokud nyní znovu spustíte chatovací aplikaci lokálně, zobrazí se chybové zprávy Failed to connect to .... The server returned status code '403' when status code '101' was expected., protože veřejný přístup je zakázán, což znamená, že se připojení k serveru localhost nemohou spojit se službou SignalR.
Pojďme nasadit chatovací aplikaci do stejné virtuální sítě s ASRS1, aby chat mohl komunikovat s ASRS1.
Nasazení chatovací aplikace do Azure
Na webu Azure Portal vyhledejte služby App Services a vytvořtewebovou aplikaci.
Na kartě Základy použijte tyto hodnoty pro následující nastavení webové aplikace:
- Předplatné a skupina prostředků a oblast: stejné jako u služby SignalR
- Název: WA1
- Publikování: Kód
- Zásobník modulu runtime: .NET 6 (LTS)
- Operační systém: Linux
- Oblast: Ujistěte se, že je stejná jako to, co zvolíte pro službu SignalR Service.
- Vyberte Další: Nasazení, ponechte vše jako výchozí a vyberte Další:Sítě.
On the Networking tab
- Povolit vložení do sítě: vyberte Zapnuto
- Virtuální síť: Vyberte VN1 , který jsme vytvořili dříve.
- Povolení integrace virtuální sítě: Zapnuto
- Odchozí podsíť: Vytvoření nové podsítě
- Vyberte Zkontrolovat a vytvořit.
Teď nasadíme naši chatovací aplikaci do Azure. Níže
K nasazení chatovací aplikace do Azure používáme Azure CLI. Zkontrolujte Rychlý start: Nasazení webové aplikace ASP.NET pro další prostředí nasazení do Azure.
V části ukázky složek nebo Chatroom spusťte následující příkazy:
# Build and publish the assemblies to publish folder
dotnet publish --os linux -o publish
# zip the publish folder as app.zip
cd publish
zip -r app.zip .
# use az CLI to deploy app.zip to our webapp
az login
az account set -s <your-subscription-name-used-to-create-WA1>
az webapp deploy -g <resource-group-of-WA1> -n WA1 --src-path app.zip
Teď je webová aplikace nasazená, přejděme na portál wa1 a proveďte následující aktualizace:
Na kartě Konfigurace:
Nové nastavení aplikace:
Jméno Hodnota WEBSITE_DNS_SERVER 168.63.129.16 WEBSITE_VNET_ROUTE_ALL 1 Nový připojovací řetězec:
Jméno Hodnota Typ AzureSignalRConnectionString Zkopírovaný připojovací řetězec s hodnotou ClientEndpoint vyberte Vlastní
Na kartě Nastavení PROTOKOLU TLS/SSL:
- Jenom HTTPS: Vypnuto. Abychom zjednodušili ukázku, použili jsme front-endový protokol HTTP ve službě Application Gateway. Proto musíme tuto možnost vypnout, aby se zabránilo automatické změně adresy URL HTTP na HTTPS.
Přejděte na kartu Přehled a získejte adresu URL WA1.
Získejte adresu URL a nahraďte schéma https schématem http, například
http://wa1.azurewebsites.net, otevřete adresu URL v prohlížeči, nyní můžete začít chatovat! Pomocí klávesy F12 otevřete trasování sítě a uvidíte, že je připojení SignalR navázáno prostřednictvím AG1.Poznámka:
Někdy potřebujete zakázat automatické přesměrování https prohlížeče a mezipaměť prohlížeče, aby se zabránilo automatickému přesměrování adresy URL na HTTPS.
Další kroky
Teď jste úspěšně vytvořili chatovací aplikaci v reálném čase se službou SignalR Service a pomocí služby Application Gateway jste chránili své aplikace a nastavili kompletní zabezpečení. Přečtěte si další informace o službě SignalR.