Integrera API Management i ett internt virtuellt nätverk med Application Gateway

Du kan konfigurera API Management i ett virtuellt nätverk i internt läge,vilket gör det endast tillgängligt i det virtuella nätverket. Azure Application Gateway är en PaaS-tjänst som fungerar som layer-7-lastbalanserare. Den fungerar som en omvänd proxytjänst och tillhandahåller bland sina erbjudanden en Web Application Firewall (WAF).

Genom att API Management i ett internt virtuellt nätverk med Application Gateway kan du:

  • Använd samma API Management för användning av både interna och externa konsumenter.
  • Använd en API Management resurs och ha en delmängd AV API:er som definierats i API Management tillgänglig för externa konsumenter.
  • Ange ett nyckelfärdigt sätt att växla åtkomst API Management från det offentliga Internet på och av.

Anteckning

Den här artikeln har uppdaterats för att använda Application Gateway WAF_v2 SKU.

Tillgänglighet

Viktigt

Den här funktionen är tillgänglig på nivån Premium och developer för API Management.

Förutsättningar

Anteckning

I den här artikeln används Azure Az PowerShell-modulen, som är den rekommenderade PowerShell-modulen för att interagera med Azure. För att komma igång med Az PowerShell kan du läsa artikeln om att installera Azure PowerShell. Information om hur du migrerar till Az PowerShell-modulen finns i artikeln om att migrera Azure PowerShell från AzureRM till Az.

Om du vill följa stegen som beskrivs i den här artikeln måste du ha:

Scenario

I den här artikeln får du lära dig hur du använder en enda API Management-tjänst för både interna och externa användare och får den att fungera som en enda frontend för både lokala och molnbaserade API:er. Du kommer också att förstå hur du bara exponerar en delmängd av dina API:er (i det här exemplet är de markerade i grönt) för extern användning med hjälp av routningsfunktioner som är tillgängliga i Application Gateway.

I det första installationsexempel hanteras alla dina API:er endast inifrån det virtuella nätverket. Interna konsumenter (markerade i orange) kan komma åt alla dina interna och externa API:er. Trafiken går aldrig ut till Internet. Anslutningar med höga prestanda kan levereras via Express Route-kretsar.

URL-väg

Vad krävs för att integrera API Management och Application Gateway?

  • Serverpool för server: Det här är den interna virtuella IP-adressen för API Management tjänsten.
  • Inställningar för backend-serverpool: Varje pool har inställningar som port, protokoll och cookie-baserad tillhörighet. De här inställningarna tillämpas på alla servrar i poolen.
  • Frontend-port: Det här är den offentliga porten som öppnas på programgatewayen. Trafik som når den omdirigeras till en av backend-servrarna.
  • Lyssnaren: Lyssnaren har en klientport, ett protokoll (Http eller Https, dessa värden är fallkänsliga) och TLS/SSL-certifikatnamnet (om du konfigurerar TLS-avlastning).
  • Regel: Regeln binder en lyssnare till en serverserverpool.
  • Anpassad hälsoavsökning: Application Gateway använder IP-adressbaserade avsökningar som standard för att ta reda på vilka servrar i BackendAddressPool som är aktiva. Tjänsten API Management svarar bara på begäranden med rätt värdhuvud, vilket gör att standardavsökningarna misslyckas. Du definierar en anpassad hälsoavsökning som hjälper programgatewayen att fastställa att tjänsten är levande och att den ska vidarebefordra begäranden.
  • Anpassade domäncertifikat: För att API Management från Internet måste du skapa en CNAME-mappning av dess värdnamn till Application Gateway DNS-namnet på serversidan. Detta säkerställer att värdnamnets huvud och certifikat som skickas till Application Gateway och vidarebefordras till API Management är ett som API Management kan identifiera som giltigt. I det här exemplet använder vi tre certifikat – för API Management-tjänstens gateway (server), utvecklarportalen och hanteringsslutpunkten.

Steg som krävs för att integrera API Management och Application Gateway

  1. Skapa en resursgrupp för Resource Manager.
  2. Skapa ett virtuellt nätverk, undernät och en offentlig IP-adress för Application Gateway. Skapa ett till undernät för API Management.
  3. Skapa en API Management i det virtuella nätverkets undernät som skapades i föregående steg. Se till att du använder det interna läget.
  4. Konfigurera anpassade domännamn i API Management tjänsten.
  5. Konfigurera en privat DNS-zon för DNS-upplösning i det virtuella nätverket
  6. Skapa ett Application Gateway-konfigurationsobjekt.
  7. Skapa en Application Gateway resurs.
  8. Skapa ett CNAME från det offentliga DNS-namnet för Application Gateway till API Management proxyvärdnamn.

Exponera utvecklarportalen och hanteringsslutpunkten externt via Application Gateway

