Ligações Híbridas do Serviço de Aplicações do Azure

As Conexões Híbridas são um serviço no Azure e um recurso no Serviço de Aplicativo do Azure. Como serviço, ele tem usos e recursos além daqueles que são usados no Serviço de Aplicativo. Para saber mais sobre Conexões Híbridas e seu uso fora do Serviço de Aplicativo, consulte Conexões híbridas de retransmissão do Azure.

No Serviço de Aplicativo, as Conexões Híbridas podem ser usadas para acessar recursos de aplicativos em qualquer rede que possa fazer chamadas de saída para o Azure pela porta 443. As Ligações Híbridas fornecem acesso a partir da sua aplicação a um ponto de extremidade TCP e não permitem uma nova forma de aceder à sua aplicação. Conforme usado no Serviço de Aplicativo, cada Conexão Híbrida se correlaciona a uma única combinação de host TCP e porta. Esse recurso permite que seus aplicativos acessem recursos em qualquer sistema operacional, desde que seja um ponto de extremidade TCP. O recurso Conexões híbridas não sabe nem se importa com o que é o protocolo do aplicativo ou com o que você está acessando. Ele simplesmente fornece acesso à rede.

Como funciona

As Conexões Híbridas exigem que um agente de retransmissão seja implantado onde ele possa alcançar o ponto de extremidade desejado e o Azure. O agente de retransmissão, Hybrid Connection Manager (HCM), chama o Azure Relay pela porta 443. No site do aplicativo Web, a infraestrutura do Serviço de Aplicativo também se conecta ao Azure Relay em nome do seu aplicativo. Por meio das conexões associadas, seu aplicativo pode acessar o ponto de extremidade desejado. A conexão usa TLS 1.2 para chaves de segurança e assinatura de acesso compartilhado (SAS) para autenticação e autorização.

Diagram of Hybrid Connection high-level flow.

Quando seu aplicativo faz uma solicitação DNS que corresponde a um ponto de extremidade de Conexão Híbrida configurado, o tráfego TCP de saída é redirecionado por meio da Conexão Híbrida.

Nota

Isso significa que você deve tentar sempre usar um nome DNS para sua conexão híbrida. Alguns softwares clientes não fazem uma pesquisa de DNS se o ponto de extremidade usar um endereço IP.

Benefícios da Conexão Híbrida do Serviço de Aplicativo

Há muitos benefícios para o recurso de conexões híbridas, incluindo:

  • Os aplicativos podem acessar sistemas e serviços locais com segurança.
  • O recurso não requer um ponto de extremidade acessível pela Internet.
  • É rápido e fácil de configurar. Não são necessários gateways.
  • Cada Conexão Híbrida corresponde a uma única combinação host:port, útil para segurança.
  • Normalmente, não requer furos de firewall. As conexões são todas de saída através de portas web padrão.
  • Como o recurso é de nível de rede, ele é agnóstico à linguagem usada pelo seu aplicativo e à tecnologia usada pelo ponto de extremidade.
  • Ele pode ser usado para fornecer acesso em várias redes a partir de um único aplicativo.
  • Suportado em GA para aplicativos Windows e aplicativos Linux. Ele não é suportado para contêineres personalizados do Windows.

Coisas que você não pode fazer com conexões híbridas

As coisas que você não pode fazer com as Conexões Híbridas incluem:

  • Monte uma unidade.
  • Use UDP.
  • Acesse serviços baseados em TCP que usam portas dinâmicas, como o Modo Passivo FTP ou o Modo Passivo Estendido.
  • Suporte LDAP, porque pode exigir UDP.
  • Ofereça suporte ao Ative Directory, porque você não pode ingressar no domínio de um trabalhador do Serviço de Aplicativo.

Adicionar e criar conexões híbridas em seu aplicativo

Para criar uma Ligação Híbrida, aceda ao portal do Azure e selecione a sua aplicação. Selecione Rede>Configurar seus pontos de extremidade de conexão híbrida. Aqui você pode ver as Conexões Híbridas configuradas para seu aplicativo.

