Hybrid Connections de Azure App ServiceAzure App Service Hybrid Connections

Conexiones híbridas es tanto un servicio de Azure como una característica de Azure App Service.Hybrid Connections is both a service in Azure and a feature in Azure App Service. Como servicio tiene un uso y unas funcionalidades que van más allá de aquellas que se usan en App Service.As a service, it has uses and capabilities beyond those that are used in 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.To learn more about Hybrid Connections and their usage outside App Service, see Azure Relay Hybrid Connections.

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.Within App Service, Hybrid Connections can be used to access application resources in any network that can make outbound calls to Azure over port 443. Las Conexiones híbridas proporcionan acceso desde la aplicación a un punto de conexión TCP y no habilitan una nueva forma de acceder a la aplicación.Hybrid Connections provides access from your app to a TCP endpoint and does not enable a new way to access your app. Dado que se utiliza en App Service, cada conexión híbrida se correlaciona con una combinación única de host y puerto TCP.As used in App Service, each Hybrid Connection correlates to a single TCP host and port combination. Esto permite a las aplicaciones acceder a los recursos de cualquier sistema operativo, siempre que se trate de un punto de conexión TCP.This enables your apps to access resources on any OS, provided it is a TCP endpoint. La característica Conexiones híbridas no sabe lo que es el protocolo de aplicaciones ni sabe a qué se accede.The Hybrid Connections feature does not know or care what the application protocol is, or what you are accessing. Simplemente ofrece acceso a la red.It simply provides network access.

FuncionamientoHow it works

Las Conexiones híbridas requieren la implementación de un agente de retransmisión desde donde se pueda acceder al punto de conexión deseado y a Azure.Hybrid Connections requires a relay agent to be deployed where it can reach both the desired endpoint as well as to Azure. El agente de retransmisión, el Administrador de conexiones híbridas (HCM), llama a Azure Relay a través del puerto 443.The relay agent, Hybrid Connection Manager (HCM), calls out to Azure Relay over port 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.From the web app site, the App Service infrastructure also connects to Azure Relay on your application's behalf. Mediante las conexiones unidas, la aplicación puede acceder al punto de conexión deseado.Through the joined connections, your app is able to access the desired endpoint. 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.The connection uses TLS 1.2 for security and shared access signature (SAS) keys for authentication and authorization.

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 híbrida configurado, el tráfico TCP saliente se redirige por la conexión híbrida,When your app makes a DNS request that matches a configured Hybrid Connection endpoint, the outbound TCP traffic will be redirected through the Hybrid Connection.

Nota

lo que significa que debe intentar usar siempre un nombre DNS para la conexión híbrida.This means that you should try to always use a DNS name for your Hybrid Connection. Cierto software cliente no lleva a cabo una búsqueda de DNS si el punto de conexión utiliza una dirección IP.Some client software does not do a DNS lookup if the endpoint uses an IP address instead.

Beneficios de usar las conexiones híbridas de App ServiceApp Service Hybrid Connection benefits

El uso de la funcionalidad de conexiones híbridas reporta varios beneficios, entre los que se cuentan los siguientes:There are a number of benefits to the Hybrid Connections capability, including:

  • Las aplicaciones pueden acceder de forma segura a los servicios y sistemas locales.Apps can access on-premises systems and services securely.
  • La característica no requiere ningún punto de conexión al que se pueda acceder a través de Internet.The feature does not require an internet-accessible endpoint.
  • Se configura de forma rápida y sencilla.It is quick and easy to set up. No se requieren puertas de enlace.No gateways required
  • Cada conexión híbrida coincide con una combinación única de host:puerto, lo que resulta útil para la seguridad.Each Hybrid Connection matches to a single host:port combination, helpful for security.
  • Normalmente no requiere vulnerabilidades de seguridad en el firewall,It normally does not require firewall holes. porque todas las conexiones salen a través de puertos web estándar.The connections are all outbound over standard web ports.
  • Dado que la característica está en el nivel de la red, da igual el lenguaje que use la aplicación y la tecnología que emplee el punto de conexión.Because the feature is network level, it is agnostic to the language used by your app and the technology used by the endpoint.
  • Se puede utilizar para proporcionar acceso en varias redes desde una única aplicación.It can be used to provide access in multiple networks from a single app.
  • Se admite en GA para las aplicaciones de Windows y se encuentra en versión preliminar para las aplicaciones de Linux.It is supported in GA for Windows apps and is in preview for Linux apps.

