Wildcard Application Gateway Como pode ver na imagem acima, existem múltiplos ouvintes ‘multi-site’ configurados neste gateway de aplicação: – *.contoso.com, *.fabrikam.* – *.contos-*, frabrikam-??.com Estes ouvintes podem então ser encaminhados para os mesmos ou diferentes pools backend. Então, usando um caractere wildcard no nome do host, você pode combinar vários nomes de host em um único ouvinte. Por exemplo, *.contoso.com pode combinar com ecom.contoso.com, b2b.contoso.com assim como cliente1.b2b.contoso.com e assim por diante. Usando um array de nomes de host, você pode configurar mais de um nome de host para um ouvinte, para encaminhar pedidos para um pool backend. Por exemplo, um ouvinte pode conter contoso.com, fabrikam.com que aceitará pedidos para ambos os nomes de host.
As advertências dos ouvintes wildcard
Os ouvintes wildcard ainda estão em pré-visualização, há algumas considerações e limitações a levar em conta: 1. Esta funcionalidade está em pré-visualização e está disponível apenas para Standard_v2 e WAF_v2 SKU do Application Gateway.
2. Esta funcionalidade está actualmente disponível apenas através do Azure PowerShell e do Azure CLI. O suporte ao portal está a chegar em breve. Por favor note que como o suporte ao portal não está totalmente disponível, se estiver a utilizar apenas o parâmetro HostNames, o ouvinte irá aparecer como um ouvinte básico no portal e a coluna Host name da vista de listagem do ouvinte não irá mostrar os nomes dos anfitriões que estão configurados. Para quaisquer alterações a um wildcard listener, certifique-se que usa o Azure PowerShell ou CLI até que este seja suportado no portal. Eu irei compartilhar algumas screenshots sobre isso mais abaixo neste blog.
3. Você não pode criar uma regra de redirecionamento com um ouvinte alvo que usa wildcard ou vários nomes de host. Então você não pode criar um redirecionamento HTTP para HTTPS como você pode em uma configuração de um ouvinte que não seja um wildcard.
4. Para verificação do estado do backend, você não pode associar múltiplas sondas personalizadas por configurações HTTP. Em vez disso, você pode sondar um dos sites no backend ou usar “127.0.0.1” para sondar o localhost do servidor backend. Entretanto, quando você estiver usando wildcard ou vários nomes de host em um ouvinte, os pedidos para todos os padrões de domínio especificados serão roteados para o pool do backend, dependendo do tipo de regra (básica ou baseada em caminho).
5. Você não pode usar uma expressão regular para mencionar o nome do host. Você só pode usar caracteres curinga como asterisco (*) e ponto de interrogação (?) para formar o host name pattern.
6. Se vários nomes de host forem mencionados no mesmo ouvinte, você deve carregar um certificado SAN (Subject Alternative Names) com os CNs correspondentes aos nomes de host mencionados.
7. Se for um wildcard hostname como *.contoso.com, você deve carregar um wildcard certificate com CN como *.contoso.com
Suficiente com a teoria! Como eu implanto?
Como mencionado anteriormente, no momento de escrever este blog, você pode tanto o usuário Powershell ou Azure CLI.
Eu tenho um exemplo de Powerhell que vai fazer o seguinte: 1. Encontre a VNET e Subnet approriate para implantar o AGW em. 2. Crie um endereço IP público para ser usado pelo AGW 3. Crie configurações IP para o Gateway e o frontend 4. Crie backend-pools 5. Criar ouvintes e regras de roteamento 6. Criar a política de Firewall para Aplicações Web 7. Configurar as configurações da política TLS 8. Criar o gateway da aplicação (neste ponto será apenas um AGW HTTP)
Então, após o AGW ter sido implantado com sucesso, o script adicionará HTTPS ao gateway da aplicação:
9. Encontre o AGW e armazene-o em uma variável 10. Adicione o certificado SSL (PFX + senha necessária) e armazene-o em uma variável 11. Adicione a porta do ouvinte HTTPS e guarde-a numa variável 12. Obtenha a configuração do IP frontend e armazene-a em uma variável 13. Adicione um ouvinte frontend (HTTPS) e armazene-o em uma variável 14. Pegue o backendpool e armazene-o em uma variável 15. Adicione configurações do backend HTTP e armazene-o em uma variável 16. Anexe todos os togheter acima em uma Regra de Roteamento 17. Atualize o Application Gateway com tudo criado nos passos 8-15.
O script powerhell
Antes de poder executar o script powerhell, há algumas coisas que você precisa fazer:
1. Entre no Azure, usando o powershell (login-azAccount)
2. Encontre a assinatura na qual você quer implantar (get-azSubscription)
3. Selecione essa assinatura (select-azsubscription -subscription “SUBSCRIPTIONNAME”)
4. Certifique-se de ter criado uma VNET e uma Subnet na sua assinatura, que seja capaz de implantar o AGW. Para o dimensionamento de sub-rede, recomenda-se o uso de uma sub-rede /26 como minium.
5. Se você tiver uma VNET e sub-redes funcionando em um grupo de recursos de sua escolha, preencha os seguintes parâmetros com as informações apropriadas: – Virtual Network ResourceGroup name ($VnetRGName) – Virtual Network Name ($VnetName) – SubnetName ($SubnetName)
6. O resto das variáveis é realmente com você. Porque pode haver coisas envolvidas como convenção de nomes, configurações de timeout, etc. Eu não vou recomendar nada aqui. Meu script é baseado em um único wildcard listener com um único backend e algumas configurações padrão de http, mas fique à vontade para editá-las a seu gosto.
7. Atenção especial vai para as configurações WAF & SSL/TLS. Este script habilitará o WAF para você e criará uma política WAF no mesmo grupo de recursos em que o Application Gateway será implantado. Esta política WAF é então vinculada ao AGW. Para configurações SSL/TLS eu estou ativando a última pré-configuração (melhores práticas) de policysetting.
Qual será o resultado?
Após ter executado o script powerhell, você vai acabar com um grupo de recursos que tem os seguintes recursos:
Recursos utilizados
1. O próprio Application Gateway 2. Um endereço IP público que está vinculado ao Application Gateway 3. Uma Política de Firewall de Aplicações Web personalizada que está vinculada ao Application Gateway
Espero que este post ajude você a implantar e configurar o Wildcard Application Gateway que você deseja!
Ligações úteis: O script Powershell no github Microsoft documentation
Leave a Reply