Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
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:
- Entrar no Azure
Connect-AzAccount Select-AzSubscription -Subscription "<sub name>" - Obtenha a configuração do Gateway de Aplicações
$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 - Adicione 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