Configurar a autenticação mútua com o Application Gateway por meio do PowerShell
Este artigo descreve como usar o PowerShell para configurar a autenticação mútua em seu Gateway de Aplicativo. Autenticação mútua significa que o Application Gateway autentica o cliente que envia a solicitação usando o certificado de cliente carregado no Application Gateway.
Se não tiver uma subscrição do Azure, crie uma conta gratuita antes de começar.
Nota
Recomendamos que utilize o módulo Azure Az do PowerShell para interagir com o Azure. Para começar, consulte Instalar o Azure PowerShell. Para saber como migrar para o módulo do Az PowerShell, veja Migrar o Azure PowerShell do AzureRM para o Az.
Este artigo requer o módulo do Azure PowerShell versão 1.0.0 ou posterior. Executar Get-Module -ListAvailable Az
para localizar a versão. Se precisar de atualizar, veja Install Azure PowerShell module (Instalar o módulo do Azure PowerShell). Se você estiver executando o PowerShell localmente, também precisará executar Login-AzAccount
para criar uma conexão com o Azure.
Antes de começar
Para configurar a autenticação mútua com um Application Gateway, você precisa de um certificado de cliente para carregar no gateway. O certificado do cliente será usado para validar o certificado que o cliente apresentará ao Application Gateway. Para fins de teste, você pode usar um certificado autoassinado. No entanto, isso não é recomendado para cargas de trabalho de produção, porque 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 Application Gateway.
Criar um grupo de recursos
Primeiro, crie um novo grupo de recursos na sua assinatura.
$resourceGroup = New-AzResourceGroup -Name $rgname -Location $location -Tags @{ testtag = "APPGw tag"}
Criar uma rede virtual
Implante uma rede virtual para o seu Application Gateway a 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 seu Application Gateway.
$publicip = New-AzPublicIpAddress -ResourceGroupName $rgname -name $publicIpName -location $location -AllocationMethod Static -sku Standard
Criar a configuração IP do Application Gateway
Crie as configurações de IP e a porta frontend.
$gipconfig = New-AzApplicationGatewayIPConfiguration -Name $gipconfigname -Subnet $gwSubnet
$fipconfig = New-AzApplicationGatewayFrontendIPConfig -Name $fipconfigName -PublicIPAddress $publicip
$port = New-AzApplicationGatewayFrontendPort -Name $frontendPortName -Port 443
Configurar SSL frontend
Configure os certificados SSL para seu Application Gateway.
$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 de cliente
Configure a autenticação do cliente no seu Application Gateway. Para obter mais informações sobre como extrair cadeias de certificados de CA de cliente confiável para usar aqui, consulte como extrair cadeias de certificados de CA de cliente confiável.
Importante
Certifique-se de carregar toda a cadeia de certificados da autoridade de certificação do cliente em um arquivo e apenas uma cadeia por arquivo.
Nota
Recomendamos o uso do TLS 1.2 com autenticação mútua, pois o TLS 1.2 será obrigatório no futuro.
$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 para seu Application Gateway. Opcionalmente, configure o certificado raiz confiável de back-end para criptografia 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 seu Application Gateway.
$rule = New-AzApplicationGatewayRequestRoutingRule -Name $ruleName -RuleType basic -BackendHttpSettings $poolSetting -HttpListener $listener -BackendAddressPool $pool
Configurar a política SSL padrão para ouvintes futuros
Você configurou uma política SSL específica do ouvinte ao configurar a autenticação mútua. Nesta etapa, você pode, opcionalmente, definir a política SSL padrão para ouvintes futuros que criar.
$sslPolicyGlobal = New-AzApplicationGatewaySslPolicy -PolicyType Predefined -PolicyName "AppGwSslPolicy20170401"
Criar o gateway de aplicativo
Usando tudo o que criamos acima, implante seu Application Gateway.
$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
Clean up resources (Limpar recursos)
Quando não for mais necessário, remova o grupo de recursos, o gateway de aplicativo e todos os recursos relacionados usando Remove-AzResourceGroup.
Remove-AzResourceGroup -Name $rgname
Renovar certificados de CA de cliente expirados
Caso o certificado da autoridade de certificação do cliente tenha expirado, você pode atualizá-lo no gateway por meio das seguintes etapas:
- Entrar no Azure
Connect-AzAccount Select-AzSubscription -Subscription "<sub name>"
- Obtenha a configuração do Application Gateway
$gateway = Get-AzApplicationGateway -Name "<gateway-name>" -ResourceGroupName "<resource-group-name>"
- Remover o certificado de cliente confiável do gateway
Remove-AzApplicationGatewayTrustedClientCertificate -Name "<name-of-client-certificate>" -ApplicationGateway $gateway
- Adicionar o novo certificado ao gateway
Add-AzApplicationGatewayTrustedClientCertificate -ApplicationGateway $gateway -Name "<name-of-new-cert>" -CertificateFile "<path-to-certificate-file>"
- Atualizar o gateway com o novo certificado
Set-AzApplicationGateway -ApplicationGateway $gateway