I den här guiden exponerar vi även utvecklarportalen och hanteringsslutpunkten för externa målgrupper via programgatewayen. Extra steg krävs för att skapa en lyssnare, avsökning, inställningar och regler för varje slutpunkt. All information finns i respektive steg.

Varning

Om du använder Azure AD eller autentisering från tredje part aktiverar du funktionen cookiebaserad sessionstillhörighet i Application Gateway.

Varning

Om du Application Gateway waf från att bryta nedladdningen av OpenAPI-specifikationer i utvecklarportalen måste du inaktivera brandväggsregeln 942200 - "Detects MySQL comment-/space-obfuscated injections and backtick termination" .

Application Gateway WAF-regler som kan bryta portalens funktioner är:

  • 920300, 920330 , , , , , , , , , 931130 för det 942100 administrativa 942110 942180 942200 942260 942340 942370 läget
  • 942200, 942260 , , , för den publicerade 942370 942430 942440 portalen

Skapa en resursgrupp för Resource Manager

Steg 1

Logga in på Azure

Connect-AzAccount

Autentisera med dina autentiseringsuppgifter.

Steg 2

Välj önskad prenumeration.

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

Steg 3

Skapa en resursgrupp (hoppa över detta steg om du använder en befintlig resursgrupp).

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

Azure Resource Manager kräver att alla resursgrupper anger en plats. Den här platsen används som standardplats för resurser i resursgruppen. Se till att alla kommandon för att skapa en programgateway använder samma resursgrupp.

Skapa ett virtuellt nätverk och ett undernät för programgatewayen

I följande exempel visas hur du skapar ett virtuellt nätverk med Resource Manager. Det virtuella nätverket i det här exemplet består av separata undernät för Application Gateway och API Management.

Steg 1

Skapa nätverkssäkerhetsgrupper och NSG-regler för Application Gateway och API Management undernät.

$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

Steg 2

Tilldela adressintervallet 10.0.0.0/24 till undernätsvariabeln som ska användas för Application Gateway när du skapar ett virtuellt nätverk.

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

Steg 3

Tilldela adressintervallet 10.0.1.0/24 till undernätsvariabeln som ska användas för API Management när du skapar ett virtuellt nätverk.

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

Steg 4

Skapa ett virtuellt nätverk med namnet appgwvnet i resursgruppen apim-appGw-RG för regionen USA, västra. Använd prefixet 10.0.0.0/16 med undernäten 10.0.0.0/24 och 10.0.1.0/24.

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

Steg 5

Tilldela undernätsvariabler för nästa steg

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

Skapa en API Management i ett virtuellt nätverk som konfigurerats i internt läge

I följande exempel visas hur du skapar en API Management i ett virtuellt nätverk som endast har konfigurerats för intern åtkomst.

Steg 1

Skapa ett API Management virtuellt nätverksobjekt med hjälp av undernätet $apimSubnetData som skapades ovan.

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

Steg 2

Skapa en API Management-tjänst i det virtuella nätverket. I det här exemplet skapas tjänsten på tjänstnivån Utvecklare. Ersätt ett unikt namn för din API Management tjänst.

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

Det kan ta mellan 30 och 40 minuter att skapa och aktivera en API Management på den här nivån. När det föregående kommandot har lyckats kan du gå till DNS-konfiguration som krävs för att få åtkomst till interna virtuella API Management-tjänsten för att bekräfta åtkomsten till den.

Konfigurera anpassade domännamn i API Management

Steg 1

Initiera följande variabler med information om certifikaten med privata nycklar för domänerna och det betrodda rotcertifikatet. I det här exemplet använder vi api.contoso.net portal.contoso.net , och 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

Steg 2

Skapa och ange konfigurationsobjekt för värdnamn för API Management slutpunkter.

$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

Anteckning

Om du vill konfigurera anslutningen till den äldre utvecklarportalen måste du ersätta -HostnameType DeveloperPortal med -HostnameType Portal .

Konfigurera en privat zon för DNS-upplösning i det virtuella nätverket

Steg 1

Skapa en privat DNS-zon och länka det virtuella nätverket.

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

Steg 2

Skapa A-poster för de anpassade domänvärdnamnen och mappa till den privata IP-adressen för API Management tjänsten:

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

Skapa en offentlig IP-adress för frontend-konfigurationen

Skapa en offentlig IP-standardresurs publicIP01 i resursgruppen.

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

En IP-adress tilldelas till programgatewayen när tjänsten startas.

Skapa konfiguration av programgateway

Alla konfigurationsobjekt måste konfigureras innan programgatewayen skapas. Följande steg skapar konfigurationsobjekten som behövs för en programgatewayresurs.

Steg 1

Skapa en IP-konfiguration för programgatewayen med namnet gatewayIP01. När Application Gateway startar hämtar den en IP-adress från det konfigurerade undernätet och dirigerar nätverkstrafik till IP-adresserna i backend-IP-poolen. Tänk på att varje instans använder en IP-adress.

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