Screenshot of Hybrid Connection list.

Para adicionar uma nova conexão híbrida, selecione [+] Adicionar conexão híbrida. Você verá uma lista das Conexões Híbridas que você já criou. Para adicionar um ou mais deles ao seu aplicativo, selecione os desejados e, em seguida, selecione Adicionar conexão híbrida selecionada.

Screenshot of Hybrid Connection portal.

Se quiser criar uma nova conexão híbrida, selecione Criar nova conexão híbrida. Especificar:

  • Nome da conexão híbrida.
  • Nome do host do ponto final.
  • Porta do ponto final.
  • Namespace do Service Bus que você deseja usar.

Screenshot of Create new hybrid connection dialog box.

Cada Conexão Híbrida está vinculada a um namespace do Service Bus e cada namespace do Service Bus está em uma região do Azure. É importante tentar usar um namespace do Service Bus na mesma região do seu aplicativo, para evitar a latência induzida pela rede.

Se quiser remover a Ligação Híbrida da sua aplicação, clique com o botão direito do rato na mesma e selecione Desligar.

Quando uma Conexão Híbrida é adicionada ao seu aplicativo, você pode ver detalhes sobre ele simplesmente selecionando-o.

Screenshot of Hybrid connections details.

Criar uma conexão híbrida no portal do Azure Relay

Além da experiência do portal a partir da sua aplicação, pode criar Ligações Híbridas a partir do portal de Retransmissão do Azure. Para que uma Conexão Híbrida seja usada pelo Serviço de Aplicativo, ela deve:

  • Requer autorização do cliente.
  • Tenha um item de metadados e um ponto de extremidade nomeado que contenha uma combinação host:port como o valor.

Conexões híbridas e planos do Serviço de Aplicativo

As Conexões Híbridas do Serviço de Aplicativo estão disponíveis apenas em SKUs de preços Básico, Padrão, Premium e Isolado. As Conexões Híbridas não estão disponíveis para aplicativos funcionais nos planos de Consumo. Existem limites ligados ao plano de preços.

Plano de preços Número de conexões híbridas utilizáveis no plano
Básica 5 por plano
Standard 25 por plano
Premium (v1-v3) 220 por aplicação
Isolado (v1-v2) 220 por aplicação

A interface do usuário do plano do Serviço de Aplicativo mostra quantas Conexões Híbridas estão sendo usadas e por quais aplicativos.

Screenshot of App Service plan properties.

Selecione a Conexão híbrida para ver os detalhes. Você pode ver todas as informações que viu na visualização do aplicativo. Você também pode ver quantos outros aplicativos no mesmo plano estão usando essa Conexão Híbrida.

Há um limite para o número de pontos de extremidade de Conexão Híbrida que podem ser usados em um plano do Serviço de Aplicativo. Cada conexão híbrida usada, no entanto, pode ser usada em qualquer número de aplicativos nesse plano. Por exemplo, uma única Conexão Híbrida usada em cinco aplicativos separados em um plano do Serviço de Aplicativo conta como uma Conexão Híbrida.

Preços

Além de haver um requisito de SKU do plano do Serviço de Aplicativo, há um custo extra para usar Conexões Híbridas. Há uma cobrança para cada ouvinte usado por uma conexão híbrida. O ouvinte é o Hybrid Connection Manager. Se você tivesse cinco Conexões Híbridas suportadas por dois Gerenciadores de Conexões Híbridas, seriam 10 ouvintes. Para obter mais informações, consulte Preços do Service Bus.

Gerenciador de conexões híbridas

O recurso Conexões Híbridas requer um agente de retransmissão na rede que hospeda seu ponto de extremidade de Conexão Híbrida. Esse agente de retransmissão é chamado de HCM (Hybrid Connection Manager). Para baixar o HCM, do seu aplicativo no portal do Azure, selecione Rede>: Configurar seus pontos de extremidade de conexão híbrida.

