Configurar a autenticação mútua com o Gateway de Aplicativo 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 um gateway de aplicativo autentica o cliente que envia 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 Az PowerShell do Azure para interagir com o Azure. Para começar, confira 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 Login-AzAccount
para criar uma conexão com o Azure.
Antes de começar
Para configurar a autenticação mútua com um gateway de aplicativo, você precisa de um certificado de cliente para carregar em um gateway. O certificado do cliente será usado para validar o certificado que o cliente apresentará a um gateway de aplicativo. Para fins de teste, você pode usar um certificado autoassinado. No entanto, isto não é recomendável para cargas de trabalho de produção, porque elas são mais difíceis de gerenciar e não são completamente seguras.
Para mais informações, especialmente sobre o tipo de certificados de cliente que 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 para o gateway de aplicativo a ser implantado no.
$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 seu 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
Criar as configurações de IP e 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 SSL de front-end
Configure os certificados SSL para o seu 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 de cliente no seu gateway de aplicativo. Para mais informações sobre como extrair cadeias de certificados de AC de cliente confiáveis para usar aqui, consulte como extrair cadeias de certificados de AC de cliente confiáveis.
Importante
Verifique se você carregou toda a cadeia de certificados de autoridade de certificação do cliente em um arquivo e em apenas uma cadeia por arquivo.
Observação
É recomendável usar o 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
Configurar o pool de back-end e as configurações
Configure o pool de back-end e as configurações para o seu gateway de aplicativo. Opcionalmente, configure o certificado raiz confiável de back-end para a 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 gateway de aplicativo.
$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 você criar.
$sslPolicyGlobal = New-AzApplicationGatewaySslPolicy -PolicyType Predefined -PolicyName "AppGwSslPolicy20170401"
Criar o Application Gateway
Usando tudo o que criamos acima, implante o 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 AC de cliente expirados
Caso o certificado de autoridade de certificação do cliente tenha expirado, você pode atualizar o certificado em seu gateway por meio das seguintes etapas:
- Entrar no Azure
Connect-AzAccount Select-AzSubscription -Subscription "<sub name>"
- Faça a configuração do gateway de aplicativo
$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 no 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