Compartir a través de


¿Qué es la integración de Azure Application Gateway con Azure App Service?

En este artículo se proporciona información general sobre cómo configurar Azure Application Gateway con Azure App Service mediante puntos de conexión privados para proteger el tráfico. Revise las consideraciones sobre el uso de los puntos de conexión de servicio y la integración con un App Service Environment, ya sea interno o externo. Establezca restricciones de acceso en un sitio del Administrador de control de código fuente (SCM).

Integración con App Service

Puede usar puntos de conexión privados para proteger el tráfico entre Application Gateway y la aplicación de App Service. Debe asegurarse de que Application Gateway puede usar el sistema de nombres de dominio (DNS) para resolver la dirección IP privada de las aplicaciones de App Service. Alternativamente, puede usar la dirección IP privada en el grupo de back-end y anular el nombre de host en la configuración HTTP.

Diagrama del tráfico que fluye a una puerta de enlace de aplicaciones a través de un punto de conexión privado a las aplicaciones de App Service.

Application Gateway almacena en caché los resultados de búsqueda de DNS. Si usa nombres de dominio completos (FQDN) y se basa en la búsqueda DNS para obtener la dirección IP privada, es posible que tenga que reiniciar la puerta de enlace de aplicaciones. Se requiere un reinicio cuando se produce la actualización de DNS o el vínculo a una zona DNS privada Azure después de configurar el grupo de back-end.

Para reiniciar la puerta de enlace de aplicaciones, detenga e iníciela con los siguientes comandos Azure CLI. Reemplace los nombres de sus recursos locales por los <valores de marcador de posición> en los comandos.

az network application-gateway stop --resource-group <your-resource-group> --name <your-application-gateway>
az network application-gateway start --resource-group <your-resource-group> --name <your-application-gateway>

Obtenga más información sobre cómo configurar una aplicación de App Service con un punto de conexión privado.

Consideraciones al usar los puntos de conexión de servicio

Como alternativa al uso de puntos de conexión privados, puede usar puntos de conexión de servicio para proteger el tráfico de Application Gateway. Mediante los puntos de conexión de servicio, puede permitir el tráfico desde solo una subred específica dentro de una red virtual Azure y bloquear todo lo demás. En el escenario siguiente, usará esta funcionalidad para asegurarse de que las aplicaciones de App Service pueden recibir tráfico solo de una puerta de enlace de aplicaciones específica.

Diagrama de Internet que fluye a una puerta de enlace de aplicaciones en una red virtual y, a continuación, a través de un firewall de punto de conexión de servicio a aplicaciones de App Service.

Esta configuración tiene dos partes, además de crear la instancia de aplicación de App Service y la puerta de enlace de aplicaciones.

  • La primera parte habilita los puntos de conexión de servicio en la subred de la red virtual donde se implementa la puerta de enlace de aplicaciones. Los puntos de conexión de servicio garantizan que todo el tráfico de red que sale de la subred hacia App Service se etiqueta con el identificador de subred específico.

  • La segunda parte establece una restricción de acceso en la aplicación web específica para asegurarse de que solo se permite el tráfico etiquetado con este identificador de subred específico. Puede configurar la restricción de acceso utilizando diferentes herramientas, según sus preferencias.

En el portal de Azure, siga cuatro pasos para crear y configurar la integración de App Service y Application Gateway. Si tiene recursos existentes, puede omitir los pasos primero y segundo.

  1. Cree una aplicación de App Service mediante uno de los inicios rápidos de la documentación de App Service. Un ejemplo es el inicio rápido .NET Core.
  2. Cree una puerta de enlace de aplicaciones mediante el inicio rápido del portal, pero omita la sección sobre cómo agregar destinos de back-end.
  3. Configure App Service como backend en Application Gateway, pero omita la sección acerca de restringir el acceso.
  4. Cree la restricción de acceso mediante puntos de conexión de servicio.

Ahora puede acceder a App Service a través de Application Gateway. Si intenta acceder directamente a App Service, espere ver un error HTTP 403 que indica que la aplicación web está bloqueando el acceso.

Consideraciones para un Entorno de Servicio de Aplicaciones interno

Un App Service Environment interno no se expone a Internet. El tráfico entre el entorno y una puerta de enlace de aplicaciones ya está aislado en la red virtual. Puede configurar un entorno interno e integrarlo con una puerta de enlace de aplicaciones mediante el portal de Azure.

