Note
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de changer d’annuaire.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de changer d’annuaire.
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 :
- Se connecter à Azure
Connect-AzAccount Select-AzSubscription -Subscription "<sub name>" - Obtenir votre configuration Application Gateway
$gateway = Get-AzApplicationGateway -Name "<gateway-name>" -ResourceGroupName "<resource-group-name>" - Supprimer le certificat client approuvé de la passerelle
Remove-AzApplicationGatewayTrustedClientCertificate -Name "<name-of-client-certificate>" -ApplicationGateway $gateway - Ajouter le nouveau certificat à la passerelle
Add-AzApplicationGatewayTrustedClientCertificate -ApplicationGateway $gateway -Name "<name-of-new-cert>" -CertificateFile "<path-to-certificate-file>" - Mettre à jour la passerelle avec le nouveau certificat
Set-AzApplicationGateway -ApplicationGateway $gateway