Integrar o Ambiente do Serviço de Aplicações ILB no Gateway de Aplicação do Azure

O Ambiente do Serviço de Aplicativo é uma implantação do Serviço de Aplicativo do Azure na sub-rede da rede virtual do Azure de um cliente. Ele pode ser implantado com um ponto de extremidade externo ou interno para acesso ao aplicativo. A implantação do ambiente do Serviço de Aplicativo com um ponto de extremidade interno é chamada de ambiente do Serviço de Aplicativo (ASE) do balanceador de carga interno (ILB).

Os firewalls de aplicativos da Web ajudam a proteger seus aplicativos da Web inspecionando o tráfego da Web de entrada para bloquear injeções de SQL, scripts entre sites, uploads de malware ou DDoS de aplicativos e outros ataques. Você pode obter um dispositivo WAF do Azure Marketplace ou pode usar o Gateway de Aplicativo do Azure.

O Gateway de Aplicativo do Azure é um dispositivo virtual que fornece balanceamento de carga de camada 7, descarregamento de TLS/SSL e proteção de firewall de aplicativo Web (WAF). Ele pode ouvir em um endereço IP público e rotear o tráfego para o ponto de extremidade do seu aplicativo. As informações a seguir descrevem como integrar um gateway de aplicativo configurado pelo WAF a um aplicativo em um ambiente do ILB App Service.

A integração do gateway de aplicativo com o ambiente do Serviço de Aplicativo ILB ocorre em um nível de aplicativo. Ao configurar o gateway de aplicativo com seu ambiente do ILB App Service, você está fazendo isso para aplicativos específicos em seu ambiente do ILB App Service. Essa técnica permite hospedar aplicativos multilocatários seguros em um único ambiente ILB App Service.

Screenshot of High level integration diagram

Nestas instruções, irá:

  • Crie um Gateway de Aplicativo do Azure.
  • Configure o gateway de aplicativo para apontar para um aplicativo em seu ambiente do ILB App Service.
  • Edite o nome de host DNS público que aponta para o gateway de aplicativo.

Pré-requisitos

Para integrar seu gateway de aplicativo ao ambiente do ILB App Service, você precisa:

  • Um ambiente ILB App Service.
  • Uma zona DNS privada para o ambiente do Serviço de Aplicativo ILB.
  • Um aplicativo em execução no ambiente do Serviço de Aplicativo ILB.
  • Um nome DNS público usado posteriormente para apontar para o gateway de aplicativo.
  • Se você precisar usar a criptografia TLS/SSL para o gateway de aplicativo, será necessário um certificado público válido usado para vincular ao gateway de aplicativo.

Ambiente do Serviço de Aplicativo ILB

Para obter detalhes sobre como criar um ambiente do Serviço de Aplicativo ILB, consulte Criar um ASE no portal do Azure e Criar um modelo ASE com ARM.

  • Depois que o ILB ASE é criado, o domínio padrão é <YourAseName>.appserviceenvironment.net.

    Screenshot of ILB ASE Overview

  • Um balanceador de carga interno é provisionado para acesso de entrada. Você pode verificar o endereço de entrada nos endereços IP em Configurações ASE. Você pode criar uma zona DNS privada mapeada para esse endereço IP mais tarde.

    Screenshot of getting the inbound address from ILB ASE IP addresses settings.

Uma zona DNS privada

Você precisa de uma zona DNS privada para resolução de nomes internos. Crie-o usando o nome ASE usando os conjuntos de registros mostrados na tabela a seguir (para obter instruções, consulte Guia de início rápido - Criar uma zona DNS privada do Azure usando o portal do Azure).

Nome Tipo valor
* A Endereço de entrada ASE
@ A Endereço de entrada ASE
@ SOA Nome DNS ASE
*.scm A Endereço de entrada ASE

Serviço de aplicativo no ILB ASE

Você precisa criar um plano do Serviço de Aplicativo e um aplicativo em seu ILB ASE. Ao criar o aplicativo no portal, selecione seu ILB ASE como a Região.

Um nome DNS público para o gateway de aplicativo

