Integrace API Management v interní virtuální síti s Application Gateway

Službu API Management ve virtuální síti můžete nakonfigurovat v interním režimu, aby byla dostupná jenom v rámci virtuální sítě. Azure Application Gateway je služba PaaS, která funguje jako nástroj pro vyrovnávání zatížení vrstvy 7. Funguje jako služba reverzního proxy serveru a nabízí z nabídky také bránu firewall webových aplikací (WAF).

Kombinováním API Management zajištěného v interní virtuální síti s Application Gateway front-endu můžete:

  • Použijte stejný prostředek API Management pro spotřebu interních i externích spotřebitelů.
  • Použijte jeden prostředek API Management a mít podmnožinu rozhraní API definovanou v API Management k dispozici pro externí příjemce.
  • Poskytněte klíč způsob, jak přepínat přístup k API Management z veřejného Internetu.

Poznámka

Tento článek byl aktualizován, aby používal WAF_V2 SKU Application Gateway.

Dostupnost

Důležité

Tato funkce je dostupná na úrovních API Management úrovně Premium a Developer .

Požadavky

Poznámka

Tento článek používá modul Azure Az PowerShell, což je doporučený modul PowerShellu pro interakci s Azure. Pokud chcete začít s modulem Az PowerShell, projděte si téma věnované instalaci Azure PowerShellu. Informace o tom, jak migrovat na modul Az PowerShell, najdete v tématu Migrace Azure PowerShellu z AzureRM na Az.

Pokud chcete postupovat podle kroků popsaných v tomto článku, musíte mít:

  • Musíte mít aktivní předplatné Azure.

    Pokud ještě nemáte předplatné Azure,vytvořte si bezplatný účet před tím, než začnete.

  • Certifikáty

    • Soubory PFX pro vlastní názvy hostitelů služby API Management: brána, portál pro vývojáře a koncový bod správy.
    • Soubor CER pro kořenový certifikát certifikátů PFX.

    Další informace najdete v tématu certifikáty pro back-end. Pro účely testování můžete volitelně vygenerovat certifikáty podepsané svým držitelem.

  • Nejnovější verze Azure PowerShell. Pokud jste to ještě neudělali, nainstalujte Azure PowerShell.

Scenario

V tomto článku se dozvíte, jak používat jednu API Management službu pro interní i externí spotřebitele a zajistit, aby jednala jako jeden front-end pro místní i cloudová rozhraní API. Naučíte se také, jak vystavit jenom podmnožinu vašich rozhraní API (v příkladu, které jsou zvýrazněny zeleně) pro externí spotřebu pomocí funkce směrování dostupné v Application Gateway.

V prvním příkladu instalace jsou všechna vaše rozhraní API spravovaná jenom v rámci vaší virtuální sítě. Interní spotřebitelé (zvýrazněné oranžová) mají přístup ke všem vašim interním a externím rozhraním API. Provoz nikdy nepřijde na Internet. Připojení s vysokým výkonem se dá doručovat přes okruhy Express Route.

trasa URL

Co je potřeba k integraci API Management a Application Gateway?

  • Fond back-end serveru: Toto je interní virtuální IP adresa služby API Management.
  • Nastavení fondu serverů back-end: Každý fond má nastavení, jako je port, protokol a spřažení na základě souborů cookie. Tato nastavení se aplikují na všechny servery v rámci fondu.
  • Port front-end: Toto je veřejný port, který se otevírá ve službě Application Gateway. Provoz se přesměruje na jeden ze serverů back-end.
  • Naslouchací proces: Naslouchací proces má front-end port, protokol (http nebo https, u těchto hodnot se rozlišují malá a velká písmena) a název certifikátu TLS/SSL (Pokud se konfiguruje přesměrování zpracování TLS).
  • Pravidlo: Pravidlo váže naslouchací proces na fond serverů back-end.
  • Vlastní sonda stavu: Ve výchozím nastavení používá Application Gateway ke zjištění, které servery v BackendAddressPool jsou aktivní, pomocí testů založených na IP adresách. Služba API Management reaguje jenom na žádosti se správnou hlavičkou hostitele, takže výchozí sondy selžou. Definujete vlastní sondu stavu, která službě Application Gateway pomůže zjistit, že je služba aktivní a že má požadavky předává.
  • Vlastní certifikáty domény: Chcete-li získat přístup k API Management z Internetu, je třeba vytvořit mapování CNAME svého názvu hostitele na Application Gateway název DNS front-endu. Tím je zajištěno, že záhlaví a certifikát hostitele odeslané do Application Gateway a předané API Management je API Management rozpoznává jako platná. V tomto příkladu použijeme tři certifikáty – pro bránu API Management služby (back-end), portál pro vývojáře a koncový bod správy.

