Application Gateway ile iç sanal ağda API Management tümleştirme
Bir Sanal ağda API Management hizmetini dahili moddayapılandırabilir ve bu hizmeti yalnızca sanal ağ içinde erişilebilir hale getirebilirsiniz. Azure Application Gateway , katman 7 yük dengeleyici işlevi gören bir PaaS hizmetidir. Bir ters proxy hizmeti işlevi görür ve teklifleri arasında bir Web uygulaması güvenlik duvarı (WAF) sağlar.
Application Gateway ön ucuna sahip bir iç sanal ağda sağlanan API Management birleştirerek şunları yapabilirsiniz:
- Hem iç tüketicilere hem de dış tüketicilere göre tüketim için aynı API Management kaynağını kullanın.
- Tek bir API Management kaynağı kullanın ve dış tüketiciler için kullanılabilir API Management tanımlanmış API 'lerin bir alt kümesine sahip olmanız gerekir.
- Genel internet 'ten API Management erişimi açmak ve kapatmak için bir anahtar oluşturma yöntemi sağlar.
Not
Bu makale, Application Gateway WAF_V2 SKU'sunu kullanacak şekilde güncelleştirilmiştir.
Kullanılabilirlik
Önemli
Bu özellik API Management Premium ve Geliştirici katmanlarında kullanılabilir.
Önkoşullar
Not
Bu makalede, Azure ile etkileşim kurmak için önerilen PowerShell modülü olan Azure Az PowerShell modülü kullanılır. Az PowerShell modülünü kullanmaya başlamak için Azure PowerShell’i yükleyin. Az PowerShell modülüne nasıl geçeceğinizi öğrenmek için bkz. Azure PowerShell’i AzureRM’den Az’ye geçirme.
Bu makalede açıklanan adımları izlemek için, şunları yapmanız gerekir:
Etkin bir Azure aboneliği.
Azure aboneliğiniz yoksa başlamadan önce ücretsiz bir hesap oluşturun.
Sertifikalar
- API Management hizmetin özel ana bilgisayar adları için PFX dosyaları: Gateway, Developer Portal ve Management Endpoint.
- PFX sertifikalarının kök sertifikası için bir CER dosyası.
Daha fazla bilgi için bkz. arka uç Için sertifikalar. Sınama amacıyla isteğe bağlı olarak otomatik olarak imzalanan sertifikalarüretin.
Azure PowerShell en son sürümü. Henüz yapmadıysanız, Azure PowerShell ' yi daha sonra yükleyebilirsiniz.
Senaryo
Bu makalede hem iç hem de dış tüketiciler için tek bir API Management hizmetini kullanmayı öğrenirsiniz ve hem şirket içi hem de bulut API 'Leri için tek bir ön uç işlevi görür. Ayrıca, Application Gateway ' de kullanılabilen yönlendirme işlevlerini kullanarak, API 'nizin yalnızca bir alt kümesini (yeşil renkle vurgulandığı örnekte) nasıl kullanıma sunabileceğiniz de anlamalısınız.
İlk kurulum örneğinde, tüm API 'leriniz yalnızca sanal ağınız içinden yönetilir. Dahili tüketiciler (Turuncu renkle vurgulanır), tüm iç ve dış API 'lerinize erişebilir. Trafik hiçbir şekilde internet 'e gitmez. Yüksek performanslı bağlantı hızlı rota devreleri aracılığıyla teslim edilebilir.

