Integración de ILB App Service Environment con Azure Application Gateway
App Service Environment es una implementación de Azure App Service en la subred de una red virtual de Azure de cliente. Se puede implementar con un punto de conexión externo o interno para el acceso a la aplicación. La implementación del entorno de App Service con un punto de conexión privado se denomina App Service Environment (ASE) de equilibrador de carga interno (ILB).
Los firewalls de aplicaciones web ayudan a proteger las aplicaciones web, ya que inspeccionan el tráfico web entrante y bloquean las inyecciones de código SQL, un posible ataque de scripts de sitios, cargas de malware y DDoS de aplicaciones, y otros ataques. Puede obtener un dispositivo WAF en Azure Marketplace o puede usar Azure Application Gateway.
Azure Application Gateway es una aplicación virtual que ofrece un equilibrio de carga de nivel 7, descarga de TLS/SSL y protección mediante firewall de aplicaciones web (WAF). Puede escuchar en una dirección IP pública y enrutar el tráfico hacia el punto de conexión de la aplicación. En la información siguiente se describe cómo integrar una puerta de enlace de aplicación configurada con firewall de aplicaciones web con una aplicación en un entorno de App Service con ILB.
La integración de la puerta de enlace de aplicación con el entorno de App Service con ILB se produce en el nivel de la aplicación. Al configurar la puerta de enlace de aplicación con el entorno de App Service con ILB, lo hace para aplicaciones específicas de este último. Esta técnica permite hospedar aplicaciones para varios inquilinos seguras en un único entorno de App Service con ILB.
En este tutorial realizará lo siguiente:
- Crear una instancia de Azure Application Gateway.
- Configurar la puerta de enlace de aplicación para que apunte a una aplicación en el entorno de App Service con ILB.
- Editar el nombre de host público del DNS que apunta a la puerta de enlace de aplicaciones.
Prerrequisitos
Para integrar la puerta de enlace de aplicación con el entorno de App Service con ILB necesita lo siguiente:
- Un entorno de App Service con ILB.
- Una zona DNS privada para el entorno de App Service con ILB.
- Una aplicación que se ejecute en el entorno de App Service con ILB.
- Un nombre DNS público que se utilizará posteriormente para que apunte a la puerta de enlace de aplicación.
- Si tiene que usar el cifrado TLS/SSL en la puerta de enlace de aplicación, se necesita un certificado público válido que se use para enlazar a la puerta de enlace de aplicación.
Entorno de App Service con ILB
Para obtener detalles sobre cómo crear un entorno de App Service con ILB, consulte Crear un ASE en Azure Portal y Crear un ASE con la plantilla de ARM.
Después de crear el ASE con ILB, el dominio predeterminado es
<YourAseName>.appserviceenvironment.net
.Se aprovisiona un equilibrador de carga interno para el acceso entrante. Puede comprobar la dirección de entrada en las direcciones IP de la configuración de ASE. Más adelante puede crear una zona DNS privada asignada a esta dirección IP.
Zona DNS privada
Necesita una zona DNS privada para la resolución de nombres interna. Puede crearla con el nombre de ASE mediante los conjuntos de registros que se muestran en la tabla siguiente (para obtener instrucciones, vea Inicio rápido: Creación de una zona DNS privada de Azure mediante Azure Portal).
Nombre | Tipo | Value |
---|---|---|
* | A | Dirección de entrada de ASE |
@ | A | Dirección de entrada de ASE |
@ | SOA | Nombre DNS de ASE |
*.scm | A | Dirección de entrada de ASE |
App Service en ASE con ILB
Debe crear un plan de App Service y una aplicación en el ASE con ILB. Al crear la aplicación en el portal, seleccione el ASE con ILB como Región.
Un nombre DNS público para la puerta de enlace de aplicación
Para conectarse a la puerta de enlace de aplicación desde Internet, necesita un nombre de dominio enrutable. En este caso, se ha usado un nombre de dominio enrutable asabuludemo.com
y el objetivo es la conexión a una instancia de App Service con este nombre de dominio app.asabuludemo.com
. La dirección IP asignada a este nombre de dominio de aplicación debe establecerse en la dirección IP pública de Application Gateway después de crear la puerta de enlace de aplicación.
Con un dominio público asignado a la puerta de enlace de aplicación, no es necesario configurar un dominio personalizado en App Service. Puede comprar un nombre de dominio personalizado a la aplicación con los dominios de App Service.
Un certificado público válido
Para mejorar la seguridad, se recomienda enlazar el certificado TLS/SSL para el cifrado de sesión. Para enlazar el certificado TLS/SSL a la puerta de enlace de aplicación, se necesita un certificado público válido con la siguiente información. Con los certificados de App Service, puede comprar un certificado TLS/SSL y exportarlo en formato .pfx.
Nombre | valor | Descripción |
---|---|---|
Nombre común | <yourappname>.<yourdomainname> , por ejemplo, app.asabuludemo.com O bien *.<yourdomainname> , por ejemplo: *.asabuludemo.com |
Un certificado estándar o un certificado comodín para la puerta de enlace de aplicación |
Nombre alternativo del firmante | <yourappname>.scm.<yourdomainname> , por ejemplo, app.scm.asabuludemo.com O bien *.scm.<yourdomainname> , por ejemplo: *.scm.asabuludemo.com |
La SAN que permite conectarse al servicio kudu de App Service. Es un valor opcional, si no quiere publicar el servicio kudu de App Service en Internet. |
El archivo de certificado debe tener una clave privada y guardarse en formato .pfx; se importará a la puerta de enlace de aplicación más adelante.
Creación de una puerta de enlace de aplicaciones
Para la creación básica de la puerta de enlace de aplicación, consulte Tutorial: Creación de una puerta de enlace de aplicación con una firewall de aplicaciones web mediante Azure Portal.
En este tutorial, se usará Azure Portal para crear una puerta de enlace de aplicación con el entorno de App Service con ILB.
En Azure Portal, seleccione Nuevo>Redes>Application Gateway para crear una puerta de enlace de aplicación.
Valor Datos básicos
En la lista desplegable Nivel, puede seleccionar V2 estándar o WAF V2 para habilitar la característica WAF en la puerta de enlace de aplicación.
Valor Front-end
Establezca Tipo de dirección IP de front-end en Público, Privado o Ambos. Si lo establece en Privado o Ambos, tendrá que asignar una dirección IP estática en el intervalo de subredes de la puerta de enlace de aplicación. En este caso, se establece en Dirección IP pública solo para el punto de conexión público.
Dirección IP pública: debe asociar una dirección IP pública para el acceso público de la puerta de enlace de aplicación. Guarde esta dirección IP; más adelante tendrá que agregar un registro en el servicio DNS.
Valor Back-ends
Escriba un nombre de grupo de back-end y seleccione App Services o Dirección IP o FQDN en Tipo de destino. En este caso, se establece en App Services y se selecciona Nombre del Servicio de aplicaciones en la lista desplegable de destino.
Opción de configuración
En el valor de Configuración, debe agregar una regla de enrutamiento seleccionando el icono Agregar una regla de enrutamiento.
En una regla de enrutamiento debe configurar un Cliente de escucha y Destinos de back-end. Puede agregar un cliente de escucha HTTP para la implementación de prueba de concepto, o bien un cliente de escucha HTTPS para mejorar la seguridad.
Para conectarse a la puerta de enlace de aplicación con el protocolo HTTP, puede crear un cliente de escucha con la siguiente configuración,
Parámetro valor Descripción Nombre de la regla Por ejemplo: http-routingrule
Nombre de enrutamiento Nombre del cliente de escucha Por ejemplo: http-listener
Nombre del cliente de escucha Dirección IP de front-end Público Para el acceso a Internet, establezca en Público Protocolo HTTP No use el cifrado TLS/SSL Port 80 Puerto HTTP predeterminado Tipo de cliente de escucha Multisitio Permitir escuchar varios sitios en la puerta de enlace de aplicación Tipo de host Múltiple/Comodín Establézcalo en el nombre de sitio web múltiple o con caracteres comodín si el tipo de cliente de escucha está establecido en varios sitios. Nombre de host Por ejemplo: app.asabuludemo.com
Establézcalo en un nombre de dominio enrutable para App Service Para conectarse a la puerta de enlace de aplicación con cifrado TLS/SSL, puede crear un cliente de escucha con la configuración siguiente,
Parámetro valor Descripción Nombre de la regla Por ejemplo: https-routingrule
Nombre de enrutamiento Nombre del cliente de escucha Por ejemplo: https-listener
Nombre del cliente de escucha Dirección IP de front-end Público Para el acceso a Internet, establezca en Público Protocolo HTTPS Usar cifrado TLS/SSL Port 443 Puerto HTTPS predeterminado Configuración HTTPS Carga de un certificado Carga de un certificado que contiene el CN y la clave privada en formato .pfx. Tipo de cliente de escucha Multisitio Permitir escuchar varios sitios en la puerta de enlace de aplicación Tipo de host Múltiple/Comodín Establézcalo en el nombre de sitio web múltiple o con caracteres comodín si el tipo de cliente de escucha está establecido en varios sitios. Nombre de host Por ejemplo: app.asabuludemo.com
Establézcalo en un nombre de dominio enrutable para App Service Debe configurar un Grupo de back-end y una Configuración de HTTP en Destinos de back-end. El grupo de back-end se ha configurado en pasos anteriores. Seleccione Agregar nuevo enlace para agregar una configuración HTTP.
Los valores de HTTP se muestran a continuación:
Parámetro valor Descripción Nombre de la configuración de HTTP Por ejemplo: https-setting
Nombre de la configuración de HTTP Protocolo de back-end HTTPS Usar cifrado TLS/SSL Puerto back-end 443 Puerto HTTPS predeterminado Usar certificado de entidad de certificación reconocida Yes El nombre de dominio predeterminado de ASE con ILB es .appserviceenvironment.net
, el certificado de este dominio lo emite una entidad raíz de confianza pública. Puede establecer la configuración de certificado raíz de confianza para usar el certificado raíz de confianza de la entidad de certificación conocida.Reemplazar por un nuevo nombre de host Sí El encabezado de nombre de host se sobrescribirá al conectarse a la aplicación en ASE con ILB Sustitución del nombre de host Seleccionar el nombre de host del destino de back-end Al establecer el grupo de back-end en App Service, puede elegir el host del destino de back-end Crear sondeos personalizados No Usar sondeo de estado predeterminado
Configuración de la integración de una puerta de enlace de aplicación con ASE con ILB
Para acceder a ASE con ILB desde la puerta de enlace de aplicación, debe comprobar si hay un vínculo de red virtual a la zona DNS privada. Si no hay una red virtual vinculada a la red virtual de la puerta de enlace de aplicaciones, agregue un vínculo de red virtual con los siguientes pasos.
Configuración de vínculos de red virtual con una zona DNS privada
- Para configurar el vínculo de red virtual con la zona DNS privada, vaya al plano de configuración de la zona DNS privada. Seleccione Vínculos de red virtual>Agregar.
- Escriba el nombre del vínculo y seleccione la suscripción y la red virtual correspondientes en las que reside la puerta de enlace de aplicación.
- Puede confirmar el estado de mantenimiento del back-end desde Estado del back-end en el plano de la puerta de enlace de aplicación.
Adición de un registro DNS público
Debe configurar una asignación de DNS adecuada al acceder a la puerta de enlace de aplicación desde Internet.
- La dirección IP pública de la puerta de enlace de aplicación se puede encontrar en Configuraciones de IP de front-end en el plano de la puerta de enlace de aplicación.
- Con el servicio Azure DNS como ejemplo, puede agregar un conjunto de registros para asignar el nombre de dominio de la aplicación a la dirección IP pública de la puerta de enlace de aplicación.
Validación de la conexión
- En una máquina con acceso desde Internet, puede comprobar la resolución de nombres del nombre de dominio de la aplicación en la dirección IP pública de la puerta de enlace de aplicación.
- En una máquina con acceso desde Internet, pruebe el acceso web desde un explorador.