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
Do interakcji z platformą Azure zalecamy używanie modułu Azure Az w programie PowerShell. 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 polecenie Get-Module -ListAvailable Az
, aby dowiedzieć się, jaka wersja jest używana. Jeśli konieczne będzie uaktualnienie, zobacz Instalowanie modułu Azure PowerShell. Jeśli używasz programu PowerShell lokalnie, musisz też uruchomić polecenie Login-AzAccount
, aby utworzyć połączenie z platformą Azure.
Zanim rozpoczniesz
Aby skonfigurować wzajemne uwierzytelnianie za pomocą usługi Application Gateway, należy przekazać certyfikat klienta do bramy. Certyfikat klienta zostanie użyty do zweryfikowania certyfikatu, który klient będzie prezentował 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ą dla usługi Application Gateway, w których ma zostać wdrożona.
$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 adresów IP i port frontonu.
$gipconfig = New-AzApplicationGatewayIPConfiguration -Name $gipconfigname -Subnet $gwSubnet
$fipconfig = New-AzApplicationGatewayFrontendIPConfig -Name $fipconfigName -PublicIPAddress $publicip
$port = New-AzApplicationGatewayFrontendPort -Name $frontendPortName -Port 443
Konfigurowanie protokołu SSL frontonu
Skonfiguruj certyfikaty 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 w tym miejscu, zobacz jak wyodrębnić ł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 i tylko jeden łańcuch na plik.
Uwaga
Zalecamy używanie protokołu TLS 1.2 z uwierzytelnianiem wzajemnym, ponieważ protokół TLS 1.2 będzie wymagany w przyszłości.
$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
Konfigurowanie puli zaplecza i ustawień
Skonfiguruj pulę zaplecza i ustawienia dla usługi Application Gateway. Opcjonalnie skonfiguruj zaufany certyfikat główny zaplecza na potrzeby kompleksowego szyfrowania 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 SSL dla przyszłych odbiorników
Skonfigurowaliśmy zasady protokołu SSL specyficzne dla odbiornika podczas konfigurowania wzajemnego uwierzytelniania. W tym kroku można opcjonalnie ustawić domyślne zasady protokołu SSL dla tworzonych w przyszłości odbiorników.
$sslPolicyGlobal = New-AzApplicationGatewaySslPolicy -PolicyType Predefined -PolicyName "AppGwSslPolicy20170401"
Tworzenie usługi Application Gateway
Korzystając ze wszystkich utworzonych powyżej elementów, 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 urzędu certyfikacji klienta
W przypadku wygaśnięcia certyfikatu urzędu certyfikacji klienta można zaktualizować certyfikat w bramie, wykonując następujące kroki:
- Zaloguj się na platformie Azure
Connect-AzAccount Select-AzSubscription -Subscription "<sub name>"
- Uzyskiwanie konfiguracji usługi Application Gateway
$gateway = Get-AzApplicationGateway -Name "<gateway-name>" -ResourceGroupName "<resource-group-name>"
- Usuwanie zaufanego certyfikatu klienta z bramy
Remove-AzApplicationGatewayTrustedClientCertificate -Name "<name-of-client-certificate>" -ApplicationGateway $gateway
- Dodawanie nowego certyfikatu do bramy
Add-AzApplicationGatewayTrustedClientCertificate -ApplicationGateway $gateway -Name "<name-of-new-cert>" -CertificateFile "<path-to-certificate-file>"
- Aktualizowanie bramy przy użyciu nowego certyfikatu
Set-AzApplicationGateway -ApplicationGateway $gateway