Connexions hybrides d’Azure App ServiceAzure App Service Hybrid Connections

Les connexions hybrides sont un service dans Azure et une fonctionnalité dans Azure App Service.Hybrid Connections is both a service in Azure and a feature in Azure App Service. En tant que service, il exploite et inclut des fonctionnalités qui vont au-delà de celles utilisées dans App Service.As a service, it has uses and capabilities beyond those that are used in App Service. Pour en savoir plus sur les connexions hybrides et leur utilisation en dehors d’App Service, consultez Connexions hybrides Azure Relay.To learn more about Hybrid Connections and their usage outside App Service, see Azure Relay Hybrid Connections.

Dans App Service, les connexions hybrides peuvent être utilisées pour accéder aux ressources d’application d’autres réseaux.Within App Service, Hybrid Connections can be used to access application resources in other networks. Elles permettent d’accéder depuis votre application à un point de terminaison d’application.It provides access from your app to an application endpoint. Elles n’autorisent pas à une autre fonction d’accéder à votre application.It does not enable an alternate capability to access your application. Utilisée dans App Service, chaque connexion hybride correspond à une combinaison d’hôte et de port TCP unique.As used in App Service, each Hybrid Connection correlates to a single TCP host and port combination. Cela signifie que le point de terminaison de connexion hybride peut se trouver sur un quelconque système d’exploitation et toute application à condition que vous accédiez à un port d’écoute TCP.This means that the Hybrid Connection endpoint can be on any operating system and any application, provided you are accessing a TCP listening port. La fonctionnalité Connexions hybrides ne détectent pas et ne prennent pas en compte le protocole d’application ou les ressources auxquels vous accédez.The Hybrid Connections feature does not know or care what the application protocol is, or what you are accessing. Elles fournissent simplement un accès réseau.It is simply providing network access.

FonctionnementHow it works

La fonctionnalité Connexions hybrides se compose de deux appels sortants vers Azure Service Bus Relay.The Hybrid Connections feature consists of two outbound calls to Azure Service Bus Relay. Il existe une connexion à partir d’une bibliothèque sur l’hôte sur lequel votre application est en cours d’exécution dans App Service.There is a connection from a library on the host where your app is running in App Service. Il existe également une connexion entre Hybrid Connection Manager (HCM) et Service Bus Relay.There is also a connection from the Hybrid Connection Manager (HCM) to Service Bus Relay. Le GCH est un service de relais que vous déployez dans le réseau hébergeant la ressource à laquelle vous tentez d’accéder.The HCM is a relay service that you deploy within the network hosting the resource you are trying to access.

Grâce aux deux connexions liées, votre application inclut un tunnel TCP vers une combinaison hôte:port fixe de l’autre côté du GCH.Through the two joined connections, your app has a TCP tunnel to a fixed host:port combination on the other side of the HCM. La connexion utilise TLS 1.2 pour la sécurité et des clés de signature d’accès partagé (SAP) pour l’authentification et l’autorisation.The connection uses TLS 1.2 for security and shared access signature (SAS) keys for authentication and authorization.

Diagramme du flux de haut niveau de la connexion hybride

Lorsque votre application effectue une requête DNS qui correspond à un point de terminaison de connexion hybride configuré, le trafic TCP sortant est redirigé via la connexion hybride.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.

Notes

Cela signifie que vous devez toujours utiliser un nom DNS pour votre connexion hybride.This means that you should try to always use a DNS name for your Hybrid Connection. Certains logiciels clients n’effectuent une recherche DNS que si le point de terminaison utilise une adresse IP à la place.Some client software does not do a DNS lookup if the endpoint uses an IP address instead.

Avantages d’une connexion hybride App ServiceApp Service Hybrid Connection benefits