Si desea asegurarse de que solo el tráfico de la subred de Application Gateway llegue al App Service Environment, puede configurar un grupo de seguridad de red que afecte a todas las aplicaciones web del entorno. Para el grupo de seguridad de red, puede especificar el intervalo IP de subred y, opcionalmente, los puertos (80/443).

Para aislar el tráfico a una aplicación web individual, debe usar restricciones de acceso basadas en IP, ya que los puntos de conexión de servicio no funcionan con un App Service Environment. La dirección IP debe ser la IP privada de la puerta de enlace de la aplicación.

Consideraciones para un Entorno de Servicio de Aplicaciones externo

Un App Service Environment externo tiene un equilibrador de carga orientado al público, como aplicaciones de App Service multiinquilino. Los puntos de conexión de servicio no funcionan para un entorno de servicio de aplicaciones externo. En un App Service Environment, puede aplicar restricciones de acceso basadas en IP mediante la dirección IP pública de la puerta de enlace de aplicaciones. Para crear un App Service Environment externo en el portal de Azure, puede usar un inicio rápido.

También puede agregar puntos de conexión privados a las aplicaciones hospedadas en un entorno de servicio de aplicaciones externo.

Consideraciones para un sitio de Kudu/SCM

El sitio SCM, también conocido como Kudu, es un sitio de administración que existe para todas las aplicaciones web. No es posible usar el proxy inverso del sitio SCM. Lo más probable es que también quieras bloquearlo en direcciones IP individuales o en una subred específica.

Si desea usar las mismas restricciones de acceso que el sitio principal, puede heredar la configuración con el siguiente comando de Azure CLI:

az webapp config access-restriction set --resource-group <your-resource-group> --name <your-web-app> --use-same-restrictions-for-scm-site

Si desea agregar restricciones de acceso individuales para el sitio de SCM, puede usar la --scm-site marca con el comando :

az webapp config access-restriction add --resource-group <your-resource-group> --name <your-web-app> --scm-site --rule-name KudoAccess --priority 200 --ip-address 208.130.0.0/16

Consideraciones para usar el dominio predeterminado

Puede configurar Application Gateway para invalidar el nombre de host con el dominio predeterminado de App Service (normalmente azurewebsites.net). Este enfoque es la manera más fácil de lograr la integración porque no requiere configurar un dominio y un certificado personalizados en App Service.

El proceso de conservación del nombre de host describe las consideraciones generales para invalidar el nombre de host original. En App Service, tenga en cuenta las siguientes consideraciones sobre la autenticación y la afinidad de sesión.

Autenticación (autenticación sencilla)

Cuando se usa la característica de autenticación en App Service (también denominada Easy Auth), la aplicación normalmente redirige a la página de inicio de sesión. Debido a que App Service no conoce el nombre de host original de la solicitud, la redirección se realiza en el nombre de dominio predeterminado y generalmente genera un error.

Para solucionar el redireccionamiento predeterminado, puede configurar la autenticación para inspeccionar un encabezado reenviado y adaptar el dominio de redireccionamiento al dominio original. Application Gateway usa un encabezado denominado X-Original-Host. Mediante el uso de la configuración basada en archivos para especificar la autenticación, puede configurar App Service para adaptarse al nombre de host original.

Agregue esta configuración al archivo de configuración:

{
    ...
    "httpSettings": {
        "forwardProxy": {
            "convention": "Custom",
            "customHostHeaderName": "X-Original-Host"
        }
    }
    ...
}

Afinidad de sesión

Al especificar la configuración de afinidad de sesión en implementaciones de varias instancias, puede asegurarse de que las solicitudes del cliente se enruten a la misma instancia durante la duración de la sesión. Puede configurar la afinidad de sesión para adaptar el dominio de cookie al encabezado entrante desde el proxy inverso.

Al configurar la configuración delproxy de afinidad de sesión en true, la afinidad de sesión busca el encabezado X-Original-Host o X-Forwarded-Host. Adapta el dominio de cookie al dominio que se encuentra en el encabezado. Como práctica recomendada al habilitar el proxy de afinidad de sesión, configure las restricciones de acceso en el sitio para asegurarse de que el tráfico procede del proxy inverso.

También puede configurar la configuración de clientAffinityProxyEnabled con el siguiente comando Azure CLI:

az resource update --resource-group <your-resource-group> --name <your-web-app> --resource-type "Microsoft.Web/sites" --set properties.clientAffinityProxyEnabled=true