Esta ferramenta é executada no Windows Server 2012 e posterior. O HCM é executado como um serviço e conecta a saída ao Azure Relay na porta 443.

Depois de instalar o HCM, você pode executar HybridConnectionManagerUi.exe para usar a interface do usuário para a ferramenta. Esse arquivo está no diretório de instalação do Gerenciador de Conexões Híbridas. No Windows 10, você também pode procurar por UI do Gerenciador de Conexões Híbridas na sua caixa de pesquisa.

Screenshot of Hybrid Connection Manager.

Quando você inicia a interface do usuário do HCM, a primeira coisa que você vê é uma tabela que lista todas as conexões híbridas configuradas com essa instância do HCM. Se quiser fazer alterações, primeiro autentique-se com o Azure.

Para adicionar uma ou mais conexões híbridas ao seu HCM:

  1. Inicie a interface do usuário do HCM.

  2. Selecione Adicionar uma nova conexão híbrida. Screenshot of Configure New Hybrid Connections.

  3. Inicie sessão com a sua conta do Azure para disponibilizar as suas Ligações Híbridas com as suas subscrições. O HCM não continua a usar sua conta do Azure além desta etapa.

  4. Escolha uma subscrição.

  5. Selecione as conexões híbridas que você deseja que o HCM retransmita. Screenshot of Hybrid Connections.

  6. Selecione Guardar.

Agora você pode ver as Conexões Híbridas adicionadas. Você também pode selecionar a Conexão híbrida configurada para ver os detalhes.

Screenshot of Hybrid Connection Details.

Para suportar as Conexões Híbridas com as quais está configurado, o HCM exige:

  • Acesso TCP ao Azure pela porta 443.
  • Acesso TCP ao ponto de extremidade de Conexão Híbrida.
  • A capacidade de fazer pesquisas de DNS no host do ponto de extremidade e no namespace do Service Bus. Em outras palavras, o nome do host na conexão de retransmissão do Azure deve ser resolúvel a partir da máquina que hospeda o HCM.

Nota

O Azure Relay depende de Web Sockets para conectividade. Esse recurso só está disponível no Windows Server 2012 ou posterior. Por isso, o HCM não é suportado em nada anterior ao Windows Server 2012.

Redundância

Cada HCM pode suportar várias conexões híbridas. Além disso, qualquer conexão híbrida pode ser suportada por vários HCMs. O comportamento padrão é rotear o tráfego entre os HCMs configurados para qualquer ponto de extremidade determinado. Se você quiser alta disponibilidade em suas conexões híbridas da rede, execute vários HCMs em máquinas separadas. O algoritmo de distribuição de carga usado pelo serviço de retransmissão para distribuir o tráfego para os HCMs é uma atribuição aleatória.

Adicionar manualmente uma conexão híbrida

Para permitir que alguém fora da sua assinatura hospede uma instância HCM para uma determinada Conexão Híbrida, compartilhe a cadeia de conexão do gateway para a Conexão Híbrida com essa pessoa. Você pode ver a cadeia de conexão do gateway nas propriedades de Conexão Híbrida no portal do Azure. Para usar essa cadeia de caracteres, selecione Enter Manually no HCM e cole na cadeia de conexão do gateway.

Manually add a Hybrid Connection.

Atualização

Há atualizações periódicas para o Hybrid Connection Manager para corrigir problemas ou fornecer melhorias. Quando as atualizações são lançadas, um pop-up aparece na interface do usuário do HCM. A aplicação da atualização aplica as alterações e reinicia o HCM.

Adicionando uma conexão híbrida ao seu aplicativo programaticamente

Há suporte à CLI do Azure para conexões híbridas. Os comandos fornecidos operam no nível do aplicativo e do plano do Serviço de Aplicativo. Os comandos no nível do aplicativo são:

az webapp hybrid-connection

Group
    az webapp hybrid-connection : Methods that list, add and remove hybrid-connections from webapps.
        This command group is in preview. It may be changed/removed in a future release.
