Integrace Služby Azure SignalR s reverzními proxy servery
Reverzní proxy server je možné použít před službou Azure SignalR. Reverzní proxy servery se nacházejí mezi klienty a službou Azure SignalR a dalšími službami v různých scénářích. Reverzní proxy servery můžou například vyrovnávat zatížení různých požadavků klientů na různé back-endové služby, obvykle můžete nakonfigurovat různá pravidla směrování pro různé požadavky klientů a zajistit bezproblémové uživatelské prostředí pro uživatele, kteří přistupují k různým back-endovým službám. Můžou také chránit back-endové servery před běžným zneužitím ohrožení zabezpečení centralizovaným řízením ochrany. Služby, jako je Aplikace Azure lication Gateway, Azure API Management nebo Akamai, můžou fungovat jako reverzní proxy servery.
Běžná architektura využívající reverzní proxy server s Azure SignalR je následující:
Důležité
Nezpracované připojovací řetězec se v tomto článku zobrazují jenom pro demonstrační účely.
Připojovací řetězec obsahuje autorizační informace potřebné pro vaši aplikaci pro přístup ke službě Azure SignalR. Přístupový klíč uvnitř připojovací řetězec je podobný kořenovému heslu pro vaši službu. 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.
Vyhněte se distribuci přístupových klíčů ostatním uživatelům, jejich pevnému kódování nebo jejich uložení kdekoli ve formátu prostého textu, který je přístupný ostatním uživatelům. Otočte klíče, pokud se domníváte, že mohly být ohroženy.
Obecné postupy
Při použití reverzního proxy serveru před službou SignalR Service existuje několik obecných postupů.
Nezpracované připojovací řetězec se v tomto článku zobrazují jenom 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.
Nezapomeňte přepsat příchozí hlavičku HTTP HOST adresou URL služby Azure SignalR, například
https://demo.service.signalr.net
. Azure SignalR je služba s více tenanty a spoléhá na hlavičkuHOST
pro překlad do správného koncového bodu. Například při konfiguraci služby Application Gateway pro Azure SignalR vyberte možnost Přepsat novým názvem hostitele možnost Přepsat.Když klient prochází přes reverzní proxy server do Azure SignalR, nastavte
ClientEndpoint
ji jako adresu URL reverzního proxy serveru. Když klient vyjednás vaším centrálním serverem, server centra vrátí adresu URL definovanouClientEndpoint
pro připojení klienta. Další podrobnosti najdete tady.Existují dva způsoby konfigurace
ClientEndpoint
:Přidejte do připojovacího
ClientEndpoint
řetězce oddíl:Endpoint=...;AccessKey=...;ClientEndpoint=<reverse-proxy-URL>
Konfigurace
ClientEndpoint
při voláníAddAzureSignalR
:services.AddSignalR().AddAzureSignalR(o => { o.Endpoints = new Microsoft.Azure.SignalR.ServiceEndpoint[1] { new Microsoft.Azure.SignalR.ServiceEndpoint("<azure-signalr-connection-string>") { ClientEndpoint = new Uri("<reverse-proxy-URL>") } }; })
Když klient prochází přes reverzní proxy server do Azure SignalR, existují dva typy požadavků:
- Požadavek HTTP post ,
<reverse-proxy-URL>/client/negotiate/
který voláme jako žádost negotiate - Požadavek na připojení WebSocket/SSE/LongPolling v závislosti na typu přenosu, ke
<reverse-proxy-URL>/client/
kterému voláme žádost o připojení.
Ujistěte se, že reverzní proxy server podporuje oba typy přenosu pro
/client/
dílčí cestu. Pokud je například typ přenosu WebSocket, ujistěte se, že reverzní proxy server podporuje pro dílčí cestu protokol HTTP i WebSocket/client/
.Pokud jste nakonfigurovali několik služeb SignalR za reverzním proxy serverem, ujistěte se, že
negotiate
požadavek aconnect
požadavek se stejnýmasrs_request_id
parametrem dotazu (což znamená, že jsou pro stejné připojení) směrovány do stejné instance služby SignalR.- Požadavek HTTP post ,
Při použití reverzního proxy serveru můžete službu SignalR dále zabezpečit zakázáním přístupu k veřejné síti a použitím privátních koncových bodů, abyste povolili pouze privátní přístup z reverzního proxy serveru ke službě SignalR prostřednictvím virtuální sítě.
Další kroky
Přečtěte si další informace o interních službách Azure SignalR.