Compartir vía


Hybrid Connections de Azure App Service

Conexiones híbridas es tanto un servicio de Azure como una característica de Azure App Service. Como servicio, tiene usos y funcionalidades más allá de las que se usan en App Service. Para más información sobre Conexiones híbridas y su uso fuera de App Service, consulte Protocolo de Conexiones híbridas de Azure Relay.

En App Service, las Conexiones híbridas se pueden usar para acceder a recursos de aplicaciones en cualquier red que pueda realizar llamadas salientes a Azure a través del puerto 443. Conexiones híbridas proporciona acceso desde la aplicación a un punto de conexión TCP. No habilita una nueva forma de acceder a la aplicación. Dado que se utiliza en App Service, cada conexión híbrida se correlaciona con una combinación única de host y puerto TCP.

Esta característica permite que las aplicaciones accedan a los recursos de cualquier sistema operativo, siempre que sea un punto de conexión TCP. La característica de conexiones híbridas no sabe ni le importa lo que es el protocolo de aplicación ni a qué se accede. Simplemente ofrece acceso a la red.

Funcionamiento

Conexiones híbridas requiere que se implemente un agente de retransmisión donde pueda llegar tanto al punto de conexión deseado como a Azure. El agente de retransmisión, el Administrador de conexiones híbridas (HCM), llama a Azure Relay a través del puerto 443. Desde el sitio de la aplicación web, la infraestructura de App Service también se conecta a Azure Relay en nombre de la aplicación. Mediante las conexiones unidas, la aplicación puede acceder al punto de conexión deseado. La conexión usa TLS 1.2 para la seguridad y las claves de firma de acceso compartido (SAS) para la autenticación y la autorización.

Diagrama del flujo de alto nivel de conexión híbrida.

Cuando la aplicación realiza una solicitud DNS que coincide con un punto de conexión de conexión híbrida configurado, el tráfico TCP saliente se redirige a través de la conexión híbrida.

Nota:

Este hecho significa que debe intentar usar siempre un nombre DNS para la conexión híbrida. Cierto software cliente no lleva a cabo una búsqueda de DNS si el punto de conexión utiliza una dirección IP.

Beneficios de usar las conexiones híbridas de App Service

Hay muchas ventajas para la funcionalidad Conexiones híbridas, entre las que se incluyen:

  • Las aplicaciones pueden acceder de forma segura a los servicios y sistemas locales.
  • La característica no requiere ningún punto de conexión al que se pueda acceder a través de Internet.
  • Se configura de forma rápida y sencilla. No se requieren puertas de enlace.
  • Cada conexión híbrida coincide con una combinación única de host:puerto, lo que resulta útil para la seguridad.
  • Normalmente no requiere vulnerabilidades de firewall, porque todas las conexiones salen a través de puertos web estándar.
  • Dado que la característica es de nivel de red, es independiente del idioma que usa la aplicación y la tecnología que usa el punto de conexión.
  • Se puede utilizar para proporcionar acceso en varias redes desde una única aplicación.
  • Se admite en disponibilidad general para aplicaciones de Windows y aplicaciones de Linux. Las conexiones híbridas no se admiten para contenedores personalizados de Windows.

Cosas que no se pueden hacer con conexiones híbridas

Entre las cosas que no se pueden hacer con conexiones híbridas se incluyen las siguientes:

  • Montaje de una unidad.
  • Uso de UDP.
  • Acceso a servicios basados en TCP que usen puertos dinámicos, como el modo pasivo FTP o el modo pasivo extendido.
  • Compatibilidad con LDAP, porque puede requerir UDP.
  • Compatibilidad con Active Directory, porque un trabajo de App Service no se puede unir a un dominio.

Incorporación y creación de Conexiones híbridas en la aplicación

