إشعار
يتطلب الوصول إلى هذه الصفحة تخويلاً. يمكنك محاولة تسجيل الدخول أو تغيير الدلائل.
يتطلب الوصول إلى هذه الصفحة تخويلاً. يمكنك محاولة تغيير الدلائل.
توضح هذه المقالة كيفية استخدام PowerShell لتكوين المصادقة المتبادلة على بوابة التطبيق. تعني المصادقة المتبادلة أن Application Gateway تصادق العميل الذي يرسل الطلب باستخدام شهادة العميل التي تحملها على بوابة التطبيق.
في حال لم يكن لديك اشتراك Azure، فأنشئ حساباً مجانيّاً قبل البدء.
Note
نوصي باستخدام الوحدة النمطية Azure Az PowerShell للتفاعل مع Azure. للبدء، راجع تثبيت Azure PowerShell. لمعرفة كيفية الترحيل إلى الوحدة النمطية Az PowerShell، راجع ترحيل Azure PowerShell من AzureRM إلى Az.
تتطلب هذه المقالة إصدار الوحدة النمطية Azure PowerShell 1.0.0 أو أحدث. قم بتشغيل Get-Module -ListAvailable Az للعثور على الإصدار. إذا كنت بحاجة إلى الترقية، فراجع تثبيت الوحدة النمطية Azure PowerShell. في حالة تشغيل PowerShell محليًا، فأنت بحاجة أيضًا إلى تشغيل Connect-AzAccount لإنشاء اتصال مع Azure.
قبل البدء
لتكوين المصادقة المتبادلة مع بوابة التطبيق، تحتاج إلى شهادة عميل لتحميلها إلى البوابة. يتم استخدام شهادة العميل للتحقق من صحة الشهادة التي يقدمها العميل إلى Application Gateway. لأغراض الاختبار، يمكنك استخدام شهادة موقعة ذاتيا. ومع ذلك، لا ينصح بذلك لأحمال عمل الإنتاج، لأنها صعبة الإدارة وليست آمنة تماما.
لمعرفة المزيد، خاصة حول نوع شهادات العميل التي يمكنك تحميلها، راجع نظرة عامة على المصادقة المتبادلة مع Application Gateway.
إنشاء مجموعة موارد
قم أولا بإنشاء مجموعة موارد جديدة في اشتراكك.
$resourceGroup = New-AzResourceGroup -Name $rgname -Location $location -Tags @{ testtag = "APPGw tag"}
إنشاء شبكة ظاهرية
نشر شبكة ظاهرية لبوابة التطبيق الخاصة بك ليتم نشرها فيها.
$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
إنشاء IP عام
إنشاء IP عام لاستخدامه مع بوابة التطبيق الخاصة بك.
$publicip = New-AzPublicIpAddress -ResourceGroupName $rgname -name $publicIpName -location $location -AllocationMethod Static -sku Standard
إنشاء تكوين IP لبوابة التطبيق
إنشاء تكوينات IP ومنفذ الواجهة الأمامية.
$gipconfig = New-AzApplicationGatewayIPConfiguration -Name $gipconfigname -Subnet $gwSubnet
$fipconfig = New-AzApplicationGatewayFrontendIPConfig -Name $fipconfigName -PublicIPAddress $publicip
$port = New-AzApplicationGatewayFrontendPort -Name $frontendPortName -Port 443
تكوين TLS/SSL للواجهة الأمامية
تكوين شهادات TLS/SSL لبوابة التطبيق الخاصة بك.
$password = ConvertTo-SecureString "P@ssw0rd" -AsPlainText -Force
$sslCertPath = $basedir + "/ScenarioTests/Data/ApplicationGatewaySslCert1.pfx"
$sslCert = New-AzApplicationGatewaySslCertificate -Name $sslCertName -CertificateFile $sslCertPath -Password $password
تكوين مصادقة العميل
تكوين مصادقة العميل على بوابة التطبيق. لمزيد من المعلومات حول كيفية استخراج سلاسل شهادات CA للعميل الموثوق بها لاستخدامها هنا، راجع كيفية استخراج سلاسل شهادات CA للعميل الموثوق بها.
Important
تأكد من تحميل سلسلة شهادات CA للعميل بالكامل في ملف واحد، وسلسلة واحدة فقط لكل ملف. يجب أن يكون الحد الأقصى لحجم كل ملف تم تحميله 25 كيلوبايت أو أقل.
Note
نوصي باستخدام TLS 1.2 مع المصادقة المتبادلة حيث سيتم تفويض TLS 1.2 بدءا من 31 أغسطس 2025.
$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
تكوين تجمع الخلفية والإعدادات
إعداد تجمع الخلفية والإعدادات لبوابة التطبيق الخاصة بك. اختياريا، قم بإعداد شهادة الجذر الموثوق بها الخلفية لتشفير 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
تكوين القاعدة
إعداد قاعدة على بوابة التطبيق.
$rule = New-AzApplicationGatewayRequestRoutingRule -Name $ruleName -RuleType basic -BackendHttpSettings $poolSetting -HttpListener $listener -BackendAddressPool $pool
إعداد نهج TLS/SSL الافتراضي للمستمعين المستقبليين
لقد قمت بإعداد نهج TLS/SSL محدد لوحدة الاستماع أثناء إعداد المصادقة المتبادلة. في هذه الخطوة، يمكنك اختياريا تعيين نهج TLS/SSL الافتراضي للمستمعين المستقبليين الذين تقوم بإنشائه.
$sslPolicyGlobal = New-AzApplicationGatewaySslPolicy -PolicyType Predefined -PolicyName "AppGwSslPolicy20170401"
أنشئ بوابة التطبيق
باستخدام كل شيء أنشأناه، انشر بوابة التطبيق الخاصة بك.
$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
تنظيف الموارد
عندما لا تكون هناك حاجة إليها، قم بإزالة مجموعة الموارد وبوابة التطبيق وجميع الموارد ذات الصلة باستخدام Remove-AzResourceGroup.
Remove-AzResourceGroup -Name $rgname
تجديد شهادات المرجع المصدق للعميل منتهية الصلاحية
في حالة انتهاء صلاحية شهادة المرجع المصدق للعميل، يمكنك تحديث الشهادة على البوابة الخاصة بك من خلال الخطوات التالية:
- تسجيل الدخول إلى Azure
Connect-AzAccount Select-AzSubscription -Subscription "<sub name>" - الحصول على تكوين بوابة التطبيق
$gateway = Get-AzApplicationGateway -Name "<gateway-name>" -ResourceGroupName "<resource-group-name>" - إزالة شهادة العميل الموثوق بها من البوابة
Remove-AzApplicationGatewayTrustedClientCertificate -Name "<name-of-client-certificate>" -ApplicationGateway $gateway - إضافة الشهادة الجديدة إلى البوابة
Add-AzApplicationGatewayTrustedClientCertificate -ApplicationGateway $gateway -Name "<name-of-new-cert>" -CertificateFile "<path-to-certificate-file>" - تحديث البوابة بالشهادة الجديدة
Set-AzApplicationGateway -ApplicationGateway $gateway