Integración de API Management en una red virtual interna con Application Gateway

Puede configurar el servicio de Azure API Management se en una red virtual en modo interno, para que sea accesible únicamente desde dentro de la red virtual. Azure Application Gateway es una plataforma como servicio (PaaS) que actúa como equilibrador de carga de nivel 7. Actúa como un servicio de proxy inverso y proporciona entre su oferta Azure Web Application Firewall (WAF).

Al combinar API Management aprovisionado en una red virtual interna con el front-end de Application Gateway, puede:

  • Utilizar el mismo recurso de API Management para su uso por los consumidores internos y los consumidores externos.
  • Utilizar un único recurso de API Management y tener definido un subconjunto de API en API Management disponible para los consumidores externos.
  • Proporcionar una solución de llave en mano para activar y desactivar el acceso a API Management desde la red pública de Internet.

Para instrucciones de arquitectura, consulte:

Nota

Este artículo se ha actualizado para usar la SKU Application Gateway WAF_v2.

Disponibilidad

Importante

Esta característica está disponible únicamente en los niveles Premium y Desarrollador de API Management.

Requisitos previos

Nota:

En este artículo se usa el módulo Az de PowerShell, que es el módulo de PowerShell que se recomienda para interactuar con Azure. Para empezar a trabajar con el módulo Az de PowerShell, consulte Instalación de Azure PowerShell. Para más información sobre cómo migrar al módulo Az de PowerShell, consulte Migración de Azure PowerShell de AzureRM a Az.

Para seguir los pasos que se describen en este artículo, debe tener:

Escenario

En este artículo, obtendrá información sobre cómo usar una única instancia de API Management para los consumidores tanto internos como externos y hacer que actúe como un único servidor de front-end para las API locales y en la nube. También comprenderá cómo exponer solo un subconjunto de las API para el consumo externo mediante la funcionalidad de enrutamiento disponible en Application Gateway. En el ejemplo, las API se resaltan en verde.

En el primer ejemplo de la configuración, todas las API se administran únicamente desde dentro de la red virtual. Los consumidores internos pueden acceder a todas las API internas y externas. El tráfico nunca sale a Internet. La conectividad de alto rendimiento se proporciona mediante circuitos Azure ExpressRoute. En el ejemplo, los consumidores internos se resaltan en naranja.

Diagram that shows the URL route.

Pasos necesarios para integrar API Management y Application Gateway

  • Grupo de servidores de back-end: se trata de la dirección IP virtual interna de API Management.
  • Configuración del grupo de servidores back-end: : cada grupo tiene una configuración como el puerto, el protocolo y la afinidad basada en las cookies. Estos valores se aplican a todos los servidores del grupo.
  • Puerto front-end: puerto público que se abre en la puerta de enlace de aplicaciones. El tráfico que llega se redirige a uno de los servidores back-end.
  • Cliente de escucha: tiene un puerto front-end, un protocolo (Http o Https, estos valores distinguen mayúsculas de minúsculas) y el nombre del certificado TLS/SSL (si se configura una descarga de TLS).
  • Regla: la regla enlaza un agente de escucha con un grupo de servidor back-end.
  • Sondeo de estado personalizado: Application Gateway, de forma predeterminada, usa sondeos basados en direcciones IP para determinar cuáles son los servidores de BackendAddressPool que están activos. API Management responde solo a las solicitudes con el encabezado de host correcto, por lo tanto, los sondeos predeterminados no podrán completarse. Debe definir el sondeo de estado personalizado para ayudar a la puerta de enlace de aplicación a determinar que el servicio está activo y debe reenviar las solicitudes.
  • Certificados de dominio personalizados: para acceder a Ia API Management desde Internet, cree registros DNS para asignar los nombres de host a la dirección IP del front-end de la Application Gateway. Esto garantiza que API Management reconoce como válidos el encabezado de nombre de host y el certificado enviados a Application Gateway que se reenvían a API Management. En este ejemplo, usaremos tres certificados. Son para la puerta de enlace de API Management (el back-end), el portal para desarrolladores y el punto de conexión de administración.