La fonctionnalité de connexions hybrides offre un certain nombre d’avantages, notamment :There are a number of benefits to the Hybrid Connections capability, including:

  • Les applications peuvent accéder en toute sécurité aux systèmes et services locaux.Apps can access on-premises systems and services securely.
  • La fonctionnalité ne nécessite pas un point de terminaison accessible par Internet.The feature does not require an internet-accessible endpoint.
  • sa configuration est simple et rapide ;It is quick and easy to set up.
  • Chaque connexion hybride correspond à une combinaison hôte:port unique, gage de sécurité.Each Hybrid Connection matches to a single host:port combination, helpful for security.
  • Normalement, elle ne nécessite pas de trous de pare-feu.It normally does not require firewall holes. Les connexions sont toutes sortantes via des ports web standard.The connections are all outbound over standard web ports.
  • la fonctionnalité se situant au niveau du réseau, elle n’est pas spécifique au langage utilisé par votre application et à la technologie utilisée par le point de terminaison ;Because the feature is network level, it is agnostic to the language used by your app and the technology used by the endpoint.
  • elle peut être utilisée pour fournir un accès à plusieurs réseaux à partir d’une même application.It can be used to provide access in multiple networks from a single app.

Ce que vous ne pouvez pas faire avec les connexions hybridesThings you cannot do with Hybrid Connections

Ce que vous ne pouvez pas faire avec les connexions hybrides, notamment :Things you cannot do with Hybrid Connections include:

  • Monter un lecteur.Mount a drive.
  • Utiliser UDP.Use UDP.
  • Accéder à des services TCP qui utilisent des ports dynamiques tels que le mode FTP passif ou le mode passif étendu.Access TCP-based services that use dynamic ports, such as FTP Passive Mode or Extended Passive Mode.
  • Prendre en charge LDAP, car cela peut utiliser UDP.Support LDAP, because it can require UDP.
  • Prendre en charge Active Directory, car vous ne pouvez pas effectuer la jonction de domaine avec un rôle de travail App Service.Support Active Directory, because you cannot domain join an App Service worker.

Ajouter et créer des connexions hybrides dans votre applicationAdd and Create Hybrid Connections in your app

Pour créer une connexion hybride, accédez au portail Azure et sélectionnez votre application.To create a Hybrid Connection, go to the Azure portal and select your app. Sélectionnez Mise en réseau > Configurer vos points de terminaison de connexion hybride.Select Networking > Configure your Hybrid Connection endpoints. Vous pouvez alors voir les connexions hybrides configurées pour votre application.Here you can see the Hybrid Connections that are configured for your app.

Capture d’écran de la liste des connexions hybrides

Pour ajouter une nouvelle connexion hybride, sélectionnez [+] Ajouter une connexion hybride.To add a new Hybrid Connection, select [+] Add hybrid connection. La liste des connexions hybrides que vous avez déjà créées apparaît.You'll see a list of the Hybrid Connections that you already created. Pour en ajouter une ou plusieurs à votre application, sélectionnez celles de votre choix, puis Ajouter la connexion hybride sélectionnée.To add one or more of them to your app, select the ones you want, and then select Add selected Hybrid Connection.

Capture d’écran du portail des connexions hybrides

Si vous souhaitez créer une nouvelle connexion hybride, sélectionnez Créer une connexion hybride.If you want to create a new Hybrid Connection, select Create new hybrid connection. Spécifiez les éléments suivants :Specify the:

  • Nom de la connexion hybride.Hybrid Connection name.
  • Nom d’hôte du point de terminaison.Endpoint hostname.
  • Port du point de terminaison.Endpoint port.
  • Espace de noms Service Bus que vous voulez utiliser.Service Bus namespace you want to use.

Capture d’écran de la boîte de dialogue de création d’une connexion hybride

Chaque connexion hybride est liée à un espace de noms Service Bus et chaque espace de noms Service Bus se trouve dans une région Azure.Every Hybrid Connection is tied to a Service Bus namespace, and each Service Bus namespace is in an Azure region. Il est important d’essayer d’utiliser un espace de noms Service Bus dans la même région que votre application pour éviter une latence du réseau.It's important to try to use a Service Bus namespace in the same region as your app, to avoid network induced latency.