Cosas que no se pueden hacer con las conexiones híbridasThings you cannot do with Hybrid Connections

Las cosas que no se pueden hacer con las conexiones híbridas incluyen:Things you cannot do with Hybrid Connections include:

  • Montaje de una unidad.Mount a drive.
  • Uso de UDP.Use UDP.
  • Acceso a servicios basados en TCP que usen puertos dinámicos, como el modo pasivo FTP o el modo pasivo extendido.Access TCP-based services that use dynamic ports, such as FTP Passive Mode or Extended Passive Mode.
  • Compatibilidad con LDAP, porque puede requerir UDP.Support LDAP, because it can require UDP.
  • Compatibilidad con Active Directory, porque un trabajo de App Service no se puede unir a un dominio.Support Active Directory, because you cannot domain join an App Service worker.

Incorporación y creación de Conexiones híbridas en la aplicaciónAdd and Create Hybrid Connections in your app

Para crear una conexión híbrida, vaya a Azure Portal y seleccione su aplicación.To create a Hybrid Connection, go to the Azure portal and select your app. Seleccione Redes > Configure los puntos de conexión de la conexión híbrida.Select Networking > Configure your Hybrid Connection endpoints. Aquí se pueden ver las conexiones híbridas que están configuradas para su aplicación.Here you can see the Hybrid Connections that are configured for your app.

Captura de pantalla de la lista de conexiones híbridas

Para agregar una conexión híbrida nueva, seleccione [+] Agregar conexión híbrida.To add a new Hybrid Connection, select [+] Add hybrid connection. Verá una lista de las conexiones híbridas que ya haya creado.You'll see a list of the Hybrid Connections that you already created. Para agregar una o varias de ellas en la aplicación, seleccione las que desee y, luego, seleccione Agregar conexión híbrida seleccionada.To add one or more of them to your app, select the ones you want, and then select Add selected Hybrid Connection.

Captura de pantalla del portal de conexiones híbridas

Si quiere crear una conexión híbrida, seleccione Crear conexión híbrida nueva.If you want to create a new Hybrid Connection, select Create new hybrid connection. Especifique:Specify the:

  • Nombre de la conexión híbrida.Hybrid Connection name.
  • El nombre de host del punto de conexión.Endpoint hostname.
  • El puerto del punto de conexión.Endpoint port.
  • El espacio de nombres de Service Bus que desea usar.Service Bus namespace you want to use.

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

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.Every Hybrid Connection is tied to a Service Bus namespace, and each Service Bus namespace is in an Azure region. 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.It's important to try to use a Service Bus namespace in the same region as your app, to avoid network induced latency.

Si desea quitar una conexión híbrida de una aplicación, haga clic con el botón derecho en ella y seleccione Desconectar.If you want to remove your Hybrid Connection from your app, right-click it and select Disconnect.

Cuando se agrega una conexión híbrida a la aplicación, puede seleccionarla para ver su información detallada.When a Hybrid Connection is added to your app, you can see details on it simply by selecting it.

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

Creación de una conexión híbrida en el portal de Azure RelayCreate a Hybrid Connection in the Azure Relay portal

Además de la experiencia del portal dentro de la aplicación, puede crear conexiones híbridas en el portal de Azure Relay.In addition to the portal experience from within your app, you can create Hybrid Connections from within the Azure Relay portal. Para que App Service use una conexión híbrida, debe:For a Hybrid Connection to be used by App Service, it must:

  • Requerir autorización del cliente.Require client authorization.
  • Tener un elemento de metadatos llamado punto de conexión que contenga una combinación de host:puerto como valor.Have a metadata item, named endpoint, that contains a host:port combination as the value.

Conexiones híbridas y planes de App ServiceHybrid Connections and App Service plans

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.App Service Hybrid Connections are only available in Basic, Standard, Premium, and Isolated pricing SKUs. No hay límites asociados al plan de precios.There are limits tied to the pricing plan.