Para se conectar ao gateway de aplicativo pela Internet, você precisa de um nome de domínio roteável. Nesse caso, usei um nome asabuludemo.com de domínio roteável e planejei me conectar a um Serviço de Aplicativo com esse nome app.asabuludemo.comde domínio. O endereço IP mapeado para este nome de domínio do aplicativo precisa ser definido como o endereço IP público do Application Gateway após a criação do gateway do aplicativo. Com um domínio público mapeado para o gateway de aplicativo, você não precisa configurar um domínio personalizado no Serviço de Aplicativo. Você pode comprar um nome de domínio personalizado com Domínios do Serviço de Aplicativo.

Um certificado público válido

Para melhorar a segurança, é recomendável vincular o certificado TLS/SSL para criptografia de sessão. Para vincular o certificado TLS/SSL ao gateway de aplicativo, é necessário um certificado público válido com as seguintes informações. Com os certificados do Serviço de Aplicativo, você pode comprar um certificado TLS/SSL e exportá-lo no formato .pfx.

Nome valor Description
Nome comum <yourappname>.<yourdomainname>Por exemplo: app.asabuludemo.com
ou *.<yourdomainname>, por exemplo: *.asabuludemo.com
Um certificado padrão ou um certificado curinga para o gateway de aplicativo
Nome alternativo do assunto <yourappname>.scm.<yourdomainname>Por exemplo: app.scm.asabuludemo.com
ou *.scm.<yourdomainname>, por exemplo: *.scm.asabuludemo.com
A SAN que permite conectar-se ao serviço kudu do Serviço de Aplicativo. É uma configuração opcional, se você não quiser publicar o serviço kudu do Serviço de Aplicativo na Internet.

O arquivo de certificado deve ter uma chave privada e salvar no formato .pfx, ele será importado para o gateway de aplicativo mais tarde.

Criar um gateway de aplicação

Para a criação básica do gateway de aplicativo, consulte Tutorial: Criar um gateway de aplicativo com um Firewall de Aplicativo Web usando o portal do Azure.

Neste tutorial, usaremos o portal do Azure para criar um gateway de aplicativo com o ambiente do Serviço de Aplicativo ILB.