Si vous souhaitez supprimer votre connexion hybride de votre application, cliquez avec le bouton droit dessus et sélectionnez Déconnecter.If you want to remove your Hybrid Connection from your app, right-click it and select Disconnect.

Lorsqu’une connexion hybride est ajoutée à votre application, vous pouvez afficher ses détails simplement en la sélectionnant.When a Hybrid Connection is added to your app, you can see details on it simply by selecting it.

Capture d’écran des détails des connexions hybrides

Créer une connexion hybride dans le portail Azure RelayCreate a Hybrid Connection in the Azure Relay portal

En plus d’utiliser le portail à partir de votre application, vous pouvez créer des connexions hybrides depuis le portail Azure Relay.In addition to the portal experience from within your app, you can create Hybrid Connections from within the Azure Relay portal. Pour qu’App Service utilise une connexion hybride, celle-ci doit :For a Hybrid Connection to be used by App Service, it must:

  • Exiger une autorisation du client.Require client authorization.
  • Comporter un élément de métadonnées, un point de terminaison nommé contenant une combinaison hôte:port comme valeur.Have a metadata item, named endpoint, that contains a host:port combination as the value.

Connexions hybrides et plans App ServiceHybrid Connections and App Service plans

Les connexions hybrides App Service sont uniquement disponibles dans les références SKU de tarification De base, Standard, Premium et Isolé.App Service Hybrid Connections are only available in Basic, Standard, Premium, and Isolated pricing SKUs. Des limites sont liées au plan de tarification.There are limits tied to the pricing plan.

Plan tarifairePricing plan Nombre de connexions hybrides utilisables dans le planNumber of Hybrid Connections usable in the plan
De baseBasic 5.5
standardStandard 2525
PremiumPremium 200200
IsoléIsolated 200200

L’IU du plan App Service vous indique combien de connexions hybrides sont utilisées et par quelles applications.The App Service plan UI shows you how many Hybrid Connections are being used and by what apps.

Capture d’écran des propriétés du plan App Service

Sélectionnez la connexion hybride pour voir les détails.Select the Hybrid Connection to see details. Vous pouvez voir toutes les informations que vous avez vues dans la vue de l’application.You can see all the information that you saw at the app view. Vous pouvez également voir combien d’autres applications utilisent cette connexion hybride dans le même plan.You can also see how many other apps in the same plan are using that Hybrid Connection.

Le nombre de points de terminaison de connexion hybride utilisables dans un plan App Service est limité.There is a limit on the number of Hybrid Connection endpoints that can be used in an App Service plan. Chaque connexion hybride utilisée peut, toutefois, être utilisée sur autant d’applications que souhaité dans ce plan.Each Hybrid Connection used, however, can be used across any number of apps in that plan. Par exemple, une même connexion hybride utilisée dans cinq applications distinctes dans un plan App Service compte comme une seule connexion hybride.For example, a single Hybrid Connection that is used in five separate apps in an App Service plan counts as one Hybrid Connection.

TarifsPricing

En plus des exigences de référence SKU de plan App Service, il existe un coût supplémentaire lors de l’utilisation de connexions hybrides.In addition to there being an App Service plan SKU requirement, there is an additional cost to using Hybrid Connections. Il existe des frais chaque écouteur utilisé par une connexion hybride.There is a charge for each listener used by a Hybrid Connection. L’écouteur est l’Hybrid Connection Manager.The listener is the Hybrid Connection Manager. Si vous aviez cinq connexions hybrides prises en charge par deux Hybrid Connection Manager, vous disposeriez de 10 écouteurs.If you had five Hybrid Connections supported by two Hybrid Connection Managers, that would be 10 listeners. Pour plus d’informations, consultez Tarification Service Bus.For more information, see Service Bus pricing.

Gestionnaire de connexion hybrideHybrid Connection Manager

