Sdílet prostřednictvím


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í:

Diagram znázorňující architekturu využívající Azure SignalR s reverzním proxy serverem

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čku HOST 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 definovanou ClientEndpoint 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 a connect požadavek se stejným asrs_request_id parametrem dotazu (což znamená, že jsou pro stejné připojení) směrovány do stejné instance služby SignalR.

  • 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