Compartilhar via


Configurar a autenticação mútua com o Application Gateway usando o PowerShell

Este artigo descreve como usar o PowerShell para configurar a autenticação mútua no Gateway de Aplicativo. Autenticação mútua significa que o Gateway de Aplicativo autentica o cliente enviando a solicitação usando o certificado do cliente que você carrega no Gateway de Aplicativo.

Se você não tiver uma assinatura do Azure, crie uma conta gratuita antes de começar.

Observação

Recomendamos que você use o módulo do Az PowerShell do Azure para interagir com o Azure. Para começar, consulte Instalar o Azure PowerShell. Para saber como migrar para o módulo Az PowerShell, confira Migrar o Azure PowerShell do AzureRM para o Az.

Este artigo requer o módulo Azure PowerShell versão 1.0.0 ou posterior. Execute Get-Module -ListAvailable Az para encontrar a versão. Se você precisa atualizar, consulte Instalar o módulo do Azure PowerShell. Se você estiver executando o PowerShell localmente, também precisará executar o Connect-AzAccount para criar uma conexão com o Azure.

Antes de começar

Para configurar a autenticação mútua com um Gateway de Aplicações, você precisa de um certificado de cliente para fazer upload no gateway. O certificado do cliente é usado para validar o certificado que o cliente apresenta ao Gateway de Aplicativo. Para fins de teste, você pode usar um certificado autoassinado. No entanto, isso não é recomendado para cargas de trabalho de produção, pois elas são mais difíceis de gerenciar e não são completamente seguras.

Para saber mais, especialmente sobre que tipo de certificados de cliente você pode carregar, consulte Visão geral da autenticação mútua com o Gateway de Aplicativo.

Criar um grupo de recursos

Primeiro, crie um novo grupo de recursos em sua assinatura.

$resourceGroup = New-AzResourceGroup -Name $rgname -Location $location -Tags @{ testtag = "APPGw tag"}

Criar uma rede virtual

Implante uma rede virtual na qual o Gateway de Aplicativo (Application Gateway) será implantado.

$gwSubnet = New-AzVirtualNetworkSubnetConfig -Name $gwSubnetName -AddressPrefix 10.0.0.0/24
$vnet = New-AzVirtualNetwork -Name $vnetName -ResourceGroupName $rgname -Location $location -AddressPrefix 10.0.0.0/16 -Subnet $gwSubnet
$vnet = Get-AzVirtualNetwork -Name $vnetName -ResourceGroupName $rgname
$gwSubnet = Get-AzVirtualNetworkSubnetConfig -Name $gwSubnetName -VirtualNetwork $vnet

Criar um IP público

Crie um IP público para usar com o Gateway de Aplicativo.

$publicip = New-AzPublicIpAddress -ResourceGroupName $rgname -name $publicIpName -location $location -AllocationMethod Static -sku Standard

Criar a configuração de IP do Gateway de Aplicativo

Crie as configurações de IP e a porta de front-end.

$gipconfig = New-AzApplicationGatewayIPConfiguration -Name $gipconfigname -Subnet $gwSubnet
$fipconfig = New-AzApplicationGatewayFrontendIPConfig -Name $fipconfigName -PublicIPAddress $publicip
$port = New-AzApplicationGatewayFrontendPort -Name $frontendPortName  -Port 443

Configurar o TLS/SSL da interface

Configure os certificados TLS/SSL para o Gateway de Aplicativo.

$password = ConvertTo-SecureString "P@ssw0rd" -AsPlainText -Force
$sslCertPath = $basedir + "/ScenarioTests/Data/ApplicationGatewaySslCert1.pfx"
$sslCert = New-AzApplicationGatewaySslCertificate -Name $sslCertName -CertificateFile $sslCertPath -Password $password

Configurar a autenticação do cliente

Configure a autenticação do cliente no Gateway de Aplicativo. Para obter mais informações sobre como extrair cadeias de certificados de AC de cliente confiáveis a serem usadas aqui, confira como extrair cadeias de certificados de AC de cliente confiáveis.

Importante

Certifique-se de carregar toda a cadeia de certificados da Autoridade Certificadora (CA) do cliente em um único arquivo, e apenas uma cadeia por arquivo. O tamanho máximo de cada arquivo carregado deve ser de 25 KB ou menos.

Observação

É recomendável usar o TLS 1.2 com autenticação mútua, pois o TLS 1.2 será obrigatório a partir de 31 de agosto de 2025.