Para crear una conexión híbrida:

  1. En Azure Portal, seleccione la aplicación. Seleccione Configuración>Redes.

  2. Junto a Conexiones híbridas, seleccione el vínculo No configurado. Aquí se pueden ver las conexiones híbridas que están configuradas para su aplicación.

    Captura de pantalla de la lista conexión híbrida donde puede agregar y administrar conexiones.

  3. Para agregar una conexión híbrida nueva, seleccione Agregar conexión híbrida. Verá una lista de las conexiones híbridas que ya haya creado. Para agregar una o varias de ellas en la aplicación, seleccione las que desee y, luego, seleccione Agregar conexión híbrida seleccionada.

    Captura de pantalla de la página Conexión híbrida, donde puede agregar una conexión.

Si quiere crear una conexión híbrida, seleccione Crear conexión híbrida nueva. Especifica los valores siguientes:

  • Nombre de la conexión híbrida.
  • El nombre de host del punto de conexión.
  • El puerto del punto de conexión.
  • El espacio de nombres de Service Bus que desea usar.

Captura de pantalla del cuadro de diálogo Crear nueva conexión híbrida.

Cada conexión híbrida está asociada a un espacio de nombres de Service Bus. Cada espacio de nombres de Service Bus está en una región de Azure. Para evitar la latencia de red inducida, use un espacio de nombres de Service Bus en la misma región que la aplicación.

Si desea quitar una conexión híbrida de una aplicación, haga clic con el botón derecho en ella y seleccione Desconectar.

Cuando se agrega una conexión híbrida a la aplicación, puede seleccionarla para ver su información detallada.

Captura de pantalla de los detalles de las conexiones híbridas.

Creación de una conexión híbrida en el portal de Azure Relay

Además de la experiencia del portal dentro de la aplicación, puede crear conexiones híbridas en el portal de Azure Relay. Para que App Service use una conexión híbrida, debe:

  • Requerir autorización del cliente.
  • Tener un elemento de metadatos y un punto de conexión con nombre que contenga una combinación host:port como valor.

Conexiones híbridas y planes de App Service

Las conexiones híbridas de App Service solo están disponibles en las SKU de precios de nivel Básico, Estándar, Premium y Aislado. Las conexiones híbridas no están disponibles para las aplicaciones de funciones en los planes de consumo. No hay límites asociados al plan de precios.

Plan de precios Número de conexiones híbridas que se pueden usar en el plan
Básico 5 por plan
Estándar 25 por plan
Premium (v1-v3) 220 por aplicación
Aislado (v1-v2) 220 por aplicación

La interfaz de usuario del plan de App Service muestra cuántas conexiones híbridas se usan y qué aplicaciones las usan.

Captura de pantalla de las propiedades del plan de App Service.

Para ver los detalles, seleccione la conexión híbrida. Puede consultar toda la información que vio en la vista de la aplicación. También puede ver cuántas otras aplicaciones en el mismo plan usan esa conexión híbrida.

Hay un límite en el número de puntos de conexión de conexiones híbridas que se pueden usar en un plan de App Service. Cada conexión híbrida usada se puede usar en cualquier número de aplicaciones de ese plan. Por ejemplo, una conexión híbrida única que se usa en cinco aplicaciones distintas en un plan de App Service cuenta como una conexión híbrida.

Precios

Además de haber un requisito de SKU del plan de App Service, hay un costo adicional por el uso de conexiones híbridas. Hay un cargo por cada agente de escucha que usa una conexión híbrida. El agente de escucha es el Administrador de conexiones híbridas. Si tiene cinco conexiones híbridas compatibles con dos Administradores de conexiones híbridas, esto sería un total de 10 agentes de escucha. Para más información, consulte Precios de Service Bus.

Hybrid Connection Manager

La característica Conexiones híbridas requiere un agente de retransmisión en la red que hospeda el punto de conexión de la conexión híbrida. Dicho agente de retransmisión se denomina Hybrid Connection Manager (HCM). Para descargar HCM:

  1. En Azure Portal, seleccione la aplicación. Seleccione Configuración>Redes.
  2. Junto a Conexiones híbridas, seleccione el vínculo para abrir la página conexiones híbridas.
  3. Seleccione Descargar administrador de conexiones.