No portal do Azure, selecione Novo>Gateway de Aplicativo de Rede> para criar um gateway de aplicativo.

  1. Configuração básica

    Na lista suspensa Camada , você pode selecionar Standard V2 ou WAF V2 para habilitar o recurso WAF no gateway de aplicativo.

  2. Configuração de front-ends

    Selecione o tipo de endereço IP Frontend como Público, Privado ou Ambos. Se você definir como Privado ou Ambos, precisará atribuir um endereço IP estático no intervalo de sub-rede do gateway de aplicativo. Nesse caso, definimos como IP público apenas para ponto de extremidade público.

    • Endereço IP público - Você precisa associar um endereço IP público para o acesso público do gateway de aplicativo. Grave este endereço IP, você precisa adicionar um registro em seu serviço DNS mais tarde.

      Screenshot of getting a public IP address from the application gateway frontends setting.

  3. Configuração de back-ends

    Insira um nome de pool de back-end e selecione os Serviços de Aplicativo ou o endereço IP ou FQDN em Tipo de destino. Nesse caso, definimos como Serviços de aplicativo e selecionamos Nome do serviço de aplicativo na lista suspensa de destino.

    Screenshot of adding a backend pool name in backends setting.

  4. Definição de configuração

    Em Definição de configuração, você precisa adicionar uma regra de roteamento selecionando Adicionar um ícone de regra de roteamento.

    Screenshot of adding a routing rule in configuration setting.

    Você precisa configurar destinos Listener e Backend em uma regra de roteamento. Você pode adicionar um ouvinte HTTP para implantação de prova de conceito ou adicionar um ouvinte HTTPS para aprimoramento de segurança.

    • Para se conectar ao gateway de aplicativo com o protocolo HTTP, você pode criar um ouvinte com as seguintes configurações,

      Parâmetro valor Description
      Nome da regra Por exemplo: http-routingrule Nome do roteamento
      Nome do cliente de escuta Por exemplo: http-listener Nome do cliente de escuta
      IP de Front-end Público Para acesso à Internet, defina como Público
      Protocolo HTTP Não use criptografia TLS/SSL
      Porta 80 Porta HTTP padrão
      Tipo de ouvinte Multi-site Permitir ouvir vários sites no gateway de aplicativo
      Host type Múltiplo/curinga Defina como nome de site múltiplo ou curinga se o tipo de ouvinte estiver definido como vários sites.
      Nome do anfitrião Por exemplo: app.asabuludemo.com Definir como um nome de domínio roteável para o Serviço de Aplicativo

      Screenshot of HTTP Listener of the application gateway Routing Rule.

    • Para se conectar ao gateway de aplicativo com criptografia TLS/SSL, você pode criar um ouvinte com as seguintes configurações,

      Parâmetro valor Description
      Nome da regra Por exemplo: https-routingrule Nome do roteamento
      Nome do cliente de escuta Por exemplo: https-listener Nome do cliente de escuta
      IP de Front-end Público Para acesso à Internet, defina como Público
      Protocolo HTTPS Usar criptografia TLS/SSL
      Porta 443 Porta HTTPS padrão
      Definições de HTTPS Carregar um certificado Carregue um certificado que contém o CN e a chave privada com o formato .pfx.
      Tipo de ouvinte Multi-site Permitir ouvir vários sites no gateway de aplicativo
      Host type Múltiplo/curinga Defina como nome de site múltiplo ou curinga se o tipo de ouvinte estiver definido como vários sites.
      Nome do anfitrião Por exemplo: app.asabuludemo.com Definir como um nome de domínio roteável para o Serviço de Aplicativo

      HTTPS listener of the application gateway Routing Rule.

    • Você precisa configurar uma configuração de Pool de Back-end e HTTP em Destinos de back-end. O pool de back-end foi configurado em etapas anteriores. Selecione Adicionar novo link para adicionar uma configuração HTTP.

      Screenshot of adding new link to add an H T T P setting.

    • Configurações HTTP listadas abaixo:

      Parâmetro valor Description
      Nome da configuração HTTP Por exemplo: https-setting Nome da configuração HTTP
      Protocolo de back-end HTTPS Usar criptografia TLS/SSL
      Porta back-end 443 Porta HTTPS padrão
      Usar certificado de autoridade de certificação bem conhecido Sim O nome de domínio padrão do ILB ASE é .appserviceenvironment.net, o certificado deste domínio é emitido por uma autoridade raiz pública confiável. Na configuração Certificado raiz confiável, você pode definir para usar o certificado raiz confiável de CA bem conhecido.
      Substituir por novo nome de host Sim O cabeçalho do nome do host será substituído ao conectar-se ao aplicativo no ILB ASE
      Substituição do nome do host Escolha o nome do host do destino de back-end Ao definir o pool de back-end para o Serviço de Aplicativo, você pode escolher o host do destino de back-end
      Criar testes personalizados Não Usar sonda de integridade padrão

      Screenshot of **Add an H T T P setting** dialog.

Configurar uma integração de gateway de aplicativo com ILB ASE

Para acessar o ILB ASE a partir do gateway de aplicativo, você precisa verificar se há um link de rede virtual para a zona DNS privada. Se não houver nenhuma rede virtual vinculada à VNet do gateway de aplicativo, adicione um link de rede virtual com as etapas a seguir.

  • Para configurar o link de rede virtual com a zona DNS privada, vá para o plano de configuração da zona DNS privada. Selecione os links>de rede virtual Adicionar

Add a virtual network link to private DNS zone.

  • Insira o nome do link e selecione a respetiva assinatura e rede virtual onde o gateway de aplicativo reside.

Screenshot of input link name details to virtual network links setting in private DNS zone.

  • Você pode confirmar o status de integridade do back-end em Integridade do back-end no plano do gateway de aplicativo.

Screenshot of confirm the backend health status from backend health.

Adicionar um registo DNS público

Você precisa configurar um mapeamento DNS adequado ao acessar o gateway de aplicativo pela Internet.

  • O endereço IP público do gateway de aplicativo pode ser encontrado em Configurações de IP Frontend no plano de gateway de aplicativo.

Application gateway frontend IP address can be found in Frontend IP configuration.

  • Use o serviço DNS do Azure como exemplo, você pode adicionar um conjunto de registros para mapear o nome de domínio do aplicativo para o endereço IP público do gateway de aplicativo.

Screenshot of adding a record set to map the app domain name to the public IP address of the application gateway.

Validar conexão

  • Em um acesso de máquina pela Internet, você pode verificar a resolução de nomes do nome de domínio do aplicativo para o endereço IP público do gateway de aplicativo.

validate the name resolution from a command prompt.

  • Em um acesso à máquina pela Internet, teste o acesso à Web a partir de um navegador.

Screenshot of opening a browser, access to the web.