Freigeben über


Konfigurieren der gegenseitigen Authentifizierung in Application Gateway mit PowerShell

In diesem Artikel wird beschrieben, wie Sie PowerShell verwenden, um die gegenseitige Authentifizierung auf Ihrer Application Gateway-Instanz zu konfigurieren. Gegenseitige Authentifizierung bedeutet Folgendes: Application Gateway authentifiziert den Client, der die Anforderung sendet, indem das Clientzertifikat verwendet wird, das Sie auf die Application Gateway-Instanz hochladen.

Wenn Sie kein Azure-Abonnement besitzen, können Sie ein kostenloses Konto erstellen, 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 Login-AzAccount ausführen, um eine Verbindung mit Azure herzustellen.

Voraussetzungen

Zum Konfigurieren der gegenseitigen Authentifizierung über eine Application Gateway-Instanz benötigen Sie ein Clientzertifikat zum Hochladen auf das Gateway. Das Clientzertifikat wird verwendet, um das Zertifikat zu überprüfen, das vom Client für Application Gateway angegeben wird. Sie können zu Testzwecken ein selbstsigniertes Zertifikat verwenden. Dies wird jedoch nicht für Produktionsworkloads empfohlen, da sie schwieriger zu verwalten und nicht vollständig sicher sind.

Weitere Informationen, vor allem zur Art der Clientzertifikate, die Sie hochladen können, finden Sie unter Übersicht über die gegenseitige Authentifizierung mit Application Gateway.

Erstellen einer Ressourcengruppe

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

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

Erstellen eines virtuellen Netzwerks

Stellen Sie ein virtuelles Netzwerk bereit, in dem Ihre Application Gateway-Instanz bereitgestellt werden kann.

$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 Sie eine öffentliche IP-Adresse.

Erstellen Sie eine öffentliche IP-Adresse für Ihre Application Gateway-Instanz.

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

Erstellen der IP-Konfiguration für Application Gateway

Erstellen Sie die IP-Konfigurationen und den Front-End-Port.

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

Konfigurieren von SSL für das Front-End

Konfigurieren Sie die SSL-Zertifikate für Ihre Application Gateway-Instanz.

$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 Ihrer Application Gateway-Instanz. Weitere Informationen zum Extrahieren von vertrauenswürdigen ZS-Clientzertifikatketten für die Nutzung finden Sie unter Exportieren einer vertrauenswürdigen ZS-Clientzertifikatkette für die Clientauthentifizierung.

Wichtig

Achten Sie darauf, dass Sie die gesamte ZS-Clientzertifikatkette in einer Datei und nur eine Kette pro Datei hochladen.

Hinweis

Wir empfehlen Ihnen die Nutzung von TLS 1.2 mit gegenseitiger Authentifizierung, da TLS 1.2 in Zukunft 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 zugehörigen Einstellungen

Richten Sie den Back-End-Pool und die zugehörigen Einstellungen für Ihre Application Gateway-Instanz ein. Richten Sie optional das vertrauenswürdige Stammzertifikat für das Back-End ein, um die End-to-End-SSL-Verschlüsselung zu ermöglichen.

$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 auf Ihrer Application Gateway-Instanz ein.

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

Einrichten der SSL-Standardrichtlinie für zukünftige Listener

Sie haben beim Einrichten der gegenseitigen Authentifizierung eine listenerspezifische SSL-Richtlinie eingerichtet. In diesem Schritt können Sie optional die SSL-Standardrichtlinie für Listener festlegen, die Sie in Zukunft erstellen.

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

Erstellen des Anwendungsgateways

Stellen Sie Ihre Application Gateway-Instanz nun mit allen oben erstellten Komponenten 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

Verlängern abgelaufener ZS-Clientzertifikate

Falls Ihr ZS-Clientzertifikat abgelaufen ist, können Sie das Zertifikat auf Ihrem Gateway mit den folgenden Schritten aktualisieren:

  1. Anmelden bei Azure
    Connect-AzAccount
    Select-AzSubscription -Subscription "<sub name>"
    
  2. Rufen Sie Ihre Application Gateway-Konfiguration ab.
    $gateway = Get-AzApplicationGateway -Name "<gateway-name>" -ResourceGroupName "<resource-group-name>"
    
  3. Entfernen Sie das vertrauenswürdige Clientzertifikat vom Gateway.
    Remove-AzApplicationGatewayTrustedClientCertificate -Name "<name-of-client-certificate>" -ApplicationGateway $gateway
    
  4. Fügen Sie das neue Zertifikat auf dem Gateway hinzu.
    Add-AzApplicationGatewayTrustedClientCertificate -ApplicationGateway $gateway -Name "<name-of-new-cert>" -CertificateFile "<path-to-certificate-file>"
    
  5. Aktualisieren Sie das Gateway mit dem neuen Zertifikat.
    Set-AzApplicationGateway -ApplicationGateway $gateway
    

Nächste Schritte