Esta herramienta se ejecuta en Windows Server 2012 y versiones posteriores. El Administrador de conexiones híbridas se ejecuta como un servicio y se conecta para la salida a Azure Relay en el puerto 443.

Después de instalar HCM, puede ejecutar HybridConnectionManagerUi.exe para usar la interfaz de usuario de la herramienta. Este archivo se encuentra en el directorio de instalación del Administrador de conexiones híbridas. En Windows 10, también puede simplemente buscar la interfaz de usuario del Administrador de conexiones híbridas en el cuadro de búsqueda.

Captura de pantalla de Administrador de conexiones híbridas.

Cuando inicia la interfaz de usuario de HCM, lo primero que se ve es una tabla donde se muestran todas las conexiones híbridas configuradas con esta instancia de HCM. Si desea hacer algún cambio, primero debe autenticarse con Azure.

Para agregar una o varias conexiones híbridas a HCM:

  1. Inicie la interfaz de usuario de HCM.

  2. Seleccione Add a new Hybrid Connection (Agregar conexión híbrida).

    Captura de pantalla de configuración de conexiones híbridas nuevas.

  3. Inicie sesión con su cuenta de Azure para obtener las conexiones híbridas disponibles con sus suscripciones. HCM no sigue usando su cuenta de Azure más allá de este paso.

  4. Elija una suscripción.

  5. Seleccione las conexiones híbridas que desea que retransmita el HCM.

    Captura de pantalla de las conexiones en el Administrador de conexiones híbridas.

  6. Seleccione Guardar.

Ahora puede ver las conexiones híbridas que agregó. También puede seleccionar la conexión híbrida configurada para ver detalles.

Captura de pantalla de los detalles de la conexión híbrida.

Para que HCM admita las conexiones híbridas con las que se ha configurado, necesita:

  • Acceso de TCP a Azure a través del puerto 443.
  • Acceso de TCP al punto de conexión de la conexión híbrida.
  • La capacidad de realizar búsquedas de DNS en el host del punto de conexión y el espacio de nombres de Service Bus. Es decir, el nombre de host de la conexión de Azure Relay debe resolverse desde la máquina que hospeda el HCM.

Nota:

Azure Relay depende de Web Sockets para la conectividad. Esta funcionalidad solo está disponible en Windows Server 2012 o versiones posteriores. Debido a este hecho, HCM no se admite en sistemas anteriores a Windows Server 2012.

Redundancia

Cada HCM puede admitir varias conexiones híbridas. Varios HCM pueden admitir cualquier conexión híbrida. El comportamiento predeterminado es enrutar el tráfico a través de los HCM configurados en cualquier punto de conexión dado. Si desea alta disponibilidad en las conexiones híbridas de la red, ejecute varias instancias de HCM en máquinas independientes. El algoritmo de distribución de carga usado por el servicio Relay para distribuir el tráfico a los Administradores de conexiones híbridas es de asignación aleatoria.

Incorporación manual de una conexión híbrida

Para permitir que alguien de fuera de su suscripción hospede una instancia de HCM para una conexión híbrida determinada, comparta con dicho usuario la cadena de conexión de puerta de enlace de la conexión híbrida. Puede ver la cadena de conexión de la puerta de enlace en las propiedades de la conexión híbrida en Azure Portal. Para usar dicha cadena, seleccione Enter Manually (Especificar manualmente) en el HCM y pegue la cadena de conexión de puerta de enlace.

Captura de pantalla del cuadro de diálogo donde se agrega manualmente una conexión híbrida.

Actualizar

El Administrador de conexiones híbridas se actualiza periódicamente para solucionar problemas o proporcionar mejoras. Cuando se liberan las actualizaciones, aparece un cuadro de diálogo en la interfaz de usuario de HCM. La aplicación de la actualización aplica los cambios y reinicia el HCM.

Incorporación de una conexión híbrida a su aplicación mediante programación

La CLI de Azure es compatible con las conexiones híbridas. Los comandos proporcionados funcionan tanto a nivel de aplicación como del plan de App Service. Los comandos a nivel de aplicación son:

az webapp hybrid-connection

Group
    az webapp hybrid-connection : Methods that list, add and remove hybrid-connections from webapps.
        This command group is in preview. It may be changed/removed in a future release.
Commands:
    add    : Add a hybrid-connection to a webapp.
    list   : List the hybrid-connections on a webapp.
    remove : Remove a hybrid-connection from a webapp.

Los comandos del plan de App Service permiten establecer qué clave usa una conexión híbrida determinada. Hay dos claves establecidas en cada conexión híbrida, una principal y una secundaria. Puede optar por usar la clave principal o secundaria con los siguientes comandos. Esta opción le permite cambiar las claves para cuando quiera regenerar periódicamente las claves.

az appservice hybrid-connection --help

Group
    az appservice hybrid-connection : A method that sets the key a hybrid-connection uses.
        This command group is in preview. It may be changed/removed in a future release.
Commands:
    set-key : Set the key that all apps in an appservice plan use to connect to the hybrid-
                connections in that appservice plan.

Proteja su Conexiones híbridas

Cualquier usuario que tenga permisos suficientes en una instancia de Azure Service Bus Relay puede agregar una conexión híbrida existente para esa retransmisión a otras aplicaciones web de App Service. Para evitar que otros usuarios reutilicen esa misma conexión híbrida, bloquee el acceso a Azure Service Bus Relay. Esta situación puede ocurrir cuando el recurso de destino es un servicio que no tiene ninguna otra medida de seguridad para evitar el acceso no autorizado.

Cualquier persona con acceso Reader a Relay puede ver la conexión híbrida si intentan agregarla a su aplicación web en Azure Portal. No pueden agregar porque carecen de los permisos para recuperar la cadena de conexión que se usa para establecer la conexión de retransmisión. Para agregar la conexión híbrida, deben tener el permiso listKeys (Microsoft.Relay/namespaces/hybridConnections/authorizationRules/listKeys/action). El rol de Contributor o cualquier otro rol que incluya este permiso en Relay permite a los usuarios usar la conexión híbrida y agregarlo a sus propias aplicaciones web.

Administración de las conexiones híbridas

Si necesita cambiar el host de punto de conexión o el puerto de una conexión híbrida, siga estos pasos:

  1. En el Administrador de conexiones híbridas, seleccione la conexión para ver su ventana de detalles. A continuación, seleccione Quitar.
  2. En Azure Portal, seleccione la aplicación. Seleccione Configuración>Redes.
  3. Junto a Conexiones híbridas, seleccione el vínculo Configurado.
  4. En Conexiones híbridas, haga clic con el botón derecho en la conexión y seleccione Desconectar.
  5. Vaya a Relay para el punto de conexión que necesita actualizar. En el menú de navegación, en Entidades, seleccione Conexiones híbridas en Entidades.
  6. Seleccione la conexión híbrida. En su menú de navegación, en Configuración, seleccione Propiedades.
  7. Realice los cambios y seleccione Guardar cambios.
  8. Vuelva a la configuración de Conexiones híbridas de App Service y agregue la conexión híbrida de nuevo. Asegúrese de que el punto de conexión se actualiza según lo previsto. Si no ve la conexión híbrida en la lista, actualice transcurridos entre cinco y diez minutos.
  9. Vuelva al Administrador de conexiones híbridas en el equipo local y agregue la conexión de nuevo.

Solución de problemas