Kroky vyžadované pro integraci API Management a Application Gateway

  1. Vytvoření skupiny prostředků pro Resource Manager
  2. Vytvořte virtuální síť, podsíť a veřejnou IP adresu pro Application Gateway. Vytvořte další podsíť pro API Management.
  3. Vytvořte službu API Management v podsíti virtuální sítě vytvořené v předchozím kroku. Ujistěte se, že používáte interní režim.
  4. Nastavte ve službě API Management vlastní názvy domén.
  5. Konfigurace privátní zóny DNS pro překlad DNS ve virtuální síti
  6. Vytvořte objekt konfigurace Application Gateway.
  7. Vytvořte prostředek Application Gateway.
  8. Vytvořte CNAME z veřejného názvu DNS Application Gateway k názvu hostitele API Management proxy serveru.

Zpřístupněte portál pro vývojáře a koncový bod správy externě prostřednictvím Application Gateway

V tomto průvodci jsme také zveřejnili portál pro vývojáře a koncový bod správy externím cílovým skupinám prostřednictvím služby Application Gateway. Pro vytvoření naslouchacího procesu, sondy, nastavení a pravidel pro každý koncový bod jsou potřeba další kroky. Všechny podrobnosti jsou k dispozici v příslušných krocích.

Upozornění

Pokud používáte ověřování Azure AD nebo třetí strany, povolte v Application Gateway funkci spřažení relace na základě souborů cookie .

Upozornění

Chcete-li zabránit Application Gateway WAF z narušení stahování specifikací OpenAPI na portálu pro vývojáře, je nutné zakázat pravidlo brány firewall 942200 - "Detects MySQL comment-/space-obfuscated injections and backtick termination" .

Application Gateway WAF pravidla, která mohou poškodit funkce portálu, zahrnují:

  • 920300, 920330 , 931130 , 942100 , 942110 , 942180 , 942200 , 942260 , 942340 , 942370 pro režim správy
  • 942200, 942260 , 942370 , 942430 , 942440 pro publikovaný portál

Vytvoření skupiny prostředků pro Resource Manager

Krok 1

Přihlaste se k Azure.

Connect-AzAccount

Proveďte ověření pomocí vašich přihlašovacích údajů.

Krok 2

Vyberte požadované předplatné.

$subscriptionId = "00000000-0000-0000-0000-000000000000" # GUID of your Azure subscription
Get-AzSubscription -Subscriptionid $subscriptionId | Select-AzSubscription

Krok 3

Vytvořte skupinu prostředků (pokud používáte některou ze stávajících skupin prostředků, můžete tenhle krok přeskočit).

$resGroupName = "apim-appGw-RG" # resource group name
$location = "West US"           # Azure region
New-AzResourceGroup -Name $resGroupName -Location $location

Azure Resource Manager vyžaduje, aby všechny skupiny prostředků určily umístění. To slouží jako výchozí umístění pro prostředky v příslušné skupině prostředků. Ujistěte se, že všechny příkazy k vytvoření služby Application Gateway používají stejnou skupinu prostředků.

Vytvoření virtuální sítě a podsítě pro službu Application Gateway

Následující příklad ukazuje, jak vytvořit virtuální síť pomocí Správce prostředků. Virtuální síť v tomto příkladu se skládá z oddělených podsítí pro Application Gateway a API Management.

Krok 1

Vytvořte skupiny zabezpečení sítě a NSG pravidla pro podsítě Application Gateway a API Management.

$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

Krok 2

Přiřaďte proměnné podsítě rozsah adres 10.0.0.0/24, který se má použít pro Application Gateway při vytváření virtuální sítě.

$appGatewaySubnet = New-AzVirtualNetworkSubnetConfig -Name "appGatewaySubnet" -NetworkSecurityGroup $appGwNsg -AddressPrefix "10.0.0.0/24"

Krok 3

Přiřaďte k proměnné podsítě rozsah adres 10.0.1.0/24, který se má použít pro API Management při vytváření virtuální sítě.

$apimSubnet = New-AzVirtualNetworkSubnetConfig -Name "apimSubnet" -NetworkSecurityGroup $apimNsg -AddressPrefix "10.0.1.0/24"

Krok 4

Vytvořte virtuální síť s názvem appgwvnet ve skupině prostředků APIM-appGw-RG pro oblast západní USA. Použijte předponu 10.0.0.0/16 s podsítěmi 10.0.0.0/24 a 10.0.1.0/24.

