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 un uso y unas funcionalidades que van más allá de aquellas 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. Las conexiones híbridas proporcionan acceso desde la aplicación a un punto de conexión TCP y no habilitan ninguna 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

Las Conectar híbridas requieren 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.

Diagram of Hybrid Connection high-level flow.

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

Nota:

lo que 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 de Conectar ions 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 está en el nivel de red, da igual el lenguaje que use la aplicación y la tecnología que emplee 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. No es compatible con contenedores personalizados de Windows.

Cosas que no se pueden hacer con las Conectar ciones híbridas

Entre las cosas que no se pueden hacer con las Conectar ciones híbridas se incluyen:

  • 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.
  • Admita Active Directory, ya que no se puede unir a un dominio un trabajo de App Service.

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

Para crear una conexión híbrida, vaya a Azure Portal y seleccione su aplicación. Seleccione Redes>Configure los puntos de conexión de la conexión híbrida. Aquí se pueden ver las conexiones híbridas que están configuradas para su aplicación.

Screenshot of Hybrid Connection list.

Para agregar una conexión híbrida nueva, seleccione [+] Agregar conexión híbrida. Verá una lista de las Conectar ciones híbridas que ya ha 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.

Screenshot of Hybrid Connection portal.

Si quiere crear una conexión híbrida, seleccione Crear conexión híbrida nueva. Especifique:

  • 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.

Screenshot of Create new hybrid connection dialog box.

Cada conexión híbrida está asociada a un espacio de nombres de Service Bus y cada uno de estos espacios se encuentra en una región de Azure. Es importante intentar usar un espacio de nombres de Service Bus que se encuentre en la misma región que la aplicación, para evitar una latencia de red excesiva.

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.

Screenshot of Hybrid connections details.

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.

Screenshot of App Service plan properties.

Seleccione la conexión híbrida para ver detalles. 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. Sin embargo, cada conexión híbrida se puede usar en cualquier cantidad 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 para usar las Conectar ciones híbridas. Existe un cargo por cada cliente de escucha que use 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, desde la aplicación en Azure Portal, seleccione Redes>Configure los puntos de conexión de la conexión híbrida.

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.

Screenshot of Hybrid Connection Manager.

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). Screenshot of Configure New Hybrid Connections.

  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. Screenshot of Hybrid Connections.

  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.

Screenshot of Hybrid Connection Details.

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. En otras palabras, el nombre de host de la conexión de retransmisión de Azure debe poder 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. Por este motivo, HCM no se admite en versiones anteriores de Windows Server 2012.

Redundancia

Cada HCM puede admitir varias conexiones híbridas. Además, varios HCM pueden admitir cualquier conexión híbrida dada. 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.

Manually add a Hybrid Connection.

Actualizar

El Administrador de conexiones híbridas se actualiza periódicamente para solucionar problemas o proporcionar mejoras. Cuando se publican actualizaciones, aparece un elemento emergente 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 la retransmisión de Azure Service Bus subyacente puede agregar una conexión híbrida existente a otros App Service Web Apps. Esto significa que si debe impedir que otros usuarios reutilicen esa misma Conectar híbrida (por ejemplo, cuando el recurso de destino es un servicio que no tiene ninguna otra medida de seguridad para evitar el acceso no autorizado), debe bloquear el acceso a Azure Service Bus Relay.

Cualquier persona con Reader acceso a Relay puede ver la Conectar híbrida al intentar agregarla a su aplicación web en Azure Portal, pero no pueden agregarla porque carecen de los permisos para recuperar el cadena de conexión que se usa para establecer la conexión de retransmisión. Para agregar correctamente la conexión híbrida, deben tener el permiso listKeys (Microsoft.Relay/namespaces/hybridConnections/authorizationRules/listKeys/action). El Contributor rol o cualquier otro rol que incluya este permiso en Relay permite a los usuarios usar la Conectar ion 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 Conectar ion híbrida, siga estos pasos:

  1. Quite la conexión híbrida del Administrador de conexiones híbridas en el equipo local; para ello, seleccione la conexión y luego Quitar en la parte superior izquierda de la ventana de detalles de la conexión híbrida.
  2. Desconecte la conexión híbrida de App Service; para ello, vaya a Conexiones híbridas en la página Redes de App Service.
  3. Vaya a la retransmisión del punto de conexión que necesita actualizar y seleccione Conexiones híbridas en Entidades en el menú de navegación izquierdo.
  4. Seleccione la conexión híbrida que quiere actualizar y seleccione Propiedades en Configuración en el menú de navegación izquierdo.
  5. Realice los cambios y presione Guardar cambios en la parte superior.
  6. 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.
  7. 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 Conectar, hay algunas cosas que comprobar:

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

  • ¿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? Administrador de conexiones híbridas no pueden coexistir con Biztalk Administrador de conexiones híbridas ni Service Bus para Windows Server. Al instalar el HCM, las versiones de estos paquetes se deben quitar primero.

  • ¿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 como a las puertas de enlace de Service Bus que a su Conectar ion 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.

    Screenshot of Hybrid Connection Service Bus endpoint.

    • Las puertas de enlace de Service Bus son los recursos que aceptan la solicitud en la Conectar 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 donde "#" 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.

        Screenshot of terminal showing where to find the stamp name for the 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 Conectar pero la aplicación no puede llegar al punto de conexión, haga lo siguiente:

  • Asegúrese de que usa un nombre DNS en la Conectar ion 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 DNS, la Conectar híbrida no funciona.
  • Compruebe que el nombre DNS usado en la Conectar híbrida puede 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 HCM al punto de conexión mediante el comando de PowerShell Test-Net Conectar ion 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.