Plan de preciosPricing plan Número de conexiones híbridas que se pueden usar en el planNumber of Hybrid Connections usable in the plan
BásicoBasic 5 por plan5 per plan
EstándarStandard 25 por plan25 per plan
PremiumV2PremiumV2 200 por aplicación200 per app
AisladoIsolated 200 por aplicación200 per app

La interfaz de usuario del plan de App Service muestra cuántas conexiones híbridas se usan y qué aplicaciones las usan.The App Service plan UI shows you how many Hybrid Connections are being used and by what apps.

Captura de pantalla de las propiedades del plan de App Service

Seleccione la conexión híbrida para ver detalles.Select the Hybrid Connection to see details. Puede consultar toda la información que vio en la vista de la aplicación.You can see all the information that you saw at the app view. También puede ver cuántas otras aplicaciones en el mismo plan usan esa conexión híbrida.You can also see how many other apps in the same plan are using that Hybrid Connection.

Hay un límite en el número de puntos de conexión de las conexiones híbridas que se pueden usar en un plan de App Service.There is a limit on the number of Hybrid Connection endpoints that can be used in an App Service plan. Sin embargo, cada conexión híbrida se puede usar en cualquier cantidad de aplicaciones de ese plan.Each Hybrid Connection used, however, can be used across any number of apps in that 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.For example, a single Hybrid Connection that is used in five separate apps in an App Service plan counts as one Hybrid Connection.

PreciosPricing

Además de un requisito de SKU del plan de App Service, hay un costo adicional por el uso de las conexiones híbridas.In addition to there being an App Service plan SKU requirement, there is an additional cost to using Hybrid Connections. Hay un cargo por cada agente de escucha que una conexión híbrida utilice.There is a charge for each listener used by a Hybrid Connection. El agente de escucha es el Administrador de conexiones híbridas.The listener is the Hybrid Connection Manager. Si tiene cinco conexiones híbridas compatibles con dos Administradores de conexiones híbridas, esto sería un total de 10 agentes de escucha.If you had five Hybrid Connections supported by two Hybrid Connection Managers, that would be 10 listeners. Para más información, consulte Precios de Service Bus.For more information, see Service Bus pricing.

Hybrid Connection ManagerHybrid 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.The Hybrid Connections feature requires a relay agent in the network that hosts your Hybrid Connection endpoint. Dicho agente de retransmisión se denomina Hybrid Connection Manager (HCM).That relay agent is called the 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.To download HCM, from your app in the Azure portal, select Networking > Configure your Hybrid Connection endpoints.

Esta herramienta se ejecuta en Windows Server 2012 y versiones posteriores.This tool runs on Windows Server 2012 and later. El Administrador de conexiones híbridas se ejecuta como un servicio y se conecta para la salida a Azure Relay en el puerto 443.The HCM runs as a service and connects outbound to Azure Relay on port 443.

Después de instalar HCM, puede ejecutar HybridConnectionManagerUi.exe para usar la interfaz de usuario de la herramienta.After installing HCM, you can run HybridConnectionManagerUi.exe to use the UI for the tool. Este archivo se encuentra en el directorio de instalación del Administrador de conexiones híbridas.This file is in the Hybrid Connection Manager installation directory. En Windows 10, también puede simplemente buscar la interfaz de usuario del Administrador de conexiones híbridas en el cuadro de búsqueda.In Windows 10, you can also just search for Hybrid Connection Manager UI in your search box.

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.When you start the HCM UI, the first thing you see is a table that lists all the Hybrid Connections that are configured with this instance of the HCM. Si desea hacer algún cambio, primero debe autenticarse con Azure.If you want to make any changes, first authenticate with Azure.

Para agregar una o varias conexiones híbridas a HCM:To add one or more Hybrid Connections to your HCM:

  1. Inicie la interfaz de usuario de HCM.Start the HCM UI.

  2. Seleccione Configure another Hybrid Connection (Configurar otra conexión híbrida).Select Configure another Hybrid Connection. Captura de pantalla de configuración de conexiones híbridas nuevasScreenshot of Configure New Hybrid Connections

  3. Inicie sesión con su cuenta de Azure para obtener las conexiones híbridas disponibles con sus suscripciones.Sign in with your Azure account to get your Hybrid Connections available with your subscriptions. El HCM no usará su cuenta de Azure aparte de para esto.The HCM does not continue to use your Azure account beyond that.

  4. Elija una suscripción.Choose a subscription.

  5. Seleccione las conexiones híbridas que desea que retransmita el HCM.Select the Hybrid Connections that you want the HCM to relay. Captura de pantalla de las conexiones híbridasScreenshot of Hybrid Connections

  6. Seleccione Guardar.Select Save.