Steg 2

Konfigurera klientsidans IP-port för den offentliga IP-slutpunkten. Den här porten är den port som slutanvändarna ansluter till.

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

Steg 3

Konfigurera klientdelens IP med den offentliga IP-slutpunkten.

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

Steg 4

Konfigurera certifikaten för Application Gateway, som används för att dekryptera och omkryptera trafiken som passerar.

Anteckning

Application Gateway har stöd för att definiera anpassade TLS-alternativ, inaktivera vissa TLS-protokollversioner och ange chiffersviter och prioritetsordning. Mer information om konfigurerbara TLS-alternativ finns i TLS-principöversikten.

$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

Steg 5

Skapa HTTP-lyssnare för Application Gateway. Tilldela frontend-IP-konfiguration, port och TLS/SSL-certifikat till dem.

$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

Steg 6

Skapa anpassade avsökningar till den API Management tjänstgatewayens ContosoApi domänslutpunkt. Sökvägen /status-0123456789abcdef är en standardslutpunkt för hälsotillstånd som finns på alla API Management tjänster. Ange api.contoso.net som ett anpassat avsökningsvärdnamn för att skydda det med TLS/SSL-certifikatet.

Anteckning

Värdnamnet är contosoapi.azure-api.net det standardvärdnamn för proxyn som konfigureras när en tjänst contosoapi med namnet skapas i offentliga 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

Steg 7

Upload det betrodda rotcertifikatet som ska konfigureras i HTTP-inställningarna.

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

Steg 8

Konfigurera HTTP-inställningar för Application Gateway, inklusive en tidsgräns för backend-begäranden. Därefter avbryts de. Det här värdet skiljer sig från tidsgränsen för avsökning.

$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

Steg 9

Konfigurera en IP-adresspool för varje API Management slutpunkt med hjälp av dess respektive domännamn.

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

Steg 10

Skapa regler för programgatewayen för att använda grundläggande routning.

$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

Tips

Ändra -RuleType routning och för att begränsa åtkomsten till vissa sidor i utvecklarportalen.

Steg 11

Konfigurera antalet instanser av och storleken på programgatewayen. I det här exemplet använder vi SKU WAF_v2 för ökad säkerhet för API Management resurs.

Vi rekommenderar att du använder minst två instanser (kapacitet) för produktionsarbetsbelastningar. Men du kanske bara vill använda en instans för icke-produktionsscenarier eller för allmänna experiment. Mer information finns i Azure Application Gateway prissättning.

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

Steg 12

Konfigurera WAF till att vara i "skyddsläge".

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

Steg 13

Eftersom TLS 1.0 för närvarande är standard är det en bra idé att ange att programgatewayen ska använda den senaste TLS 1.2-principen.

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

Skapa Application Gateway

Skapa en Application Gateway med alla konfigurationsobjekt från föregående steg.

$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

När distributionen av programgatewayen är klar bekräftar du hälsostatusen för API Management i portalen eller genom att köra följande kommando:

Get-AzApplicationGatewayBackendHealth -Name $appgwName -ResourceGroupName $resGroupName

Kontrollera att hälsostatusen för varje backend-pool är Felfri. Om du behöver felsöka en skadad backendeller en backend med okänd hälsostatus kan du gå till Felsöka problem med hälsotillstånd i Application Gateway .

CNAME-API Management proxyvärdnamn till det offentliga DNS-namnet för Application Gateway resursen

När gatewayen har skapats konfigurerar du frontend för kommunikation. När du använder en offentlig IP-Application Gateway kräver ett dynamiskt tilldelat DNS-namn, vilket kanske inte är lätt att använda.

Använd DNS Application Gateway namnet för att skapa en CNAME-post som pekar API Management gateway-värdnamnet ( i föregående api.contoso.net exempel) till det här DNS-namnet. Om du vill konfigurera CNAME-posten för IP-adress på serversidan hämtar du informationen om Application Gateway och dess associerade IP/DNS-namn med hjälp av PublicIPAddress elementet . Vi rekommenderar inte att du använder A-poster eftersom VIP kan ändras när gatewayen startas om.

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

I testsyfte kan du uppdatera värdfilen på den lokala datorn med poster som mappar Application Gateway:s offentliga IP-adress till var och en av API Management-slutpunktens värdnamn som du har konfigurerat (till exempel api.contoso.net , portal.contoso.net , management.contoso.net ).

Sammanfattning

Azure API Management som konfigurerats i ett virtuellt nätverk tillhandahåller ett enda gatewaygränssnitt för alla konfigurerade API:er, oavsett om de finns lokalt eller i molnet. Integreringen Application Gateway med API Management ger flexibiliteten att selektivt göra vissa API:er tillgängliga på Internet och tillhandahålla en WAF som en frontend för din API Management instans.

Nästa steg