La fonctionnalité Connexions hybrides exige un agent de relais dans le réseau qui héberge votre point de terminaison de connexion hybride.The Hybrid Connections feature requires a relay agent in the network that hosts your Hybrid Connection endpoint. Cet agent de relais est appelé le Gestionnaire de connexion hybride (GCH).That relay agent is called the Hybrid Connection Manager (HCM). Pour télécharger HCM, à partir de votre application dans le portail Azure, sélectionnez Mise en réseau > Configurer vos points de terminaison de connexion hybride.To download HCM, from your app in the Azure portal, select Networking > Configure your Hybrid Connection endpoints.

Cet outil s’exécute sur Windows Server 2012 et version ultérieure.This tool runs on Windows Server 2012 and later. Le HCM s’exécute en tant que service et connecte le trafic sortant à Azure Relay sur le port 443.The HCM runs as a service and connects outbound to Azure Relay on port 443.

Après avoir installé HCM, vous pouvez exécuter HybridConnectionManagerUi.exe pour utiliser l’interface utilisateur de l’outil.After installing HCM, you can run HybridConnectionManagerUi.exe to use the UI for the tool. Ce fichier se trouve dans le répertoire d’installation de Hybrid Connection Manager.This file is in the Hybrid Connection Manager installation directory. Dans Windows 10, vous pouvez aussi simplement rechercher Hybrid Connection Manager UI dans votre zone de recherche.In Windows 10, you can also just search for Hybrid Connection Manager UI in your search box.

Capture d’écran de Hybrid Connection Manager

Quand vous démarrez l’interface utilisateur HCM, vous voyez tout d’abord un tableau qui répertorie toutes les connexions hybrides configurées avec cette instance 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. Pour apporter des modifications, commencez par vous authentifier auprès d’Azure.If you want to make any changes, first authenticate with Azure.

Pour ajouter une ou plusieurs connexions hybrides à votre GCH :To add one or more Hybrid Connections to your HCM:

  1. Démarrez l’interface utilisateur de HCM.Start the HCM UI.

  2. Sélectionnez Configurer une autre connexion hybride.Select Configure another Hybrid Connection. Capture d’écran de la configuration de nouvelles connexions hybridesScreenshot of Configure New Hybrid Connections

  3. Connectez-vous à votre compte Azure.Sign in with your Azure account.

  4. Choisissez un abonnement.Choose a subscription.

  5. Sélectionnez les connexions hybrides à faire relayer par HCM.Select the Hybrid Connections that you want the HCM to relay. Capture d’écran des connexions hybridesScreenshot of Hybrid Connections

  6. Sélectionnez Enregistrer.Select Save.

Vous pouvez maintenant voir les connexions hybrides que vous avez ajoutées.You can now see the Hybrid Connections you added. Vous pouvez également sélectionner la connexion hybride configurée pour en afficher les détails.You can also select the configured Hybrid Connection to see details.

Capture d’écran des détails de la connexion hybride

Pour prendre en charge les connexions hybrides avec lesquelles il est configuré, HCM exige les éléments suivants :To support the Hybrid Connections it is configured with, HCM requires:

  • Accès TCP à Azure sur le port 443.TCP access to Azure over port 443.
  • Accès TCP au point de terminaison de connexion hybride.TCP access to the Hybrid Connection endpoint.
  • Possibilité de recherches DNS sur l’hôte du point de terminaison et l’espace de noms Service Bus.The ability to do DNS look-ups on the endpoint host and the Service Bus namespace.

Notes

Azure Relay s’appuie sur les sockets web pour assurer la connectivité.Azure Relay relies on Web Sockets for connectivity. Cette fonctionnalité est uniquement disponible sur Windows Server 2012 ou version ultérieure.This capability is only available on Windows Server 2012 or later. C’est pourquoi HCM n’est pas pris en charge sur les systèmes antérieurs à Windows Server 2012.Because of that, HCM is not supported on anything earlier than Windows Server 2012.

RedondanceRedundancy