Exposición del portal para desarrolladores y el punto de conexión de administración externamente mediante Application Gateway

En este artículo, también se expone el portal para desarrolladores y el punto de conexión de administración a audiencias externas a través de Application Gateway. Se necesitan pasos adicionales para crear un agente de escucha, un sondeo, una configuración y reglas para cada punto de conexión. Todos los detalles se proporcionan en los pasos correspondientes.

Si usa Azure Active Directory o un método de autenticación de terceros, habilite la característica de afinidad de sesión basada en cookies de Application Gateway.

Advertencia

Para evitar que WAF de Application Gateway interrumpa la descarga de las especificaciones de OpenAPI en el portal para desarrolladores, debe deshabilitar la regla de firewall 942200 - "Detects MySQL comment-/space-obfuscated injections and backtick termination".

Las reglas de WAF de Application Gateway, que pueden interrumpir la funcionalidad del portal, incluyen:

  • 920300, 920330, 931130, 942100, 942110, 942180, 942200, 942260, 942340, 942370 para el modo administrativo
  • 942200, 942260, 942370, 942430, 942440 para el portal publicado

Creación de un grupo de recursos para Resource Manager

Creación de un grupo de recursos para Azure Resource Manager:

  1. Inicie sesión en Azure.

    Connect-AzAccount
    
  2. Autentíquese con sus credenciales.

  3. Seleccione la suscripción que quiera.

    $subscriptionId = "00000000-0000-0000-0000-000000000000" # GUID of your Azure subscription
    Get-AzSubscription -Subscriptionid $subscriptionId | Select-AzSubscription
    
  4. Cree un grupo de recursos. Si utiliza un grupo de recursos existente, puede omitir este paso.

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

Resource Manager requiere que todos los grupos de recursos especifiquen una ubicación. Esta se utiliza como predeterminada para los recursos en ese grupo de recursos. Asegúrese de que todos los comandos para crear una puerta de enlace de aplicaciones usan el mismo grupo de recursos.

Creación de una red virtual y una subred para la puerta de enlace de aplicaciones

