Freigeben über


Konfigurieren der gegenseitigen Authentifizierung mit dem Anwendungsgateway über PowerShell

In diesem Artikel wird beschrieben, wie Sie powerShell zum Konfigurieren der gegenseitigen Authentifizierung auf Ihrem Anwendungsgateway verwenden. Die gegenseitige Authentifizierung bedeutet, dass das Anwendungsgateway den Client authentifiziert, der die Anforderung mithilfe des Clientzertifikats sendet, das Sie auf das Anwendungsgateway hochladen.

Wenn Sie noch kein Azure-Abonnement haben, erstellen Sie ein kostenloses Konto, bevor Sie beginnen.

Hinweis

Es wird empfohlen, das Azure Az PowerShell-Modul für die Interaktion mit Azure zu verwenden. Informationen zu den ersten Schritten finden Sie unter Installieren von Azure PowerShell. Informationen zum Migrieren zum Az PowerShell-Modul finden Sie unter Migrieren von Azure PowerShell von AzureRM zum Az-Modul.

Für diesen Artikel ist Version 1.0.0 oder höher des Azure PowerShell-Moduls erforderlich. Führen Sie Get-Module -ListAvailable Az aus, um die Version zu ermitteln. Wenn Sie ein Upgrade ausführen müssen, finden Sie unter Installieren des Azure PowerShell-Moduls Informationen dazu. Wenn Sie PowerShell lokal ausführen, müssen Sie auch Connect-AzAccount ausführen, um eine Verbindung mit Azure herzustellen.

Bevor Sie anfangen

Um die gegenseitige Authentifizierung mit einem Anwendungsgateway zu konfigurieren, benötigen Sie ein Clientzertifikat zum Hochladen auf das Gateway. Das Clientzertifikat wird verwendet, um das Zertifikat zu überprüfen, das der Client dem Anwendungsgateway darstellt. Sie können zu Testzwecken ein selbstsigniertes Zertifikat verwenden. Dies wird jedoch nicht für Produktionsworkloads empfohlen, da sie schwieriger zu verwalten sind und nicht vollständig sicher sind.

Weitere Informationen, insbesondere darüber, welche Art von Clientzertifikaten Sie hochladen können, finden Sie unter Übersicht über die gegenseitige Authentifizierung mit dem Anwendungsgateway.

Erstellen einer Ressourcengruppe

Erstellen Sie zunächst eine neue Ressourcengruppe in Ihrem Abonnement.

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

Erstellen eines virtuellen Netzwerks

Stellen Sie ein virtuelles Netzwerk bereit, in dem Ihr Anwendungsgateway bereitgestellt werden soll.

$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

Erstellen einer öffentlichen IP

Erstellen Sie eine öffentliche IP, die mit Ihrem Anwendungsgateway verwendet werden soll.

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

Erstellen der IP-Konfiguration des Anwendungsgateways

Erstellen Sie die IP-Konfigurationen und den Frontend-Port.

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

Konfigurieren von Frontend-TLS/SSL

Konfigurieren Sie die TLS/SSL-Zertifikate für Ihr Anwendungsgateway.

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

Konfigurieren der Clientauthentifizierung

Konfigurieren Sie die Clientauthentifizierung auf Ihrem Anwendungsgateway. Weitere Informationen zum Extrahieren vertrauenswürdiger CA-Zertifikatketten für die Verwendung hier finden Sie unter Extrahieren von CA-Zertifikatketten für vertrauenswürdige Clients.

Von Bedeutung

Stellen Sie sicher, dass Sie die gesamte CA-Zertifikatkette des Clients in einer Datei hochladen und jeweils nur eine Kette pro Datei. Die maximale Größe jeder hochgeladenen Datei darf maximal 25 KB betragen.

Hinweis

Wir empfehlen die Verwendung von TLS 1.2 mit gegenseitiger Authentifizierung, da TLS 1.2 ab dem 31. August 2025 vorgeschrieben sein wird.

$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

Konfigurieren des Back-End-Pools und der Einstellungen

Richten Sie back-End-Pool und -Einstellungen für Ihr Anwendungsgateway ein. Richten Sie optional das vertrauenswürdige Back-End-Stammzertifikat für die End-to-End-TLS/SSL-Verschlüsselung ein.

$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

Konfigurieren der Regel

Richten Sie eine Regel für Ihr Anwendungsgateway ein.

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

Einrichten der Standardmäßigen TLS/SSL-Richtlinie für zukünftige Listener

Sie haben eine listenerspezifische TLS/SSL-Richtlinie eingerichtet, während Sie die gegenseitige Authentifizierung einrichten. In diesem Schritt können Sie optional die standardmäßige TLS/SSL-Richtlinie für zukünftige Listener festlegen, die Sie erstellen.

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

Erstellen des Anwendungsgateways

Stellen Sie mit allem, was wir erstellt haben, Ihr Anwendungsgateway bereit.

$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

Bereinigen von Ressourcen

Wenn Sie die Ressourcengruppe, das Anwendungsgateway und alle zugehörigen Ressourcen nicht mehr benötigen, entfernen Sie sie mit dem Befehl Remove-AzResourceGroup.

Remove-AzResourceGroup -Name $rgname

Erneuern abgelaufene Zertifikate der Client-Zertifizierungsstellen

Falls Ihr Clientzertifizierungsstellenzertifikat abgelaufen ist, können Sie das Zertifikat auf Ihrem Gateway über die folgenden Schritte aktualisieren:

  1. Anmelden bei Azure
    Connect-AzAccount
    Select-AzSubscription -Subscription "<sub name>"
    
  2. Holen Sie sich Ihre Anwendungsgateway-Konfiguration
    $gateway = Get-AzApplicationGateway -Name "<gateway-name>" -ResourceGroupName "<resource-group-name>"
    
  3. Entfernen des vertrauenswürdigen Clientzertifikats vom Gateway
    Remove-AzApplicationGatewayTrustedClientCertificate -Name "<name-of-client-certificate>" -ApplicationGateway $gateway
    
  4. Hinzufügen des neuen Zertifikats zum Gateway
    Add-AzApplicationGatewayTrustedClientCertificate -ApplicationGateway $gateway -Name "<name-of-new-cert>" -CertificateFile "<path-to-certificate-file>"
    
  5. Aktualisieren des Gateways mit dem neuen Zertifikat
    Set-AzApplicationGateway -ApplicationGateway $gateway
    

Nächste Schritte