$clientCertFilePath = $basedir + "/ScenarioTests/Data/TrustedClientCertificate.cer"
$trustedClient01 = New-AzApplicationGatewayTrustedClientCertificate -Name $trustedClientCert01Name -CertificateFile $clientCertFilePath
$sslPolicy = New-AzApplicationGatewaySslPolicy -PolicyType Predefined -PolicyName "AppGwSslPolicy20170401S"
$clientAuthConfig = New-AzApplicationGatewayClientAuthConfiguration -VerifyClientCertIssuerDN
$sslProfile01 = New-AzApplicationGatewaySslProfile -Name $sslProfile01Name -SslPolicy $sslPolicy -ClientAuthConfiguration $clientAuthConfig -TrustedClientCertificates $trustedClient01
$listener = New-AzApplicationGatewayHttpListener -Name $listenerName -Protocol Https -SslCertificate $sslCert -FrontendIPConfiguration $fipconfig -FrontendPort $port -SslProfile $sslProfile01

Definir o pool de back-end e as configurações

Configure o pool de back-end e as configurações do Gateway de Aplicações. Opcionalmente, configure o certificado raiz confiável de back-end para criptografia TLS/SSL de ponta a ponta.

$certFilePath = $basedir + "/ScenarioTests/Data/ApplicationGatewayAuthCert.cer"
$trustedRoot = New-AzApplicationGatewayTrustedRootCertificate -Name $trustedRootCertName -CertificateFile $certFilePath
$pool = New-AzApplicationGatewayBackendAddressPool -Name $poolName -BackendIPAddresses www.microsoft.com, www.bing.com
$poolSetting = New-AzApplicationGatewayBackendHttpSettings -Name $poolSettingName -Port 443 -Protocol Https -CookieBasedAffinity Enabled -PickHostNameFromBackendAddress -TrustedRootCertificate $trustedRoot

Configurar a regra

Configure uma regra no Gateway de Aplicativo.

$rule = New-AzApplicationGatewayRequestRoutingRule -Name $ruleName -RuleType basic -BackendHttpSettings $poolSetting -HttpListener $listener -BackendAddressPool $pool

Configurar a política TLS/SSL padrão para ouvintes futuros

Você configurou uma política TLS/SSL específica do ouvinte ao configurar a autenticação mútua. Nesta etapa, opcionalmente, você pode definir a política TLS/SSL padrão para ouvintes futuros criados.

$sslPolicyGlobal = New-AzApplicationGatewaySslPolicy -PolicyType Predefined -PolicyName "AppGwSslPolicy20170401"

Criar o Application Gateway

Usando tudo o que criamos, implante seu Gateway de Aplicativo.

$sku = New-AzApplicationGatewaySku -Name Standard_v2 -Tier Standard_v2
$appgw = New-AzApplicationGateway -Name $appgwName -ResourceGroupName $rgname -Zone 1,2 -Location $location -BackendAddressPools $pool -BackendHttpSettingsCollection $poolSetting -FrontendIpConfigurations $fipconfig -GatewayIpConfigurations $gipconfig -FrontendPorts $port -HttpListeners $listener -RequestRoutingRules $rule -Sku $sku -SslPolicy $sslPolicyGlobal -TrustedRootCertificate $trustedRoot -AutoscaleConfiguration $autoscaleConfig -TrustedClientCertificates $trustedClient01 -SslProfiles $sslProfile01 -SslCertificates $sslCert

Limpar os recursos

Quando não forem mais necessários, remova o grupo de recursos, o gateway do aplicativo e todos os recursos relacionados usando Remove-AzResourceGroup.

Remove-AzResourceGroup -Name $rgname

Renovar certificados de Autoridade Certificadora (CA) expirados do cliente

Caso o certificado de autoridade de certificação do cliente tenha expirado, você pode atualizar o certificado no gateway por meio das seguintes etapas:

  1. Entrar no Azure
    Connect-AzAccount
    Select-AzSubscription -Subscription "<sub name>"
    
  2. Obtenha a configuração do Gateway de Aplicações
    $gateway = Get-AzApplicationGateway -Name "<gateway-name>" -ResourceGroupName "<resource-group-name>"
    
  3. Remover o certificado de cliente confiável do gateway
    Remove-AzApplicationGatewayTrustedClientCertificate -Name "<name-of-client-certificate>" -ApplicationGateway $gateway
    
  4. Adicione o novo certificado ao gateway
    Add-AzApplicationGatewayTrustedClientCertificate -ApplicationGateway $gateway -Name "<name-of-new-cert>" -CertificateFile "<path-to-certificate-file>"
    
  5. Atualizar o gateway com o novo certificado
    Set-AzApplicationGateway -ApplicationGateway $gateway
    

Próximas etapas