API Management ve Application Gateway tümleştirilecek ne gerekir?
- Arka uç sunucu havuzu: Bu, API Management hizmetinin iç sanal IP adresidir.
- Arka uç sunucu havuzu ayarları: Her havuzun bağlantı noktası, protokol ve tanımlama bilgisi tabanlı benzeşim gibi ayarları vardır. Bu ayarlar, havuzdaki tüm sunuculara uygulanır.
- Ön uç bağlantı noktası: Bu, uygulama ağ geçidinde açılan genel bağlantı noktasıdır. Giden trafik, arka uç sunucularından birine yönlendirilir.
- Dinleyici: Dinleyicinin bir ön uç bağlantı noktası, bir protokol (http veya https, bu değerler büyük/küçük harfe duyarlıdır) ve TLS/SSL sertifika adı (TLS boşaltması yapılandırıyorsanız) vardır.
- Kural: Kural bir dinleyiciyi arka uç sunucu havuzuna bağlar.
- Özel durum araştırması: Application Gateway, varsayılan olarak, BackendAddressPool içindeki hangi sunucuların etkin olduğunu anlamak için IP adresi tabanlı araştırmaları kullanır. API Management hizmeti yalnızca doğru ana bilgisayar üst bilgisine sahip isteklere yanıt verir, bu nedenle varsayılan yoklamalar başarısız olur. Uygulama ağ geçidinin, hizmetin etkin olduğunu ve istekleri iletmeli olduğunu belirlemesine yardımcı olmak için özel bir sistem durumu araştırması tanımlarsınız.
- Özel etki alanı sertifikaları: API Management internet 'ten erişmek için, ana bilgisayar adının bir CNAME eşlemesini Application Gateway ön uç DNS adına oluşturmanız gerekir. Bu, Application Gateway ve API Management iletilen ana bilgisayar adı üstbilgisinin ve sertifikanın geçerli olarak tanıdığı bir API Management sağlar. Bu örnekte, API Management hizmetin ağ geçidi (arka uç), geliştirici portalı ve yönetim uç noktası için üç sertifika kullanacağız.
API Management ve Application Gateway bütünleştirmek için gereken adımlar
- Resource Manager için kaynak grubu oluşturun.
- Application Gateway için bir sanal ağ, alt ağ ve genel IP oluşturun. API Management için başka bir alt ağ oluşturun.
- Önceki adımda oluşturulan sanal ağ alt ağı içinde bir API Management hizmeti oluşturun. İç modu kullandığınızdan emin olun.
- API Management hizmetinde özel etki alanı adları ayarlayın.
- Sanal ağda DNS çözümlemesi için özel bir DNS bölgesi yapılandırma
- Application Gateway yapılandırma nesnesi oluşturun.
- Application Gateway kaynağı oluşturun.
- Application Gateway genel DNS adından API Management proxy ana bilgisayar adına bir CNAME oluşturun.
Geliştirici portalını ve yönetim uç noktasını dışarıdan Application Gateway kullanıma sunma
Bu kılavuzda, uygulama ağ geçidi aracılığıyla Geliştirici Portalını ve Yönetim uç noktasını dış izleyiciler için de kullanıma sunduk. Her uç nokta için bir dinleyici, araştırma, ayar ve kural oluşturmak için ek adımlar gereklidir. Tüm ayrıntılar ilgili adımlarda sunulmaktadır.
Uyarı
Azure AD veya üçüncü taraf kimlik doğrulaması kullanıyorsanız, lütfen Application Gateway ' de tanımlama bilgisi tabanlı oturum benzeşimi özelliğini etkinleştirin.
Uyarı
Application Gateway WAF 'nin Geliştirici Portalında Openapı belirtimlerinin indirilmesini bozmasını engellemek için güvenlik duvarı kuralını devre dışı bırakmanız gerekir 942200 - "Detects MySQL comment-/space-obfuscated injections and backtick termination" .
Portalın işlevlerini kesintiye uğraetkileyebilecek WAF kurallarını Application Gateway şunlar vardır:
920300,,,,920330931130942100942110,942180,942200,942260942340942370,,,,,,,,,,942200,942260,,,,,942370,,,942430942440,,,
Resource Manager için kaynak grubu oluşturun
1. Adım
Azure'da oturum açma
Connect-AzAccount
Kimlik bilgilerinizle kimlik doğrulaması yapın.
2. Adım
İstediğiniz aboneliği seçin.
$subscriptionId = "00000000-0000-0000-0000-000000000000" # GUID of your Azure subscription
Get-AzSubscription -Subscriptionid $subscriptionId | Select-AzSubscription
3. Adım
Bir kaynak grubu oluşturun (mevcut bir kaynak grubu kullanıyorsanız bu adımı atlayın).
$resGroupName = "apim-appGw-RG" # resource group name
$location = "West US" # Azure region
New-AzResourceGroup -Name $resGroupName -Location $location
Azure Resource Manager, tüm kaynak gruplarının bir konum belirtmesini gerektirir. Bu, kaynak grubunda kaynaklar için varsayılan konum olarak kullanılır. Uygulama ağ geçidi oluşturmak için tüm komutların aynı kaynak grubunu kullanmasını sağlayın.
Uygulama ağ geçidi için bir sanal ağ ve bir alt ağ oluştur
Aşağıdaki örnek, Kaynak Yöneticisi kullanarak nasıl sanal ağ oluşturulacağını gösterir. Bu örnekteki sanal ağ Application Gateway ve API Management ayrı alt ağlardan oluşur.
1. Adım
Application Gateway ve API Management alt ağları için ağ güvenlik grupları ve NSG kuralları oluşturun.
$appGwRule1 = New-AzNetworkSecurityRuleConfig -Name appgw-in -Description "AppGw inbound" `
-Access Allow -Protocol * -Direction Inbound -Priority 100 -SourceAddressPrefix `
GatewayManager -SourcePortRange * -DestinationAddressPrefix * -DestinationPortRange 65200-65535
$appGwRule2 = New-AzNetworkSecurityRuleConfig -Name appgw-in-internet -Description "AppGw inbound Internet" `
-Access Allow -Protocol "TCP" -Direction Inbound -Priority 110 -SourceAddressPrefix `
Internet -SourcePortRange * -DestinationAddressPrefix * -DestinationPortRange 443
$appGwNsg = New-AzNetworkSecurityGroup -ResourceGroupName $resGroupName -Location $location -Name `
"NSG-APPGW" -SecurityRules $appGwRule1, $appGwRule2
$apimRule1 = New-AzNetworkSecurityRuleConfig -Name apim-in -Description "APIM inbound" `
-Access Allow -Protocol Tcp -Direction Inbound -Priority 100 -SourceAddressPrefix `
ApiManagement -SourcePortRange * -DestinationAddressPrefix VirtualNetwork -DestinationPortRange 3443
$apimNsg = New-AzNetworkSecurityGroup -ResourceGroupName $resGroupName -Location $location -Name `
"NSG-APIM" -SecurityRules $apimRule1
2. Adım
Bir sanal ağ oluştururken Application Gateway için kullanılacak alt ağ değişkenine 10.0.0.0/24 adres aralığını atayın.
$appGatewaySubnet = New-AzVirtualNetworkSubnetConfig -Name "appGatewaySubnet" -NetworkSecurityGroup $appGwNsg -AddressPrefix "10.0.0.0/24"
3. Adım
Bir sanal ağ oluştururken API Management için kullanılacak alt ağ değişkenine 10.0.1.0/24 adres aralığını atayın.
$apimSubnet = New-AzVirtualNetworkSubnetConfig -Name "apimSubnet" -NetworkSecurityGroup $apimNsg -AddressPrefix "10.0.1.0/24"
4. Adım
Batı ABD bölgesi için APIM-appGw-RG kaynak grubunda appgwvnet adlı bir sanal ağ oluşturun. 10.0.0.0/24 ve 10.0.1.0/24 alt ağları ile 10.0.0.0/16 önekini kullanın.
$vnet = New-AzVirtualNetwork -Name "appgwvnet" -ResourceGroupName $resGroupName `
-Location $location -AddressPrefix "10.0.0.0/16" -Subnet $appGatewaySubnet,$apimSubnet
5. Adım
Sonraki adımlar için alt ağ değişkenleri atama
$appGatewaySubnetData = $vnet.Subnets[0]
$apimSubnetData = $vnet.Subnets[1]
Dahili modda yapılandırılmış bir sanal ağ içinde API Management hizmeti oluşturma
Aşağıdaki örnek, yalnızca iç erişim için yapılandırılmış bir sanal ağda API Management hizmeti oluşturmayı gösterir.
1. Adım
Yukarıda oluşturulan alt ağı kullanarak API Management bir sanal ağ nesnesi oluşturun $apimSubnetData .
$apimVirtualNetwork = New-AzApiManagementVirtualNetwork -SubnetResourceId $apimSubnetData.Id
2. Adım
Sanal ağ içinde bir API Management hizmeti oluşturun. Bu örnek, hizmeti Geliştirici hizmeti katmanında oluşturur. API Management hizmetiniz için benzersiz bir ad yazın.
$apimServiceName = "ContosoApi" # API Management service instance name, must be globally unique
$apimOrganization = "Contoso" # organization name
$apimAdminEmail = "admin@contoso.com" # administrator's email address
$apimService = New-AzApiManagement -ResourceGroupName $resGroupName -Location $location -Name $apimServiceName -Organization $apimOrganization -AdminEmail $apimAdminEmail -VirtualNetwork $apimVirtualNetwork -VpnType "Internal" -Sku "Developer"
Bu katmanda bir API Management hizmeti oluşturmak ve etkinleştirmek için 30 ila 40 dakika sürebilir. Önceki komut başarılı olduktan sonra, erişimi onaylamak için iç sanal ağ API Management hizmetine erişmek için gereken DNS yapılandırmasına bakın.
API Management özel etki alanı adları ayarlama
1. Adım
Etki alanları için özel anahtarlara ve güvenilen kök sertifikaya sahip sertifikaların ayrıntılarıyla aşağıdaki değişkenleri başlatabilirsiniz. Bu örnekte , api.contoso.net ve portal.contoso.net management.contoso.net kullanıyoruz.
$gatewayHostname = "api.contoso.net" # API gateway host
$portalHostname = "portal.contoso.net" # API developer portal host
$managementHostname = "management.contoso.net" # API management endpoint host
$gatewayCertPfxPath = "C:\Users\Contoso\gateway.pfx" # full path to api.contoso.net .pfx file
$portalCertPfxPath = "C:\Users\Contoso\portal.pfx" # full path to portal.contoso.net .pfx file
$managementCertPfxPath = "C:\Users\Contoso\management.pfx" # full path to management.contoso.net .pfx file
$gatewayCertPfxPassword = "certificatePassword123" # password for api.contoso.net pfx certificate
$portalCertPfxPassword = "certificatePassword123" # password for portal.contoso.net pfx certificate
$managementCertPfxPassword = "certificatePassword123" # password for management.contoso.net pfx certificate
# Path to trusted root CER file used in Application Gateway HTTP settings
$trustedRootCertCerPath = "C:\Users\Contoso\trustedroot.cer" # full path to contoso.net trusted root .cer file
$certGatewayPwd = ConvertTo-SecureString -String $gatewayCertPfxPassword -AsPlainText -Force
$certPortalPwd = ConvertTo-SecureString -String $portalCertPfxPassword -AsPlainText -Force
$certManagementPwd = ConvertTo-SecureString -String $managementCertPfxPassword -AsPlainText -Force
2. Adım
Uygulama uç noktaları için konak adı yapılandırma nesnelerini API Management ayarlayın.
$gatewayHostnameConfig = New-AzApiManagementCustomHostnameConfiguration -Hostname $gatewayHostname `
-HostnameType Proxy -PfxPath $gatewayCertPfxPath -PfxPassword $certGatewayPwd
$portalHostnameConfig = New-AzApiManagementCustomHostnameConfiguration -Hostname $portalHostname `
-HostnameType DeveloperPortal -PfxPath $portalCertPfxPath -PfxPassword $certPortalPwd
$managementHostnameConfig = New-AzApiManagementCustomHostnameConfiguration -Hostname $managementHostname `
-HostnameType Management -PfxPath $managementCertPfxPath -PfxPassword $certManagementPwd
$apimService.ProxyCustomHostnameConfiguration = $gatewayHostnameConfig
$apimService.PortalCustomHostnameConfiguration = $portalHostnameConfig
$apimService.ManagementCustomHostnameConfiguration = $managementHostnameConfig
Set-AzApiManagement -InputObject $apimService
Not
Eski geliştirici portalı bağlantısını yapılandırmak için yerine ile değiştirmeniz -HostnameType DeveloperPortal -HostnameType Portal gerekir.
Sanal ağ içinde DNS çözümlemesi için özel bölge yapılandırma
1. Adım
Özel bir DNS bölgesi oluşturun ve sanal ağı bağlama.
$myZone = New-AzPrivateDnsZone -Name "contoso.net" -ResourceGroupName $resGroupName
$link = New-AzPrivateDnsVirtualNetworkLink -ZoneName contoso.net `
-ResourceGroupName $resGroupName -Name "mylink" `
-VirtualNetworkId $vnet.id
2. Adım
Özel etki alanı ana bilgisayar adları için A kayıtları oluşturun ve bu kayıtları hizmet için özel API Management oluşturun:
$apimIP = $apimService.PrivateIPAddresses[0]
New-AzPrivateDnsRecordSet -Name api -RecordType A -ZoneName contoso.net `
-ResourceGroupName $resGroupName -Ttl 3600 `
-PrivateDnsRecords (New-AzPrivateDnsRecordConfig -IPv4Address $apimIP)
New-AzPrivateDnsRecordSet -Name portal -RecordType A -ZoneName contoso.net `
-ResourceGroupName $resGroupName -Ttl 3600 `
-PrivateDnsRecords (New-AzPrivateDnsRecordConfig -IPv4Address $apimIP)
New-AzPrivateDnsRecordSet -Name management -RecordType A -ZoneName contoso.net `
-ResourceGroupName $resGroupName -Ttl 3600 `
-PrivateDnsRecords (New-AzPrivateDnsRecordConfig -IPv4Address $apimIP)
Ön uç yapılandırma için genel bir IP adresi oluşturun
Kaynak grubunda publicIP01 Standart genel IP kaynağı oluşturun.
$publicip = New-AzPublicIpAddress -ResourceGroupName $resGroupName `
-name "publicIP01" -location $location -AllocationMethod Static -Sku Standard
Hizmet başlatıldığında uygulama ağ geçidine bir IP adresi atanır.
Uygulama ağ geçidi yapılandırması oluşturma
Tüm yapılandırma öğeleri, uygulama ağ geçidi oluşturulmadan önce ayarlanmalıdır. Aşağıdaki adımlar uygulama ağ geçidi kaynağı için gerekli yapılandırma öğelerini oluşturur.
1. Adım
gatewayIP01 adlı bir uygulama ağ geçidi IP yapılandırması oluşturun. Bu Application Gateway, yapılandırılan alt ağdan bir IP adresi alır ve ağ trafiğini arka uç IP havuzunda IP adreslerine gönderir. Her örneğin bir IP adresi aldığını göz önünde bulundurun.
$gipconfig = New-AzApplicationGatewayIPConfiguration -Name "gatewayIP01" -Subnet $appGatewaySubnetData
2. Adım
Genel IP uç noktası için ön uç IP bağlantı noktasını yapılandırma. Bu bağlantı noktası, son kullanıcıların bağlanarak bağlantı noktasıdır.
$fp01 = New-AzApplicationGatewayFrontendPort -Name "port01" -Port 443
3. Adım
Ön uç IP’sini genel IP uç noktası ile yapılandırın.
$fipconfig01 = New-AzApplicationGatewayFrontendIPConfig -Name "frontend1" -PublicIPAddress $publicip
4. Adım
Geçen trafiğin şifresini çözmek ve yeniden şifrelemek için kullanılacak Application Gateway için sertifikaları yapılandırma.
Not
Application Gateway TLS seçeneklerini tanımlamayı, belirli TLS protokol sürümlerini devre dışı bırakmayı ve şifre paketlerini ve tercih sırası belirtmeyi destekler. Yapılandırılabilir TLS seçenekleri hakkında daha fazla bilgi edinmek için bkz. TLS ilkesine genel bakış.
$certGateway = New-AzApplicationGatewaySslCertificate -Name "gatewaycert" `
-CertificateFile $gatewayCertPfxPath -Password $certGatewayPwd
$certPortal = New-AzApplicationGatewaySslCertificate -Name "portalcert" `
-CertificateFile $portalCertPfxPath -Password $certPortalPwd
$certManagement = New-AzApplicationGatewaySslCertificate -Name "managementcert" `
-CertificateFile $managementCertPfxPath -Password $certManagementPwd
5. Adım
Uygulamanın HTTP dinleyicilerini Application Gateway. Ön uç IP yapılandırmasını, bağlantı noktasını ve TLS/SSL sertifikalarını onlara attayın.
$gatewayListener = New-AzApplicationGatewayHttpListener -Name "gatewaylistener" `
-Protocol "Https" -FrontendIPConfiguration $fipconfig01 -FrontendPort $fp01 `
-SslCertificate $certGateway -HostName $gatewayHostname -RequireServerNameIndication true
$portalListener = New-AzApplicationGatewayHttpListener -Name "portallistener" `
-Protocol "Https" -FrontendIPConfiguration $fipconfig01 -FrontendPort $fp01 `
-SslCertificate $certPortal -HostName $portalHostname -RequireServerNameIndication true
$managementListener = New-AzApplicationGatewayHttpListener -Name "managementlistener" `
-Protocol "Https" -FrontendIPConfiguration $fipconfig01 -FrontendPort $fp01 `
-SslCertificate $certManagement -HostName $managementHostname -RequireServerNameIndication true
6. Adım
Hizmet ağ geçidi etki alanı uç API Management özel ContosoApi araştırmalar oluşturun. Yol, /status-0123456789abcdef tüm hizmetlerde barındırılan varsayılan bir API Management noktasıdır. api.contoso.netTLS/SSL sertifikasıyla güvenliğini sağlamak için özel yoklama ana bilgisayar adı olarak ayarlayın.
Not
Ana bilgisayar contosoapi.azure-api.net adı, genel Azure'da adlı bir hizmet oluşturulduğunda yapılandırılan contosoapi varsayılan proxy ana bilgisayar adıdır.
$apimGatewayProbe = New-AzApplicationGatewayProbeConfig -Name "apimgatewayprobe" `
-Protocol "Https" -HostName $gatewayHostname -Path "/status-0123456789abcdef" `
-Interval 30 -Timeout 120 -UnhealthyThreshold 8
$apimPortalProbe = New-AzApplicationGatewayProbeConfig -Name "apimportalprobe" `
-Protocol "Https" -HostName $portalHostname -Path "/signin" `
-Interval 60 -Timeout 300 -UnhealthyThreshold 8
$apimManagementProbe = New-AzApplicationGatewayProbeConfig -Name "apimmanagementprobe" `
-Protocol "Https" -HostName $managementHostname -Path "/ServiceStatus" `
-Interval 60 -Timeout 300 -UnhealthyThreshold 8
7. Adım
Upload http ayarlarında yapılandırılan güvenilen kök sertifikayı seçin.
$trustedRootCert = New-AzApplicationGatewayTrustedRootCertificate -Name "whitelistcert1" -CertificateFile $trustedRootCertCerPath
8. Adım
Arka uç istekleri için zaman aşımı Application Gateway ve ardından iptal edilenler de dahil olmak üzere, arka uç için HTTP arka uç ayarlarını yapılandırma. Bu değer yoklama zaman aşımından farklıdır.
$apimPoolGatewaySetting = New-AzApplicationGatewayBackendHttpSettings -Name "apimPoolGatewaySetting" `
-Port 443 -Protocol "Https" -CookieBasedAffinity "Disabled" -Probe $apimGatewayProbe `
-TrustedRootCertificate $trustedRootCert -PickHostNameFromBackendAddress -RequestTimeout 180
$apimPoolPortalSetting = New-AzApplicationGatewayBackendHttpSettings -Name "apimPoolPortalSetting" `
-Port 443 -Protocol "Https" -CookieBasedAffinity "Disabled" -Probe $apimPortalProbe `
-TrustedRootCertificate $trustedRootCert -PickHostNameFromBackendAddress -RequestTimeout 180
$apimPoolManagementSetting = New-AzApplicationGatewayBackendHttpSettings -Name "apimPoolManagementSetting" `
-Port 443 -Protocol "Https" -CookieBasedAffinity "Disabled" -Probe $apimManagementProbe `
-TrustedRootCertificate $trustedRootCert -PickHostNameFromBackendAddress -RequestTimeout 180
9. Adım
İlgili etki alanı adını kullanarak her bir uç API Management arka uç IP adresi havuzu yapılandırma.
$apimGatewayBackendPool = New-AzApplicationGatewayBackendAddressPool -Name "gatewaybackend" `
-BackendFqdns $gatewayHostname
$apimPortalBackendPool = New-AzApplicationGatewayBackendAddressPool -Name "portalbackend" `
-BackendFqdns $portalHostname
$apimManagementBackendPool = New-AzApplicationGatewayBackendAddressPool -Name "managementbackend" `
-BackendFqdns $managementHostname
10. Adım
Temel yönlendirmeyi kullanmak için uygulama ağ geçidi için kurallar oluşturun.
$gatewayRule = New-AzApplicationGatewayRequestRoutingRule -Name "gatewayrule" `
-RuleType Basic -HttpListener $gatewayListener -BackendAddressPool $apimGatewayBackendPool `
-BackendHttpSettings $apimPoolGatewaySetting
$portalRule = New-AzApplicationGatewayRequestRoutingRule -Name "portalrule" `
-RuleType Basic -HttpListener $portalListener -BackendAddressPool $apimPortalBackendPool `
-BackendHttpSettings $apimPoolPortalSetting
$managementRule = New-AzApplicationGatewayRequestRoutingRule -Name "managementrule" `
-RuleType Basic -HttpListener $managementListener -BackendAddressPool $apimManagementBackendPool `
-BackendHttpSettings $apimPoolManagementSetting
İpucu
Geliştirici -RuleType portalının belirli sayfalarına erişimi kısıtlamak için ve yönlendirmesini değiştirme.
11. Adım
Uygulama ağ geçidi için örnek sayısını ve boyutu yapılandırın. Bu örnekte, kaynak kaynaklarında WAF_v2 için SKU'API Management kullanıyoruz.
Üretim iş yükleri için en az iki örnek (Kapasite) kullanılması önerilir. Ancak, üretim dışı senaryolar veya genel denemeler için yalnızca bir örnek kullanmak istiyor olabilir. Daha fazla bilgi için bkz. Azure Application Gateway fiyatlandırması.
$sku = New-AzApplicationGatewaySku -Name "WAF_v2" -Tier "WAF_v2" -Capacity 2
12. Adım
WAF'yi "Önleme" modunda olacak şekilde yapılandırma.
$config = New-AzApplicationGatewayWebApplicationFirewallConfiguration -Enabled $true -FirewallMode "Prevention"
13. Adım
TLS 1.0 şu anda varsayılan olduğundan, uygulama ağ geçidini en son TLS 1.2ilkesi kullanmak üzere ayarlamak iyi bir fikirdir.
$policy = New-AzApplicationGatewaySslPolicy -PolicyType Predefined -PolicyName AppGwSslPolicy20170401S
Yeni Application Gateway
Önceki Application Gateway tüm yapılandırma nesneleriyle bir uygulama oluşturun.
$appgwName = "apim-app-gw"
$appgw = New-AzApplicationGateway -Name $appgwName -ResourceGroupName $resGroupName -Location $location `
-BackendAddressPools $apimGatewayBackendPool,$apimPortalBackendPool,$apimManagementBackendPool `
-BackendHttpSettingsCollection $apimPoolGatewaySetting, $apimPoolPortalSetting, $apimPoolManagementSetting `
-FrontendIpConfigurations $fipconfig01 -GatewayIpConfigurations $gipconfig -FrontendPorts $fp01 `
-HttpListeners $gatewayListener,$portalListener,$managementListener `
-RequestRoutingRules $gatewayRule,$portalRule,$managementRule `
-Sku $sku -WebApplicationFirewallConfig $config -SslCertificates $certGateway,$certPortal,$certManagement `
-TrustedRootCertificate $trustedRootCert -Probes $apimGatewayProbe,$apimPortalProbe,$apimManagementProbe `
-SslPolicy $policy
Uygulama ağ geçidinin dağıtımı tamamlandıktan sonra portalda veya API Management arka uçlarının durumunu onaylayın:
Get-AzApplicationGatewayBackendHealth -Name $appgwName -ResourceGroupName $resGroupName
Her arka uç havuzunun durumunun Sağlıklı olduğundan emin olmak. Sağlıksız bir arka uç veya bilinmeyen durum durumuna sahip bir arka uçla ilgili sorunları gidermeniz gerekirse, bkz.Application Gateway.
CNAME API Management kaynağın genel DNS adına proxy ana bilgisayar Application Gateway adı
Ağ geçidi oluşturulduktan sonra ön uç iletişim için yapılandırılır. Genel IP adresi kullanırken, Application Gateway dinamik olarak atanmış bir DNS adı gerektirir ve bu kolay olmayacaktır.
Application Gateway ağ geçidi ana bilgisayar adını (önceki örneklerde) bu DNS adına işaret API Management bir CNAME kaydı oluşturmak için dns api.contoso.net adını kullanın. Ön uç IP CNAME kaydını yapılandırmak için öğesini kullanarak Application Gateway ip/DNS adının ayrıntılarını PublicIPAddress alın. Ağ geçidi yeniden başlatıldığında VIP değişene kadar A kayıtları kullanılması önerilmez.
Get-AzPublicIpAddress -ResourceGroupName $resGroupName -Name "publicIP01"
Test amacıyla, yerel makinenizin konak dosyasını, Application Gateway'nin genel IP adresini yapılandırmış API Management uç nokta ana bilgisayar adlarının her biri ile eşleye girişlerle güncelleştirebilirsiniz (örneğin, api.contoso.net portal.contoso.net , management.contoso.net ).
Özet
Bir API Management yapılandırılan Azure sanal makineleri, şirket içinde veya bulutta barındırılan tüm yapılandırılmış API'ler için tek bir ağ geçidi arabirimi sağlar. Application Gateway'API Management tümleştirme, belirli API'leri seçmeli olarak internet üzerinden erişilebilir hale alma esnekliğini sağlar ve API Management örneğiniz için bir WAF sağlar.
Sonraki adımlar
- Daha fazla bilgi Azure Application Gateway
- Sanal ağ ve API Management hakkında daha fazla bilgi