En el ejemplo siguiente se muestra cómo crear una red virtual con Resource Manager. La red virtual de este ejemplo consta de subredes independientes para Application Gateway y API Management.

  1. Cree grupos de seguridad de red y reglas de NSG para las subredes de Application Gateway y 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
    
  2. Asigne el intervalo de direcciones 10.0.0.0/24 a la variable de subred que se va a usar para Application Gateway al crear la red virtual.

    $appGatewaySubnet = New-AzVirtualNetworkSubnetConfig -Name "appGatewaySubnet" -NetworkSecurityGroup $appGwNsg -AddressPrefix "10.0.0.0/24"
    
  3. Asigne el intervalo de direcciones 10.0.1.0/24 a la variable de subred que se va a usar para API Management al crear la red virtual.

    $apimSubnet = New-AzVirtualNetworkSubnetConfig -Name "apimSubnet" -NetworkSecurityGroup $apimNsg -AddressPrefix "10.0.1.0/24"
    
  4. Cree una red virtual llamada appgwvnet en el grupo de recursos apim-appGw-RG para la región Oeste de EE. UU. Use el prefijo 10.0.0.0/16 con las subredes 10.0.0.0/24 y 10.0.1.0/24.

    $vnet = New-AzVirtualNetwork -Name "appgwvnet" -ResourceGroupName $resGroupName `
      -Location $location -AddressPrefix "10.0.0.0/16" -Subnet $appGatewaySubnet,$apimSubnet
    
  5. Asigne variables de subred para los pasos siguientes.

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

Creación de una instancia de API Management dentro de una red virtual

En el ejemplo siguiente se muestra cómo crear una instancia de API Management en una red virtual configurada únicamente para el acceso interno.

  1. Cree un objeto de red virtual de API Management con la subred $apimSubnetData creada anteriormente.

    $apimVirtualNetwork = New-AzApiManagementVirtualNetwork -SubnetResourceId $apimSubnetData.Id
    
  2. Cree una instancia de API Management dentro de la red virtual. En este ejemplo, se crea el servicio en el nivel de servicio Desarrollador. Sustituya un nombre único por la instancia de API Management.

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

Normalmente, se tarda entre 30 y 40 minutos en crear y activar una instancia de API Management en este nivel. Después de que el comando anterior se ejecute correctamente, consulte Configuración de DNS requerida para acceder al servicio de API Management de red virtual interna para confirmar el acceso.

Configuración de nombres de dominio personalizados en API Management

Para configurar nombres de dominio personalizados en API Management:

  1. Inicialice las variables siguientes con los detalles de los certificados con claves privadas para los dominios y el certificado raíz de confianza. En este ejemplo, usamos api.contoso.net, portal.contoso.net y 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
    
  2. Cree y establezca los objetos de configuración Hostname para los puntos de conexión de 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
    

Nota

Para configurar la conectividad del portal para desarrolladores heredado, debe reemplazar -HostnameType DeveloperPortal por -HostnameType Portal.

Configuración de una zona privada para la resolución DNS en la red virtual

Para configurar una zona DNS privada para la resolución DNS en la red virtual:

  1. Cree una zona DNS privada y vincule la red virtual.

    $myZone = New-AzPrivateDnsZone -Name "contoso.net" -ResourceGroupName $resGroupName 
    $link = New-AzPrivateDnsVirtualNetworkLink -ZoneName contoso.net `
      -ResourceGroupName $resGroupName -Name "mylink" `
      -VirtualNetworkId $vnet.id
    
  2. Cree registros A para los nombres de host de dominio personalizados que se asignan a la dirección IP privada de 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)
    

Creación de una dirección IP pública para la configuración del front-end

Cree un recurso de IP pública estándar publicIP01 en el grupo de recursos.

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

Se asigna una dirección IP a la puerta de enlace de aplicaciones cuando se inicia el servicio.

Creación de una configuración de puerta de enlace de aplicaciones

Se deben haber definido todos los elementos de configuración antes de crear la puerta de enlace de aplicaciones. En los pasos siguientes, se crean los elementos de configuración necesarios para un recurso de Application Gateway.

  1. Cree una configuración de IP de Application Gateway denominada gatewayIP01. Cuando se inicia la Puerta de enlace de aplicaciones, elige una dirección IP de la subred configurada y redirige el tráfico de red a las direcciones IP en el grupo IP de back-end. Tenga en cuenta que cada instancia toma una dirección IP.

    $gipconfig = New-AzApplicationGatewayIPConfiguration -Name "gatewayIP01" -Subnet $appGatewaySubnetData
    
  2. Configure el puerto IP de front-end para el punto de conexión de IP pública. Este puerto es el al que se conectan los usuarios.

    $fp01 = New-AzApplicationGatewayFrontendPort -Name "port01"  -Port 443
    
  3. Configure la dirección IP de front-end con el punto de conexión de IP pública.

    $fipconfig01 = New-AzApplicationGatewayFrontendIPConfig -Name "frontend1" -PublicIPAddress $publicip
    
  4. Configure los certificados SSL para la instancia de Application Gateway. Se usan para descifrar y volver a cifrar el tráfico que pasa a través.

    Nota

    Application Gateway permite definir opciones de TLS personalizadas, deshabilitar determinadas versiones del protocolo TLS y especificar conjuntos de cifrado y el orden de preferencia. Para más información sobre las opciones configurables de TLS, consulte Introducción a la directiva 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
    
  5. Cree los agentes de escucha HTTP para Application Gateway. Asígneles la configuración IP de front-end, el puerto y los certificados TSL/SSL que se usará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. Cree sondeos personalizados para el punto de conexión de dominio de la puerta de enlace ContosoApi de API Management. La ruta de acceso /status-0123456789abcdef es un punto de conexión de mantenimiento predeterminado hospedado en todos los servicios de API Management. Establezca api.contoso.net como un nombre de host de sondeo personalizado para protegerlo con el certificado TLS/SSL.

    Nota

    El nombre de host contosoapi.azure-api.net es el nombre de host de proxy predeterminado configurado cuando se crea un servicio denominado contosoapi en el ámbito público de 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
    
  7. Cargue el certificado raíz de confianza que se va a configurar en la configuración HTTP.

    $trustedRootCert = New-AzApplicationGatewayTrustedRootCertificate -Name "whitelistcert1" -CertificateFile $trustedRootCertCerPath
    
  8. Establezca la configuración de back-end HTTP para Application Gateway, incluido un límite de tiempo de espera para las solicitudes de back-end, después del cual se cancelarán. Este valor es distinto del tiempo de espera del sondeo.

    $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. Configure un grupo de direcciones IP de back-end para cada punto de conexión de API Management, con su nombre de dominio respectivo.

    $apimGatewayBackendPool = New-AzApplicationGatewayBackendAddressPool -Name "gatewaybackend" `
      -BackendFqdns $gatewayHostname
    $apimPortalBackendPool = New-AzApplicationGatewayBackendAddressPool -Name "portalbackend" `
      -BackendFqdns $portalHostname
    $apimManagementBackendPool = New-AzApplicationGatewayBackendAddressPool -Name "managementbackend" `
      -BackendFqdns $managementHostname
    
  10. Cree reglas para Application Gateway para usar el enrutamiento básico.

    $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
    

    Sugerencia

    Cambie -RuleType y el enrutamiento para restringir el acceso a determinadas páginas del portal para desarrolladores.

  11. Configuración del número de instancias y el tamaño de la puerta de enlace de aplicaciones En este ejemplo, usamos SKU WAF_v2 para aumentar la seguridad del recurso de API Management.

    Se recomienda usar un mínimo de dos instancias (capacidad) para las cargas de trabajo de producción. Es posible que quiera usar solo una instancia para escenarios que no sean de producción o para la experimentación general. Para obtener más información, consulte Precios de Azure Application Gateway.

    $sku = New-AzApplicationGatewaySku -Name "WAF_v2" -Tier "WAF_v2" -Capacity 2
    
  12. Configuración de WAFS para que esté en modo "Prevención".

    $config = New-AzApplicationGatewayWebApplicationFirewallConfiguration -Enabled $true -FirewallMode "Prevention"
    
  13. Dado que TLS 1.0 actualmente es el valor predeterminado, establezca la puerta de enlace de aplicaciones para que use una de las directivas de TLS 1.2 más reciente.

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