El estado Conectado significa que hay al menos una instancia de HCM configurada con esa conexión híbrida y es capaz de conectarse a Azure. Si el estado de la conexión híbrida no indica Conectado, esta no está configurada en ningún HCM con acceso a Azure. Cuando el HCM muestra No conectado, hay algunas cosas que deben comprobarse:

  • ¿Tiene el host acceso de salida a Azure en el puerto 443? Puede probar desde el host de HCM mediante el comando de PowerShell Test-NetConnection Destination -P Port.

  • ¿Es posible que su HCM esté en mal estado? Pruebe a reiniciar el servicio local Servicio de Administrador de conexiones híbridas de Azure.

  • ¿Tiene instalado software en conflicto? El Administrador de conexiones híbridas no puede coexistir con el Administrador de conexiones híbridas de Biztalk o Service Bus para Windows Server. Al instalar el HCM, debe quitar primero las versiones de estos paquetes.

  • ¿Tiene un firewall entre el host de HCM y Azure? Si es así, debe permitir el acceso saliente tanto a la dirección URL del punto de conexión de Service Bus AND a las puertas de enlace de Service Bus que dan servicio a la conexión híbrida.

    • Puede encontrar la dirección URL del punto de conexión de Service Bus en la interfaz de usuario de Administrador de conexiones híbridas.

      Captura de pantalla del punto de conexión híbrida de Service Bus.

    • Las puertas de enlace de Service Bus son los recursos que aceptan la solicitud en la conexión híbrida y la pasan a través de Azure Relay. Debe incluir en la lista de permitidos las 128 puertas de enlace. Las puertas de enlace tienen el formato G#-prod-[stamp]-sb.servicebus.windows.net. El signo de número, #, es un número comprendido entre 0 y 127 y stamp es el nombre de la instancia dentro del centro de datos de Azure donde existe el punto de conexión de Service Bus.

    • Si puede usar un carácter comodín, puede incluir en la lista de permitidos *.servicebus.windows.net.

    • Si no puede usar un carácter comodín, debe incluir en la lista de permitidos todas las 128 puertas de enlace.

      Puede averiguar la marca mediante nslookup en la dirección URL del punto de conexión de Service Bus.

      Captura de pantalla del terminal en la que se muestra dónde encontrar el nombre de la marca de Service Bus.

      En este ejemplo, la marca es sn3-010. Para permitir la lista de puertas de enlace de Service Bus, necesita las siguientes entradas:

      G0-prod-sn3-010-sb.servicebus.windows.net
      G1-prod-sn3-010-sb.servicebus.windows.net
      G2-prod-sn3-010-sb.servicebus.windows.net
      G3-prod-sn3-010-sb.servicebus.windows.net
      … G126-prod-sn3-010-sb.servicebus.windows.net
      G127-prod-sn3-010-sb.servicebus.windows.net

Si el estado indica Conectado, pero la aplicación no puede comunicarse con su punto de conexión, entonces:

  • Asegúrese de estar usando un nombre DNS en la conexión híbrida. Si usa una dirección IP, es posible que no se produzca la búsqueda de DNS de cliente necesaria. Si el cliente que se ejecuta en la aplicación web no realiza una búsqueda de DNS, la conexión híbrida no funciona.
  • Compruebe que el nombre DNS que se usa en la conexión híbrida pueda resolverse desde el host de HCM. Compruebe la resolución mediante nslookup EndpointDNSname, donde EndpointDNSname es una coincidencia exacta con lo que se usa en la definición de la conexión híbrida.
  • Pruebe el acceso desde el host de HCM al punto de conexión mediante el comando de PowerShell Test-NetConnection EndpointDNSname -P Port. Si no puede acceder al punto de conexión desde el host de HCM, compruebe los firewalls entre los dos hosts, incluidos los firewalls basados en host en el host de destino.
  • Si usa App Service en Linux, asegúrese de que no usa localhost como host de punto de conexión. En su lugar, use el nombre de la máquina si está intentando crear una conexión con un recurso en el equipo local.

En App Service, es posible invocar la herramienta de la línea de comandos tcpping desde la consola de herramientas avanzadas (Kudu). Esta herramienta puede indicarle si tiene acceso a un punto de conexión TCP, pero no si tiene acceso a un punto de conexión híbrida. Cuando usa la herramienta de la consola en un punto de conexión híbrida, simplemente confirma que usa una combinación de host:puerto.

Si tiene un cliente de línea de comandos para el punto de conexión, puede probar la conectividad desde la consola de la aplicación. Por ejemplo, puede probar el acceso a los puntos de conexión de servidor web mediante cURL.