Ahora puede ver las conexiones híbridas que agregó.You can now see the Hybrid Connections you added. También puede seleccionar la conexión híbrida configurada para ver detalles.You can also select the configured Hybrid Connection to see details.

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

Para que HCM pueda admitir las conexiones híbridas con las que se configuró, necesita:To support the Hybrid Connections it is configured with, HCM requires:

  • Acceso de TCP a Azure a través del puerto 443.TCP access to Azure over port 443.
  • Acceso de TCP al punto de conexión de la conexión híbrida.TCP access to the Hybrid Connection endpoint.
  • La capacidad de realizar búsquedas de DNS en el host del punto de conexión y el espacio de nombres de Service Bus.The ability to do DNS look-ups on the endpoint host and the Service Bus namespace.

Nota

Azure Relay depende de Web Sockets para la conectividad.Azure Relay relies on Web Sockets for connectivity. Esta funcionalidad solo está disponible en Windows Server 2012 o versiones posteriores.This capability is only available on Windows Server 2012 or later. Por este motivo, HCM no se admite en versiones anteriores de Windows Server 2012.Because of that, HCM is not supported on anything earlier than Windows Server 2012.

RedundanciaRedundancy

Cada HCM puede admitir varias conexiones híbridas.Each HCM can support multiple Hybrid Connections. Además, varios HCM pueden admitir cualquier conexión híbrida dada.Also, any given Hybrid Connection can be supported by multiple HCMs. El comportamiento predeterminado es enrutar el tráfico a través de los HCM configurados en cualquier punto de conexión dado.The default behavior is to route traffic across the configured HCMs for any given endpoint. Si desea alta disponibilidad en las conexiones híbridas de la red, ejecute varias instancias de HCM en máquinas independientes.If you want high availability on your Hybrid Connections from your network, run multiple HCMs on separate machines. 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.The load distribution algorithm used by the Relay service to distribute traffic to the HCMs is random assignment.

Incorporación manual de una conexión híbridaManually add a Hybrid Connection

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.To enable someone outside your subscription to host an HCM instance for a given Hybrid Connection, share the gateway connection string for the Hybrid Connection with them. Puede ver la cadena de conexión de la puerta de enlace en las propiedades de la conexión híbrida en Azure Portal.You can see the gateway connection string in the Hybrid Connection properties in the 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.To use that string, select Enter Manually in the HCM, and paste in the gateway connection string.

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

ActualizarUpgrade

El Administrador de conexiones híbridas se actualiza periódicamente para solucionar problemas o proporcionar mejoras.There are periodic updates to the Hybrid Connection Manager to fix issues or provide improvements. Cuando se publique una actualización, se mostrará un elemento emergente en la interfaz de usuario del Administrador de conexiones híbridas.When upgrades are released, a popup will show up in the HCM UI. Al aplicar la actualización se aplicarán los cambios y se reiniciará el Administrador de conexiones híbridas.Applying the upgrade will apply the changes and restart the HCM.

Incorporación de una conexión híbrida a su aplicación mediante programaciónAdding a Hybrid Connection to your app programmatically

