Partager via


Configurer l’authentification mutuelle avec Application Gateway via PowerShell

Cet article explique comment utiliser PowerShell pour configurer l’authentification mutuelle sur votre application Gateway. L’authentification mutuelle signifie qu’Application Gateway authentifie le client envoyant la demande à l’aide du certificat client que vous chargez sur Application Gateway.

Si vous n’avez pas d’abonnement Azure, créez un compte gratuit avant de commencer.

Remarque

Nous vous recommandons d’utiliser le module Azure Az PowerShell pour interagir avec Azure. Pour bien démarrer, consultez Installer Azure PowerShell. Pour savoir comment migrer vers le module Az PowerShell, consultez Migrer Azure PowerShell depuis AzureRM vers Az.

Cet article nécessite l’utilisation du module Azure PowerShell version 1.0.0 ou ultérieure. Exécutez Get-Module -ListAvailable Az pour trouver la version. Si vous devez effectuer une mise à niveau, consultez Installer le module Azure PowerShell. Si vous exécutez PowerShell en local, vous devez également exécuter Connect-AzAccount pour créer une connexion avec Azure.

Avant de commencer

Pour configurer l’authentification mutuelle avec une passerelle Application Gateway, vous avez besoin d’un certificat client à charger sur la passerelle. Le certificat client est utilisé pour valider le certificat que le client présente à Application Gateway. Dans le cadre d’un test, vous pouvez utiliser un certificat auto-signé. Toutefois, cela n’est pas recommandé pour les charges de travail de production, car elles sont plus difficiles à gérer et ne sont pas complètement sécurisées.

Pour en savoir plus, en particulier sur le type de certificats clients que vous pouvez charger, consultez Vue d’ensemble de l’authentification mutuelle avec Application Gateway.

Créer un groupe de ressources

Commencez par créer un groupe de ressources dans votre abonnement.

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

Créer un réseau virtuel

Déployez un réseau virtuel dans lequel votre passerelle Application Gateway doit être déployée.

$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

Créer une adresse IP publique

Créez une adresse IP publique à utiliser avec votre application Gateway.

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

Créer la configuration IP d’Application Gateway

Créez les configurations IP et le port frontal.

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

Configurer le frontend TLS/SSL

Configurez les certificats TLS/SSL pour votre passerelle Application Gateway.

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

Configurer l’authentification du client

Configurez l’authentification du client sur votre application Gateway. Pour plus d'informations sur l'extraction des chaînes de certificats CA client approuvées à utiliser ici, consultez comment extraire des chaînes de certificats CA client approuvées.

Important

Assurez-vous de télécharger l’intégralité de la chaîne de certificats de l’autorité de certification client dans un seul fichier, et une seule chaîne par fichier. La taille maximale de chaque fichier chargé doit être inférieure ou inférieure à 25 Ko.

Remarque

Nous vous recommandons d’utiliser TLS 1.2 avec l’authentification mutuelle, car TLS 1.2 sera mandaté à compter du 31 août 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

Configurer le pool principal et les paramètres

Configurez le pool principal et les paramètres de votre passerelle Application Gateway. Si vous le souhaitez, configurez le certificat racine approuvé back-end pour le chiffrement TLS/SSL de bout en bout.

$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

Configurer la règle

Configurez une règle sur votre application Gateway.

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

Configurer la stratégie TLS/SSL par défaut pour les écouteurs futurs

Vous avez configuré une stratégie TLS/SSL spécifique à l’écouteur lors de la configuration de l’authentification mutuelle. Dans cette étape, vous pouvez éventuellement définir la stratégie TLS/SSL par défaut pour les futurs écouteurs que vous créez.

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

Créer la passerelle Application Gateway

À l’aide de tout ce que nous avons créé, déployez votre 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

Nettoyer les ressources

Quand vous n’en avez plus besoin, supprimez le groupe de ressources, la passerelle d’application et toutes les ressources associées à l’aide de Remove-AzResourceGroup.

Remove-AzResourceGroup -Name $rgname

Renouveler les certificats d’autorité de certification client expirés

Si votre certificat d’autorité de certification client a expiré, vous pouvez mettre à jour le certificat sur votre passerelle en procédant comme suit :

  1. Se connecter à Azure
    Connect-AzAccount
    Select-AzSubscription -Subscription "<sub name>"
    
  2. Obtenir votre configuration Application Gateway
    $gateway = Get-AzApplicationGateway -Name "<gateway-name>" -ResourceGroupName "<resource-group-name>"
    
  3. Supprimer le certificat client approuvé de la passerelle
    Remove-AzApplicationGatewayTrustedClientCertificate -Name "<name-of-client-certificate>" -ApplicationGateway $gateway
    
  4. Ajouter le nouveau certificat à la passerelle
    Add-AzApplicationGatewayTrustedClientCertificate -ApplicationGateway $gateway -Name "<name-of-new-cert>" -CertificateFile "<path-to-certificate-file>"
    
  5. Mettre à jour la passerelle avec le nouveau certificat
    Set-AzApplicationGateway -ApplicationGateway $gateway
    

Étapes suivantes