$vnet = New-AzVirtualNetwork -Name "appgwvnet" -ResourceGroupName $resGroupName `
  -Location $location -AddressPrefix "10.0.0.0/16" -Subnet $appGatewaySubnet,$apimSubnet

Krok 5

Přiřazení proměnných podsítě pro další kroky

$appGatewaySubnetData = $vnet.Subnets[0]
$apimSubnetData = $vnet.Subnets[1]

Vytvoření služby API Management ve virtuální síti nakonfigurované v interním režimu

Následující příklad ukazuje, jak vytvořit službu API Management ve virtuální síti nakonfigurované pouze pro interní přístup.

Krok 1

Vytvořte objekt virtuální sítě API Management pomocí podsítě $apimSubnetData vytvořené výše.

$apimVirtualNetwork = New-AzApiManagementVirtualNetwork -SubnetResourceId $apimSubnetData.Id

Krok 2

Vytvořte ve virtuální síti službu API Management. Tento příklad vytvoří službu ve vrstvě služeb pro vývojáře. Nahraďte jedinečný název vaší API Management služby.

$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"

Vytvoření a aktivace služby API Management v této vrstvě může trvat 30 až 40 minut. Po úspěšném dokončení předchozího příkazu se podívejte na konfiguraci DNS, která je nutná pro přístup k interní službě Virtual network API Management pro ověření přístupu k ní.

Nastavení vlastních názvů domén v API Management

Krok 1

Inicializujte následující proměnné s podrobnostmi o certifikátech s privátními klíči pro domény a důvěryhodným kořenovým certifikátem. V tomto příkladu používáme api.contoso.net , portal.contoso.net a management.contoso.net .

$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

Krok 2

Vytvořte a nastavte objekty konfigurace názvu hostitele pro koncové body API Management.

$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

Poznámka

Pokud chcete nakonfigurovat připojení ke staršímu portálu pro vývojáře, budete muset -HostnameType DeveloperPortal nahradit -HostnameType Portal .

Konfigurace privátní zóny pro překlad DNS ve virtuální síti

Krok 1

Vytvořte privátní zónu DNS a propojte virtuální síť.

$myZone = New-AzPrivateDnsZone -Name "contoso.net" -ResourceGroupName $resGroupName 
$link = New-AzPrivateDnsVirtualNetworkLink -ZoneName contoso.net `
  -ResourceGroupName $resGroupName -Name "mylink" `
  -VirtualNetworkId $vnet.id

Krok 2

Vytvořte záznamy pro vlastní názvy domén hostitele, které se mapují na privátní IP adresu služby API Management:

$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)

Vytvoření veřejné IP adresy pro front-end konfiguraci

Ve skupině prostředků vytvořte standardní prostředek veřejné IP adresy publicIP01 .

$publicip = New-AzPublicIpAddress -ResourceGroupName $resGroupName `
  -name "publicIP01" -location $location -AllocationMethod Static -Sku Standard

IP adresa je ke službě Application Gateway přiřazena při spuštění služby.

Vytvořit konfiguraci aplikační brány

Před vytvořením služby Application Gateway musí být nastaveny všechny položky konfigurace. Následující kroky slouží k vytvoření položek konfigurace potřebné pro prostředek služby Application Gateway.

Krok 1

Vytvořte konfiguraci protokolu IP služby Application Gateway s názvem gatewayIP01. Když se Application Gateway spustí, vybere IP adresu z nakonfigurované podsítě a směruje síťový provoz na IP adresy ve fondu IP adres back-endu. Uvědomte si, že každá instance vyžaduje jednu IP adresu.

$gipconfig = New-AzApplicationGatewayIPConfiguration -Name "gatewayIP01" -Subnet $appGatewaySubnetData

Krok 2

Nakonfigurujte port front-end IP adresy pro koncový bod veřejné IP adresy. Tento port je port, ke kterému se koncoví uživatelé připojují.

$fp01 = New-AzApplicationGatewayFrontendPort -Name "port01"  -Port 443

Krok 3

Nakonfigurujte IP adresu front-endu s koncovým bodem s veřejnou IP adresou.

$fipconfig01 = New-AzApplicationGatewayFrontendIPConfig -Name "frontend1" -PublicIPAddress $publicip

Krok 4

Nakonfigurujte certifikáty pro Application Gateway, které se použijí k dešifrování a opětovnému šifrování provozu, který prochází.

Poznámka

Application Gateway podporuje definování vlastních možností TLS, zakázání určitých verzí protokolu TLS a zadání šifrovacích sad a pořadí priorit. Další informace o konfigurovatelných možnostech TLS najdete v tématu Přehled zásad protokolu TLS.

$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

Krok 5

Vytvořte naslouchací proces HTTP pro Application Gateway. Přiřaďte k nim certifikáty konfigurace front-end IP adresy, portu a TLS/SSL.

$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

Krok 6

Vytvořte vlastní sondy na ContosoApi koncový bod domény služby API Management Service Gateway. Tato cesta /status-0123456789abcdef je výchozím koncovým bodem stavu hostovaným na všech službách API Management. Nastavte api.contoso.net jako vlastní název hostitele testu, abyste ho zabezpečili pomocí certifikátu TLS/SSL.

Poznámka

