Compartir a través de


Configuración de la autenticación mutua con Application Gateway mediante PowerShell

En este artículo se describe cómo usar PowerShell para configurar la autenticación mutua en Application Gateway. La autenticación mutua significa que Application Gateway autentica al cliente que envía la solicitud mediante el certificado de cliente que carga en Application Gateway.

Si no tiene una suscripción a Azure, cree una cuenta gratuita antes de empezar.

Nota:

Se recomienda usar el módulo de PowerShell de Azure Az para interactuar con Azure. Para comenzar, consulte Instalación de Azure PowerShell. Para obtener información sobre cómo migrar al módulo Az PowerShell, consulte Migración de Azure PowerShell de AzureRM a Az.

En este artículo se requiere la versión 1.0.0 o posterior del módulo de Azure PowerShell. Ejecute Get-Module -ListAvailable Az para encontrar la versión. Si necesita actualizar, consulte Instalación del módulo de Azure PowerShell. Si PowerShell se ejecuta localmente, también debe ejecutar Connect-AzAccount para crear una conexión con Azure.

Antes de empezar

Para configurar la autenticación mutua con un Application Gateway, necesita un certificado de cliente para subirlo a la puerta de enlace. El certificado de cliente se usa para validar el certificado que el cliente presenta a Application Gateway. Con fines de prueba, puede usar un certificado autofirmado. Sin embargo, esto no se recomienda para cargas de trabajo de producción, ya que son más difíciles de administrar y no son completamente seguras.

Para más información, especialmente sobre qué tipo de certificados de cliente puede cargar, consulte Introducción a la autenticación mutua con Application Gateway.

Creación de un grupo de recursos

En primer lugar, cree un nuevo grupo de recursos en la suscripción.

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

Creación de una red virtual

Implemente una red virtual para la instancia de Application Gateway en la que se va a implementar.

$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

Creación de una dirección IP pública

Cree una dirección IP pública para usarla con Application Gateway.

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

Creación de la configuración de IP de Application Gateway

Cree las configuraciones ip y el puerto de front-end.

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

Configuración de TLS/SSL de front-end

Configure los certificados TLS/SSL para Application Gateway.

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

Configuración de la autenticación de cliente

Configure la autenticación de cliente en Application Gateway. Para más información sobre cómo extraer cadenas de certificados de entidad de certificación de cliente de confianza para usarlas aquí, consulte Extracción de cadenas de certificados de entidad de certificación de cliente de confianza.

Importante

Asegúrese de cargar toda la cadena de certificados de la entidad de certificación de cliente en un archivo y solo una cadena por archivo. El tamaño máximo de cada archivo cargado debe ser de 25 KB o menos.

Nota:

Se recomienda usar TLS 1.2 con autenticación mutua, ya que TLS 1.2 será obligatorio a partir del 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

Configurar el pool de backend y opciones

Configure los valores y el grupo de back-end de la instancia de Application Gateway. Opcionalmente, configure el certificado raíz de confianza de back-end para el cifrado TLS/SSL de un extremo a otro.

$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

Configuración de la regla

Configura una regla en el Gateway de Aplicaciones.

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

Configurar la política TLS/SSL predeterminada para futuros escuchadores

Ha configurado una política TLS/SSL específica para el listener al establecer la autenticación mutua. En este paso, opcionalmente puede configurar la política predeterminada de TLS/SSL para los futuros listeners que cree.

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

Creación de Application Gateway

Utilizando todo lo que hemos creado, despliegue el 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

Limpieza de recursos

Cuando ya no sea necesario, quite el grupo de recursos, la puerta de enlace de aplicaciones y todos los recursos relacionados mediante Remove-AzResourceGroup.

Remove-AzResourceGroup -Name $rgname

Renovar los certificados de Autoridad de Certificación de clientes expirados

En caso de que el certificado de CA de cliente haya expirado, puede actualizar el certificado en la puerta de enlace mediante los pasos siguientes:

  1. Inicio de sesión en Azure
    Connect-AzAccount
    Select-AzSubscription -Subscription "<sub name>"
    
  2. Obtención de la configuración de Application Gateway
    $gateway = Get-AzApplicationGateway -Name "<gateway-name>" -ResourceGroupName "<resource-group-name>"
    
  3. Elimine el certificado de cliente de confianza del gateway
    Remove-AzApplicationGatewayTrustedClientCertificate -Name "<name-of-client-certificate>" -ApplicationGateway $gateway
    
  4. Agrega el nuevo certificado al gateway
    Add-AzApplicationGatewayTrustedClientCertificate -ApplicationGateway $gateway -Name "<name-of-new-cert>" -CertificateFile "<path-to-certificate-file>"
    
  5. Actualización de la puerta de enlace con el nuevo certificado
    Set-AzApplicationGateway -ApplicationGateway $gateway
    

Pasos siguientes