Commands:
    add    : Add a hybrid-connection to a webapp.
    list   : List the hybrid-connections on a webapp.
    remove : Remove a hybrid-connection from a webapp.

Os comandos do plano do Serviço de Aplicativo permitem que você defina qual chave uma determinada conexão híbrida usa. Há duas chaves definidas em cada conexão híbrida, uma primária e uma secundária. Você pode optar por usar a chave primária ou secundária com os comandos abaixo. Esta opção permite-lhe mudar de teclas para quando quiser regenerar periodicamente as suas chaves.

az appservice hybrid-connection --help

Group
    az appservice hybrid-connection : A method that sets the key a hybrid-connection uses.
        This command group is in preview. It may be changed/removed in a future release.
Commands:
    set-key : Set the key that all apps in an appservice plan use to connect to the hybrid-
                connections in that appservice plan.

Proteja suas conexões híbridas

Uma Conexão Híbrida existente pode ser adicionada a outros Aplicativos Web do Serviço de Aplicativo por qualquer usuário que tenha permissões suficientes na Retransmissão do Barramento de Serviço do Azure subjacente. Isso significa que, se você precisar impedir que outras pessoas reutilizem essa mesma Conexão Híbrida (por exemplo, quando o recurso de destino for um serviço que não tenha outras medidas de segurança em vigor para impedir o acesso não autorizado), deverá bloquear o acesso à Retransmissão do Barramento de Serviço do Azure.

Qualquer pessoa com Reader acesso à Retransmissão pode ver a Conexão Híbrida ao tentar adicioná-la ao seu Aplicativo Web no portal do Azure, mas não pode adicioná-la porque não tem as permissões para recuperar a cadeia de conexão usada para estabelecer a conexão de retransmissão. Para adicionar com êxito a Conexão Híbrida, eles devem ter a listKeys permissão (Microsoft.Relay/namespaces/hybridConnections/authorizationRules/listKeys/action). A Contributor função ou qualquer outra função que inclua essa permissão na Retransmissão permite que os usuários usem a Conexão Híbrida e a adicionem aos seus próprios Aplicativos Web.

Gerencie suas conexões híbridas

Se você precisar alterar o host ou a porta do ponto de extremidade para uma conexão híbrida, siga as seguintes etapas:

  1. Remova a Conexão Híbrida do Gerenciador de Conexões Híbridas na máquina local selecionando a conexão e selecionando Remover no canto superior esquerdo da janela Detalhes da Conexão Híbrida.
  2. Desconecte a Conexão Híbrida do Serviço de Aplicativo navegando até Conexões Híbridas na página Rede do Serviço de Aplicativo .
  3. Navegue até a Retransmissão do ponto de extremidade que você precisa atualizar e selecione Conexões híbridas em Entidades no menu de navegação à esquerda.
  4. Selecione a Conexão híbrida que deseja atualizar e selecione Propriedades em Configurações no menu de navegação à esquerda.
  5. Faça as alterações e pressione Salvar alterações na parte superior.
  6. Retorne às configurações de Conexões Híbridas do Serviço de Aplicativo e adicione a Conexão Híbrida novamente. Certifique-se de que o ponto de extremidade está atualizado conforme pretendido. Se você não vir a Conexão Híbrida na lista, atualize em 5 a 10 minutos.
  7. Retorne ao Hybrid Connection Manager na máquina local e adicione a conexão novamente.

Resolução de Problemas