La CLI de Azure es compatible con las Conexiones híbridas.There is Azure CLI support for Hybrid Connections. Los comandos proporcionados funcionan tanto a nivel de aplicación como del plan de App Service.The commands provided operate at both the app and the App Service plan level. Los comandos a nivel de aplicación son:The app level commands are:

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 usará una conexión híbrida determinada.The App Service plan commands enable you to set which key a given hybrid-connection will use. Hay dos claves establecidas en cada conexión híbrida, una principal y una secundaria.There are two keys set on each Hybrid Connection, a primary and a secondary. Puede optar por usar la clave principal o secundaria con los siguientes comandos.You can choose to use the primary or secondary key with the below commands. Esto le permite cambiar las claves para cuando desee regenerarlas periódicamente.This enables you to switch keys for when you want to periodically regenerate your keys.

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íbridasSecure your Hybrid Connections

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.An existing Hybrid Connection can be added to other App Service Web Apps by any user who has sufficient permissions on the underlying Azure Service Bus Relay. Esto significa que, si debe evitar que otros usuarios puedan reutilizar la misma conexión híbrida (por ejemplo, cuando el recurso de destino es un servicio que no tiene ninguna medida de seguridad adicional para evitar el acceso no autorizado), debe bloquear el acceso a Azure Service Bus Relay.This means that if you must prevent others from reusing that same Hybrid Connection (for example when the target resource is a service that does not have any additional security measures in place to prevent unauthorized access), you must lock down access to the Azure Service Bus Relay.

Cualquier persona con Reader acceso a la retransmisión podrá ver la conexión híbrida al intentar agregarla a su aplicación web en Azure Portal, pero no podrá agregarla ya que carece de los permisos para recuperar la cadena de conexión que se usa para establecer la conexión de retransmisión.Anyone with Reader access to the Relay will be able to see the Hybrid Connection when attempting to add it to their Web App in the Azure portal, but they will not be able to add it as they lack the permissions to retrieve the connection string which is used to establish the relay connection. Para agregar correctamente la conexión híbrida, deben tener el permiso listKeys (Microsoft.Relay/namespaces/hybridConnections/authorizationRules/listKeys/action).In order to successfully add the Hybrid Connection, they must have the listKeys permission (Microsoft.Relay/namespaces/hybridConnections/authorizationRules/listKeys/action). El rol Contributor o cualquier otro rol que incluya este permiso en la Retransmisión permitirá a los usuarios usar la conexión híbrida y agregarla a su propia Web Apps.The Contributor role or any other role which includes this permission on the Relay will allow users to use the Hybrid Connection and add it to their own Web Apps.

Solución de problemasTroubleshooting

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.The status of "Connected" means that at least one HCM is configured with that Hybrid Connection, and is able to reach Azure. Si en el estado de la conexión híbrida no indica Conectado, la conexión híbrida no está configurada en ningún HCM que tenga acceso a Azure.If the status for your Hybrid Connection does not say Connected, your Hybrid Connection is not configured on any HCM that has access to Azure.

La razón principal por la que los clientes no se pueden conectar a su punto de conexión es porque este se especificó mediante una dirección IP en lugar de un nombre DNS.The primary reason that clients cannot connect to their endpoint is because the endpoint was specified by using an IP address instead of a DNS name. Si la aplicación no puede acceder al punto de conexión deseado y ha usado una dirección IP, utilice un nombre DNS que sea válido en el host en el que se ejecuta HCM.If your app cannot reach the desired endpoint and you used an IP address, switch to using a DNS name that is valid on the host where the HCM is running. Compruebe también que el nombre DNS se resuelve adecuadamente en el host donde se ejecuta el HCM.Also check that the DNS name resolves properly on the host where the HCM is running. Confirme que existe conectividad desde el host donde se ejecuta el HCM al punto de conexión de la conexión híbrida.Confirm that there is connectivity from the host where the HCM is running to the Hybrid Connection endpoint.

En App Service, es posible invocar la herramienta de la línea de comandos tcpping desde la consola de herramientas avanzadas (Kudu).In App Service, the tcpping command line tool can be invoked from the Advanced Tools (Kudu) console. Esta herramienta puede indicarle si tienen acceso a un punto de conexión TCP, pero no indica si tiene acceso a un punto de conexión híbrida.This tool can tell you if you have access to a TCP endpoint, but it does not tell you if you have access to a Hybrid Connection endpoint. Cuando usa la herramienta de la consola en un punto de conexión de la conexión híbrida, simplemente confirma que usa una combinación de host:puerto.When you use the tool in the console against a Hybrid Connection endpoint, you are only confirming that it uses a host:port combination.

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.If you have a command line client for your endpoint, you can test connectivity from the app console. Por ejemplo, puede probar el acceso a los puntos de conexión de servidor web mediante cURL.For example, you can test access to web server endpoints by using curl.