Chaque GCH peut prendre en charge plusieurs connexions hybrides.Each HCM can support multiple Hybrid Connections. De plus, toute connexion hybride peut être prise en charge par plusieurs GCH.Also, any given Hybrid Connection can be supported by multiple HCMs. Le comportement par défaut consiste à acheminer le trafic entre les HCM configurés pour n’importe quel point de terminaison donné.The default behavior is to route traffic across the configured HCMs for any given endpoint. Si vous souhaitez une haute disponibilité sur vos connexions hybrides à partir de votre réseau, exécutez plusieurs HCM sur des ordinateurs distincts.If you want high availability on your Hybrid Connections from your network, run multiple HCMs on separate machines. L’algorithme de répartition de charge utilisé par le service Relay pour répartir le trafic vers les HCM est une affectation aléatoire.The load distribution algorithm used by the Relay service to distribute traffic to the HCMs is random assignment.

Ajouter manuellement une connexion hybrideManually add a Hybrid Connection

Pour permettre à une personne extérieure à votre abonnement d’héberger une instance HCM pour une connexion hybride donnée, communiquez-lui la chaîne de connexion de passerelle de la connexion hybride.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. Vous pouvez voir la chaîne de connexion de passerelle dans les propriétés de la connexion hybride dans le portail Azure.You can see the gateway connection string in the Hybrid Connection properties in the Azure portal. Pour utiliser cette chaîne, sélectionnez Saisir manuellement dans HCM et collez la chaîne de connexion de passerelle.To use that string, select Enter Manually in the HCM, and paste in the gateway connection string.

Ajouter manuellement une connexion hybride

Mise à niveauUpgrade

Le Hybrid Connection Manager est mis à jour périodiquement pour corriger des problèmes ou fournir des améliorations.There are periodic updates to the Hybrid Connection Manager to fix issues or provide improvements. Lors de la publication des mises à niveau, une fenêtre contextuelle s’affichera dans l’IU du HCM.When upgrades are released, a popup will show up in the HCM UI. Appliquer la mise à niveau appliquera les modifications et redémarrera le HCM.Applying the upgrade will apply the changes and restart the HCM.

Ajout d’une connexion hybride à votre application par programmationAdding a Hybrid Connection to your app programmatically

Les API indiquées ci-dessous peuvent être utilisées directement pour gérer les connexions hybrides connectées à vos applications.The APIs noted below can be used directly to manage the Hybrid Connections connected to your apps.

/subscriptions/[subscription name]/resourceGroups/[resource group name]/providers/Microsoft.Web/sites/[app name]/hybridConnectionNamespaces/[relay namespace name]/relays/[hybrid connection name]?api-version=2016-08-01

L’objet JSON associé à une connexion hybride ressemble à :The JSON object associated with a Hybrid Connection looks like:

{
  "name": "[hybrid connection name]",
  "type": "Microsoft.Relay/Namespaces/HybridConnections",
  "location": "[location]",
  "properties": {
    "serviceBusNamespace": "[namespace name]",
    "relayName": "[hybrid connection name]",
    "relayArmUri": "/subscriptions/[subscription id]/resourceGroups/[resource group name]/providers/Microsoft.Relay/namespaces/[namespace name]/hybridconnections/[hybrid connection name]",
    "hostName": "[endpoint host name]",
    "port": [port],
    "sendKeyName": "defaultSender",
    "sendKeyValue": "[send key]"
  }
}

On peut utiliser ces informations avec l’armclient, que vous pouvez obtenir à partir du projet GitHub ARMClient.One way to use this information is with the armclient, which you can get from the ARMClient GitHub project. Voici un exemple d’attachement d’une connexion hybride existante à votre application.Here is an example on attaching a pre-existing Hybrid Connection to your app. Créez un fichier JSON similaire au schéma ci-dessus :Create a JSON file per the above schema like:

{
  "name": "relay-demo-hc",
  "type": "Microsoft.Relay/Namespaces/HybridConnections",
  "location": "North Central US",
  "properties": {
    "serviceBusNamespace": "demo-relay",
    "relayName": "relay-demo-hc",
    "relayArmUri": "/subscriptions/ebcidic-asci-anna-nath-rak1111111/resourceGroups/myrelay-rg/providers/Microsoft.Relay/namespaces/demo-relay/hybridconnections/relay-demo-hc",
    "hostName": "my-wkstn.home",
    "port": 1433,
    "sendKeyName": "defaultSender",
    "sendKeyValue": "Th9is3is8a82lot93of3774stu887ff122235="
  }
}

Pour utiliser cette API, vous avez besoin de la clé d’envoi et de l’ID de ressource de relais. Si vous avez enregistré vos informations avec le nom de fichier hctest.json, émettez cette commande pour attacher votre connexion hybride à votre application :If you saved your information with the filename hctest.json, issue this command to attach your Hybrid Connection to your app:

armclient login
armclient put /subscriptions/ebcidic-asci-anna-nath-rak1111111/resourceGroups/myapp-rg/providers/Microsoft.Web/sites/myhcdemoapp/hybridConnectionNamespaces/demo-relay/relays/relay-demo-hc?api-version=2016-08-01 @hctest.json

Résolution de problèmesTroubleshooting

L’état « Connecté » signifie qu’au moins un HCM est configuré avec cette connexion hybride et qu’il est en mesure d’atteindre Azure.The status of "Connected" means that at least one HCM is configured with that Hybrid Connection, and is able to reach Azure. Si l’état de votre connexion hybride n’indique pas Connecté, votre connexion hybride n’est configurée sur aucun HCM ayant accès à 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 principale raison pour laquelle les clients ne peuvent pas se connecter à leur point de terminaison est que le point de terminaison a été spécifié à l’aide d’une adresse IP au lieu d’un nom 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 votre application ne peut pas accéder au point de terminaison souhaité et que vous avez utilisé une adresse IP, utilisez un nom DNS valide sur l’hôte sur lequel le GCH est exécuté.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. Vérifiez également que le nom DNS est correctement résolu sur l’hôte sur lequel le HCM est en cours d’exécution.Also check that the DNS name resolves properly on the host where the HCM is running. Vérifiez qu’il existe une connectivité à partir de l’hôte où le HCM est en cours d’exécution vers le point de terminaison de connexion hybride.Confirm that there is connectivity from the host where the HCM is running to the Hybrid Connection endpoint.

Dans App Service, l’outil tcpping peut être appelé à partir de la console Outils avancés (Kudu).In App Service, the tcpping tool can be invoked from the Advanced Tools (Kudu) console. Cet outil peut vous indiquer si vous avez accès à un point de terminaison TCP, mais ne vous dit pas si vous avez accès à un point de terminaison de connexion hybride.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. Lorsque vous utilisez l’outil dans la console par rapport à un point de terminaison de connexion hybride, vous confirmez seulement qu’il utilise une combinaison hôte:port.When you use the tool in the console against a Hybrid Connection endpoint, you are only confirming that it uses a host:port combination.

Connexions hybrides BizTalkBizTalk Hybrid Connections

La forme de début de cette fonctionnalité a été appelée Connexions hybrides BizTalk.The early form of this feature was called BizTalk Hybrid Connections. Cette fonctionnalité est arrivée en fin de vie le 31 mai 2018 et a cessé toutes les opérations.This capability went End of Life on May 31, 2018 and ceased operations. Les connexions hybrides BizTalk ont été supprimées de toutes les applications et ne sont pas accessibles via le portail ou l’API.BizTalk hybrid connections have been removed from all apps and are not accessible through the portal or API. Si vous avez encore ces anciennes connexions configurées dans le Hybrid Connection Manager, vous verrez alors l’état Abandonné et une instruction de fin de vie sera affichée en bas.If you still have these older connections configured in the Hybrid Connection Manager, then you will see a status of Discontinued and display an End of Life statement at the bottom.

Connexions hybrides BizTalk dans le HCM