Creación de una puerta de enlace de aplicaciones

Para crear un recurso de Application Gateway:

  1. Cree una instancia de Application Gateway con todos los objetos de configuración de los pasos anteriores.

    $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
    
  2. Una vez completada la implementación de Application Gateway, confirme el estado de mantenimiento de los back-end de API Management en el portal o ejecute el siguiente comando:

    Get-AzApplicationGatewayBackendHealth -Name $appgwName -ResourceGroupName $resGroupName
    

Asegúrese de que el estado de mantenimiento de cada grupo de back-end es Correcto. Si necesita solucionar problemas de un back-end incorrecto o un back-end con un estado de mantenimiento desconocido, consulte Solución de problemas de mantenimiento de back-end en Application Gateway.

Creación de registros DNS para acceder a API Management puntos de conexión desde Internet

Una vez creada la puerta de enlace, configure la comunicación para API Management desde Internet. Cree registros A de DNS que asignen cada uno de los nombres de host de punto de conexión de API Management que configuró para la dirección IP pública estática de la puerta de enlace de aplicaciones. En este artículo, los nombres de host de ejemplo son api.contoso.net, portal.contoso.net y management.contoso.net.

Para realizar pruebas, puede actualizar el archivo de hosts en su máquina local con entradas que asignen la dirección IP pública de la puerta de enlace de la aplicación a los nombres de host del punto de conexión de API Management.

Resumen

API Management configurado en una red virtual proporciona una interfaz de puerta de enlace única para todas las API configuradas, independientemente de si están hospedadas de forma local o en la nube. La integración de Application Gateway con API Management proporciona la flexibilidad necesaria para permitir de forma selectiva que determinadas API sean accesibles en Internet. La integración también proporciona una WAF como front-end para la instancia de API Management.

Pasos siguientes