Partager via


Configurer l’authentification mutuelle sur Application Gateway via PowerShell

Cet article explique comment utiliser PowerShell pour configurer l’authentification mutuelle sur votre instance d’Application Gateway. L’authentification mutuelle signifie qu’Application Gateway authentifie le client qui envoie la requête à 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.

Notes

Nous vous recommandons d’utiliser le module Azure Az PowerShell pour interagir avec Azure. Pour commencer, 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 Login-AzAccount pour créer une connexion avec Azure.

Avant de commencer

Pour configurer l’authentification mutuelle sur une instance d’Application Gateway, un certificat client doit être chargé sur la passerelle. Le certificat client sera utilisé pour valider le certificat que le client présentera à Application Gateway. Dans le cadre d’un test, vous pouvez utiliser un certificat auto-signé. Toutefois, ces derniers ne sont pas recommandés pour les charges de travail de production, car elles sont plus difficiles à gérer et ne sont pas entièrement sécurisées.

Pour en savoir plus, en particulier sur le type de certificat client que vous pouvez charger, consultez Présentation de l’authentification mutuelle sur Application Gateway.

Créer un groupe de ressources

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

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

Créez un réseau virtuel

Déployez un réseau virtuel pour y déployer votre instance d’Application Gateway.

$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éez une adresse IP publique.

Créez une adresse IP publique à utiliser avec votre instance d’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 front-end.

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

Configurer le protocole SSL front-end

Configurez les certificats SSL pour votre instance d’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 une authentification de client

Configurez l’authentification de client sur votre instance d’Application Gateway. Pour plus d’informations sur l’extraction de chaînes de certificats d’autorité de certification clients approuvés, consultez l’article Exporter une chaîne de certificats d’autorité de certification clients approuvés à utiliser avec l’authentification client.

Important

Veillez à charger l'intégralité de la chaîne de certificats d'autorité de certification clients dans un même fichier, et une seule chaîne par fichier.

Remarque

Nous vous recommandons d’utiliser TLS 1.2 avec l’authentification mutuelle, car TLS 1.2 sera obligatoire à l’avenir.

$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 back-end et les paramètres

Configurez le pool back-end et les paramètres de votre instance d’Application Gateway. Éventuellement, configurez le certificat racine approuvé du serveur back-end pour le chiffrement 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 instance d’Application Gateway.

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

Configurer une stratégie SSL par défaut pour les écouteurs ultérieurs

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

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

Créer la passerelle Application Gateway

En vous basant sur tout ce que nous avons créé ci-dessus, déployez votre instance d’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 clients qui ont expiré

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

  1. Connexion à 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 sur 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