O status de "Conectado" significa que pelo menos um HCM está configurado com essa Conexão Híbrida e é capaz de acessar o Azure. Se o status da sua Conexão Híbrida não disser Conectado, sua Conexão Híbrida não estará configurada em nenhum HCM que tenha acesso ao Azure. Quando o HCM mostra Não conectado, há algumas coisas a verificar:

  • Seu host tem acesso de saída ao Azure na porta 443? Você pode testar a partir do host HCM usando o comando do PowerShell Test-NetConnection Destination -P Port

  • Seu HCM está potencialmente em mau estado? Tente reiniciar o serviço local 'Azure Hybrid Connection Manager Service'.

  • Você tem software conflitante instalado? O Gerenciador de Conexões Híbridas não pode coexistir com o Gerenciador de Conexões Híbridas do Biztalk ou o Service Bus for Windows Server. Quando você instala o HCM, todas as versões desses pacotes devem ser removidas primeiro.

  • Você tem um firewall entre seu host HCM e o Azure? Em caso afirmativo, você precisará permitir o acesso de saída à URL do ponto de extremidade do Service Bus E aos gateways do Service Bus que atendem sua Conexão Híbrida.

    • Você pode encontrar a URL do ponto de extremidade do Service Bus na interface do usuário do Gerenciador de Conexões Híbridas.

    Screenshot of Hybrid Connection Service Bus endpoint.

    • Os gateways do Service Bus são os recursos que aceitam a solicitação na Conexão Híbrida e a passam pelo Azure Relay. Você precisa permitir a lista de todos os 128 gateways. Os gateways estão no formato G#-prod-[stamp]-sb.servicebus.windows.net , onde "#" é um número entre 0 e 127 e "stamp" é o nome da instância no data center do Azure onde o ponto de extremidade do Service Bus existe.
      • Se você pode usar um curinga, você pode allowlist "*.servicebus.windows.net".

      • Se você não puder usar um curinga, deverá permitir a lista de todos os 128 gateways.

        Você pode descobrir o carimbo usando "nslookup" na URL do ponto de extremidade do Service Bus.

        Screenshot of terminal showing where to find the stamp name for the Service Bus.

        Neste exemplo, o carimbo é "sn3-010". Para permitir a lista dos gateways do Service Bus, você precisa das seguintes entradas:

        G0-prod-sn3-010-sb.servicebus.windows.net
        G1-prod-sn3-010-sb.servicebus.windows.net
        G2-prod-sn3-010-sb.servicebus.windows.net
        G3-prod-sn3-010-sb.servicebus.windows.net
        ...
        G126-prod-sn3-010-sb.servicebus.windows.net
        G127-prod-sn3-010-sb.servicebus.windows.net

Se o seu estado indicar Ligado , mas a sua aplicação não conseguir alcançar o seu ponto final, então:

  • Certifique-se de que está a utilizar um nome DNS na sua Ligação Híbrida. Se você usar um endereço IP, a pesquisa de DNS do cliente necessária pode não acontecer. Se o cliente em execução no seu aplicativo Web não fizer uma pesquisa de DNS, a Conexão Híbrida não funcionará.
  • Verifique se o nome DNS usado em sua conexão híbrida pode ser resolvido a partir do host HCM. Verifique a resolução usando nslookup EndpointDNSname onde EndpointDNSname é uma correspondência exata com o que é usado na sua definição de Conexão Híbrida.
  • Testar o acesso do host HCM ao ponto de extremidade usando o comando do PowerShell Test-NetConnection EndpointDNSname -P Port Se não conseguir aceder ao ponto de extremidade a partir do anfitrião HCM, verifique as firewalls entre os dois anfitriões, incluindo quaisquer firewalls baseados em anfitrião no anfitrião de destino.
  • Se você estiver usando o Serviço de Aplicativo no Linux, certifique-se de que não está usando "localhost" como seu host de ponto final. Em vez disso, use o nome da máquina se estiver tentando criar uma conexão com um recurso na máquina local.

No Serviço de Aplicativo, a ferramenta de linha de comando tcpping pode ser invocada a partir do console de Ferramentas Avançadas (Kudu). Essa ferramenta pode dizer se você tem acesso a um ponto de extremidade TCP, mas não informa se você tem acesso a um ponto de extremidade de Conexão Híbrida. Quando você usa a ferramenta no console em um ponto de extremidade de Conexão Híbrida, está apenas confirmando que ela usa uma combinação host:port.

Se você tiver um cliente de linha de comando para seu ponto de extremidade, poderá testar a conectividade no console do aplicativo. Por exemplo, você pode testar o acesso aos pontos de extremidade do servidor Web usando curl.