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:

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.

URL yolu

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

  1. Resource Manager için kaynak grubu oluşturun.
  2. 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.
  3. Önceki adımda oluşturulan sanal ağ alt ağı içinde bir API Management hizmeti oluşturun. İç modu kullandığınızdan emin olun.
  4. API Management hizmetinde özel etki alanı adları ayarlayın.
  5. Sanal ağda DNS çözümlemesi için özel bir DNS bölgesi yapılandırma
  6. Application Gateway yapılandırma nesnesi oluşturun.
  7. Application Gateway kaynağı oluşturun.
  8. 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,,,, 920330 931130 942100 942110 , 942180 , 942200 , 942260 942340 942370 ,,,,,,,,,,
  • 942200, 942260 ,,,,, 942370 ,,, 942430 942440 ,,,

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