Název hostitele contosoapi.azure-api.net je výchozím názvem proxy hostitele nakonfigurovaným při vytvoření služby s názvem contosoapi ve veřejném Azure.

$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

Krok 7

Upload důvěryhodný kořenový certifikát, který se má nakonfigurovat v nastavení protokolu HTTP.

$trustedRootCert = New-AzApplicationGatewayTrustedRootCertificate -Name "whitelistcert1" -CertificateFile $trustedRootCertCerPath

Krok 8

Nakonfigurujte nastavení back-endu protokolu HTTP pro Application Gateway, včetně časového limitu pro back-endové požadavky, po jejichž zrušení se zruší. Tato hodnota se liší od časového limitu testu.

$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

Krok 9

U každého koncového bodu API Management nakonfigurujte fond IP adres back-endu s použitím příslušného názvu domény.

$apimGatewayBackendPool = New-AzApplicationGatewayBackendAddressPool -Name "gatewaybackend" `
  -BackendFqdns $gatewayHostname
$apimPortalBackendPool = New-AzApplicationGatewayBackendAddressPool -Name "portalbackend" `
  -BackendFqdns $portalHostname
$apimManagementBackendPool = New-AzApplicationGatewayBackendAddressPool -Name "managementbackend" `
  -BackendFqdns $managementHostname

Krok 10

Vytvořte pravidla pro službu Application Gateway, která bude používat základní směrování.

$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

Tip

Chcete-li -RuleType omezit přístup k určitým stránkám portálu pro vývojáře, změňte směrování a.

Krok 11

Nakonfigurujte počet instancí a velikost pro službu Application Gateway. V tomto příkladu používáme WAF_V2 SKU pro zvýšené zabezpečení prostředků API Management.

Pro produkční úlohy doporučujeme použít minimálně dvě instance (kapacitu). Můžete ale chtít použít jenom jednu instanci pro neprodukční scénáře nebo pro obecné experimenty. Další informace najdete v tématu ceny služby Azure Application Gateway.

$sku = New-AzApplicationGatewaySku -Name "WAF_v2" -Tier "WAF_v2" -Capacity 2

Krok 12

Nakonfigurujte WAF tak, aby byl v režimu prevence.

$config = New-AzApplicationGatewayWebApplicationFirewallConfiguration -Enabled $true -FirewallMode "Prevention"

Krok 13

Vzhledem k tomu, že TLS 1,0 je aktuálně výchozí, je vhodné nastavit Aplikační bránu tak, aby používala nejnovější zásady TLS 1,2.

$policy = New-AzApplicationGatewaySslPolicy -PolicyType Predefined -PolicyName AppGwSslPolicy20170401S

Vytvořit Application Gateway

Vytvořte Application Gateway se všemi objekty konfigurace z předchozích kroků.

$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

Po dokončení nasazení služby Application Gateway potvrďte stav API Management back-endy na portálu nebo spuštěním následujícího příkazu:

Get-AzApplicationGatewayBackendHealth -Name $appgwName -ResourceGroupName $resGroupName

Ujistěte se, že stav každého back-end fondu je v pořádku. Pokud potřebujete řešit potíže se stavem nesprávného nebo back-endu s neznámým stavem, přečtěte si téma řešení potíží se stavem back-endu v Application Gateway.

CNAME API Management název hostitele proxy serveru k veřejnému názvu DNS prostředku Application Gateway

Po vytvoření brány nakonfigurujte front-end pro komunikaci. Při použití veřejné IP adresy Application Gateway vyžaduje dynamicky přiřazený název DNS, který možná nebude možné snadno použít.

Pomocí názvu DNS Application Gateway vytvořte záznam CNAME odkazující na název hostitele brány služby API Management ( api.contoso.net v předchozích příkladech) k tomuto názvu DNS. Pokud chcete nakonfigurovat záznam CNAME protokolu IP, načtěte podrobnosti o Application Gateway a jeho přidruženém názvu IP/DNS pomocí PublicIPAddress elementu. Nedoporučujeme používat záznamy typu A, protože VIP se může po restartování brány změnit.

Get-AzPublicIpAddress -ResourceGroupName $resGroupName -Name "publicIP01"

Pro účely testování můžete soubor hostitelů aktualizovat na místním počítači pomocí položky mapování veřejné IP adresy Application Gateway na každý z API Management názvů koncových bodů, které jste nakonfigurovali (například,, api.contoso.net portal.contoso.net management.contoso.net ).

Souhrn

Azure API Management nakonfigurovaný ve virtuální síti poskytuje rozhraní jediné brány pro všechna nakonfigurovaná rozhraní API, ať už je hostovaná místně nebo v cloudu. Integrace Application Gateway s API Management poskytuje flexibilitu selektivního povolení konkrétních rozhraní API k přístupu na internetu a poskytování WAF jako front-endu vaší instance API Management.

Další kroky