Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
Um servidor proxy reverso pode ser usado na frente do Serviço Azure SignalR. Os servidores proxy reverso ficam entre os clientes e o serviço Azure SignalR, e outros serviços podem ajudar em vários cenários. Por exemplo, os servidores proxy reverso podem balancear a carga de diferentes solicitações de clientes para diferentes serviços de back-end, você geralmente pode configurar regras de roteamento diferentes para solicitações de clientes diferentes e fornecer uma experiência de usuário perfeita para usuários que acessam diferentes serviços de back-end. Eles também podem proteger seus servidores back-end contra vulnerabilidades de exploits comuns com controle de proteção centralizado. Serviços como o Azure Application Gateway, Azure API Management ou Akamai podem atuar como servidores proxy reverso.
Uma arquitetura comum usando um servidor proxy reverso com o Azure SignalR é a seguinte:
Importante
As cadeias de conexão brutas aparecem neste artigo apenas para fins de demonstração.
Uma cadeia de conexão inclui as informações de autorização necessárias para seu aplicativo acessar o Serviço Azure SignalR. A chave de acesso dentro da cadeia de conexão é semelhante a uma senha de root para o seu serviço. Em ambientes de produção, proteja sempre as suas chaves de acesso. Use o Azure Key Vault para gerenciar e girar suas chaves com segurança e proteger sua cadeia de conexão usando a ID do Microsoft Entra e autorizar o acesso com a ID do Microsoft Entra.
Evite distribuir chaves de acesso para outros usuários, codificá-las ou salvá-las em qualquer lugar em texto simples acessível a outras pessoas. Rode as suas chaves se acreditar que podem ter sido comprometidas.
Práticas gerais
Há várias práticas gerais a serem seguidas ao usar um proxy reverso para o Serviço SignalR.
As cadeias de conexão brutas aparecem neste artigo apenas para fins de demonstração. Em ambientes de produção, proteja sempre as suas chaves de acesso. Use o Azure Key Vault para gerenciar e girar suas chaves com segurança e proteger sua cadeia de conexão usando a ID do Microsoft Entra e autorizar o acesso com a ID do Microsoft Entra.
Certifique-se de reescrever o cabeçalho HTTP HOST de entrada com a URL do serviço Azure SignalR, por exemplo:
https://demo.service.signalr.net. O Azure SignalR é um serviço multilocatário e depende do cabeçalhoHOSTpara resolver para o ponto de extremidade correto. Por exemplo, ao configurar o Gateway de Aplicativo para o Azure SignalR, selecione Sim para a opção Substituir com novo nome de host.Quando seu cliente passar pelo proxy reverso para o Azure SignalR, defina
ClientEndpointcomo sua URL de proxy reverso. Quando o cliente negocia com o servidor de hub, o servidor de hub retornará a URL definida emClientEndpointpara que o cliente possa se conectar. Confira aqui mais detalhes.Há duas maneiras de configurar
ClientEndpoint:Adicione uma
ClientEndpointseção ao seu ConnectionString:Endpoint=...;AccessKey=...;ClientEndpoint=<reverse-proxy-URL>Configurar
ClientEndpointao chamarAddAzureSignalR: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>") } }; })
Quando um cliente passa pelo proxy reverso para o Azure SignalR, há dois tipos de solicitações:
- Envio de solicitação HTTP para
<reverse-proxy-URL>/client/negotiate/, que chamamos de solicitação de negociação - Solicitação de conexão para WebSocket/SSE/LongPolling, conforme o seu tipo de transporte, para
<reverse-proxy-URL>/client/, que chamamos de pedido de conexão.
Certifique-se de que o proxy reverso suporta ambos os tipos de transporte para
/client/subdiretório. Por exemplo, quando o tipo de transporte for WebSocket, verifique se o proxy reverso suporta ambos HTTP e WebSocket no subcaminho/client/.Se você configurou vários serviços SignalR por trás do proxy reverso, certifique-se de que
negotiatea solicitação econnecta solicitação com o mesmoasrs_request_idparâmetro de consulta (o que significa que são para a mesma conexão) sejam roteadas para a mesma instância de serviço SignalR.- Envio de solicitação HTTP para
Para
ServerSentEvent(SSE), certifique-se de que o proxy reverso não armazena a resposta em buffer ou em cache. Por exemplo, o Gerenciamento de API lista os itens de verificação aqui ao configurar a API para eventos enviados pelo servidor.Quando o proxy reverso é usado, você pode proteger ainda mais seu serviço SignalR desativando o acesso à rede pública e usando pontos de extremidade privados para permitir apenas o acesso privado do seu proxy reverso ao seu serviço SignalR através da VNet.
Próximos passos
Saiba mais sobre os componentes internos do Azure SignalR.