Udostępnij przez


Konfigurowanie wzajemnego uwierzytelniania za pomocą usługi Application Gateway za pomocą programu PowerShell

W tym artykule opisano sposób konfigurowania wzajemnego uwierzytelniania w usłudze Application Gateway przy użyciu programu PowerShell. Wzajemne uwierzytelnianie oznacza, że usługa Application Gateway uwierzytelnia klienta wysyłającego żądanie przy użyciu certyfikatu klienta przekazanego do usługi Application Gateway.

Jeśli nie masz subskrypcji platformy Azure, przed rozpoczęciem utwórz bezpłatne konto.

Uwaga

Zalecamy korzystanie z modułu Azure Az programu PowerShell do interakcji z platformą Azure. Aby rozpocząć, zobacz Instalowanie programu Azure PowerShell. Aby dowiedzieć się, jak przeprowadzić migrację do modułu Az PowerShell, zobacz Migracja programu Azure PowerShell z modułu AzureRM do modułu Az.

Ten artykuł wymaga modułu Azure PowerShell w wersji 1.0.0 lub nowszej. Uruchom Get-Module -ListAvailable Az, aby znaleźć wersję. Jeśli konieczne będzie uaktualnienie, zobacz Instalowanie modułu Azure PowerShell. Jeśli używasz programu PowerShell lokalnie, musisz też uruchomić polecenie Connect-AzAccount, aby utworzyć połączenie z platformą Azure.

Zanim rozpoczniesz

Aby skonfigurować wzajemne uwierzytelnianie z usługą Application Gateway, należy przesłać certyfikat klienta do tej bramy. Certyfikat klienta służy do weryfikowania certyfikatu, który klient przedstawia w usłudze Application Gateway. Do celów testowych można użyć certyfikatu z podpisem własnym. Nie jest to jednak zalecane w przypadku obciążeń produkcyjnych, ponieważ są one trudniejsze do zarządzania i nie są całkowicie bezpieczne.

Aby dowiedzieć się więcej, szczególnie na temat rodzaju certyfikatów klienta, które można przekazać, zobacz Omówienie wzajemnego uwierzytelniania za pomocą usługi Application Gateway.

Tworzenie grupy zasobów

Najpierw utwórz nową grupę zasobów w ramach subskrypcji.

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

Tworzenie sieci wirtualnej

Wdróż sieć wirtualną, w której ma zostać wdrożona usługa 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

Tworzenie publicznego adresu IP

Utwórz publiczny adres IP do użycia z usługą Application Gateway.

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

Tworzenie konfiguracji adresu IP usługi Application Gateway

Utwórz konfiguracje IP i port frontendowy.

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

Konfigurowanie protokołu TLS/SSL frontonu

Skonfiguruj certyfikaty TLS/SSL dla usługi Application Gateway.

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

Konfigurowanie uwierzytelniania klienta

Skonfiguruj uwierzytelnianie klienta w usłudze Application Gateway. Aby uzyskać więcej informacji na temat wyodrębniania łańcuchów certyfikatów zaufanego urzędu certyfikacji klienta do użycia tutaj, zobacz jak wyodrębniać łańcuchy certyfikatów zaufanego urzędu certyfikacji klienta.

Ważne

Upewnij się, że cały łańcuch certyfikatów urzędu certyfikacji klienta jest przekazywany w jednym pliku, przy czym w jednym pliku może znajdować się tylko jeden łańcuch. Maksymalny rozmiar każdego przekazanego pliku musi wynosić 25 KB lub mniej.

Uwaga

Zalecamy używanie protokołu TLS 1.2 z uwierzytelnianiem wzajemnym, ponieważ protokół TLS 1.2 będzie wymagany od 31 sierpnia 2025 r.

$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

Skonfiguruj zaplecze i ustawienia

Skonfiguruj pulę zaplecza i ustawienia dla usługi Application Gateway. Opcjonalnie skonfiguruj zaufany certyfikat główny zaplecza na potrzeby kompleksowego szyfrowania TLS/SSL.

$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

Konfigurowanie reguły

Skonfiguruj regułę w usłudze Application Gateway.

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

Konfigurowanie domyślnych zasad PROTOKOŁU TLS/SSL dla przyszłych odbiorników

Skonfigurowaliśmy zasady protokołu TLS/SSL specyficzne dla odbiornika podczas konfigurowania wzajemnego uwierzytelniania. W tym kroku można opcjonalnie ustawić domyślne zasady protokołu TLS/SSL dla tworzonych w przyszłości odbiorników.

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

Tworzenie usługi Application Gateway

Za pomocą wszystkiego, co utworzyliśmy, wdróż usługę 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

Czyszczenie zasobów

Gdy grupa zasobów, brama aplikacji i wszystkie powiązane zasoby nie będą już potrzebne, usuń je przy użyciu polecenia Remove-AzResourceGroup.

Remove-AzResourceGroup -Name $rgname

Odnawianie wygasłych certyfikatów klienta CA

W przypadku wygaśnięcia certyfikatu klienta urzędu certyfikacji, można certyfikat w bramie zaktualizować, wykonując następujące kroki:

  1. Zaloguj się na platformie Azure
    Connect-AzAccount
    Select-AzSubscription -Subscription "<sub name>"
    
  2. Pobierz swoją konfigurację Application Gateway
    $gateway = Get-AzApplicationGateway -Name "<gateway-name>" -ResourceGroupName "<resource-group-name>"
    
  3. Usuwanie zaufanego certyfikatu klienta z bramy
    Remove-AzApplicationGatewayTrustedClientCertificate -Name "<name-of-client-certificate>" -ApplicationGateway $gateway
    
  4. Dodaj nowy certyfikat do bramy
    Add-AzApplicationGatewayTrustedClientCertificate -ApplicationGateway $gateway -Name "<name-of-new-cert>" -CertificateFile "<path-to-certificate-file>"
    
  5. Aktualizowanie bramy przy użyciu nowego certyfikatu
    Set-AzApplicationGateway -ApplicationGateway $gateway
    

Następne kroki