Connexions hybrides d’Azure App Service

Les connexions hybrides sont un service dans Azure et une fonctionnalité dans 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. Pour en savoir plus sur les connexions hybrides et leur utilisation en dehors d’App Service, consultez Connexions hybrides Azure Relay.

Dans App Service, les connexions hybrides peuvent être utilisées pour accéder aux ressources d’application dans les réseaux qui peuvent effectuer des appels sortants vers Azure via le port 443. Les connexions hybrides permettent l’accès entre votre application et un point de terminaison TCP, et ne permettent pas d’accéder autrement à votre application. Utilisée dans App Service, chaque connexion hybride correspond à une combinaison d’hôte et de port TCP unique. Cette fonctionnalité permet à vos applications d’accéder aux ressources sur n’importe quel système d’exploitation, à condition qu’il s’agit d’un point de terminaison TCP. La fonctionnalité Connexions hybrides ne détecte pas et ne prend pas en compte le protocole d’application ou les ressources auxquels vous accédez. Elle fournit simplement un accès réseau.

Fonctionnement

Les Connecter ions hybrides nécessitent le déploiement d’un agent de relais où il peut atteindre le point de terminaison souhaité et Azure. L’agent de relais, Hybrid Connection Manager (HCM), appelle Azure Relay sur le port 443. À partir du site de l’application web, l’infrastructure App Service se connecte également à Azure Relay au nom de votre application. Grâce aux connexions jointes, l’application accède au point de terminaison souhaité. 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.

Diagram of Hybrid Connection high-level flow.

Lorsque votre application effectue une requête DNS qui correspond à un point de terminaison d’Connecter ion hybride configuré, le trafic TCP sortant est redirigé via l’Connecter ion hybride.

Remarque

Cela signifie que vous devez toujours utiliser un nom DNS pour votre connexion hybride. Certains logiciels clients n’effectuent une recherche DNS que si le point de terminaison utilise une adresse IP à la place.

Avantages d’une connexion hybride App Service

Il existe de nombreux avantages pour la fonctionnalité d’Connecter ions hybrides, notamment :

  • Les applications peuvent accéder en toute sécurité aux systèmes et services locaux.
  • La fonctionnalité ne nécessite pas un point de terminaison accessible par Internet.
  • Sa configuration est simple et rapide. Aucune passerelle requise.
  • Chaque connexion hybride correspond à une combinaison hôte:port unique, gage de sécurité.
  • Normalement, elle ne nécessite pas de trous de pare-feu. Les connexions sont toutes sortantes via des ports web standard.
  • 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.
  • elle peut être utilisée pour fournir un accès à plusieurs réseaux à partir d’une même application.
  • Pris en charge en disponibilité générale pour les applications Windows et les applications Linux. Elle n’est pas prise en charge pour les conteneurs personnalisés Windows.

Ce que vous ne pouvez pas faire avec les Connecter ions hybrides

Les opérations que vous ne pouvez pas effectuer avec les Connecter ions hybrides sont les suivantes :

  • Monter un lecteur.
  • Utiliser UDP.
  • Accéder à des services TCP qui utilisent des ports dynamiques tels que le mode FTP passif ou le mode passif étendu.
  • Prendre en charge LDAP, car cela peut utiliser UDP.
  • Prise en charge d’Active Directory, car vous ne pouvez pas rejoindre un worker App Service.

Ajouter et créer des connexions hybrides dans votre application

Pour créer une connexion hybride, accédez au portail Azure et sélectionnez votre application. Sélectionnez Mise en réseau>Configurer vos points de terminaison de connexion hybride. Vous pouvez alors voir les connexions hybrides configurées pour votre application.

Screenshot of Hybrid Connection list.

Pour ajouter une nouvelle connexion hybride, sélectionnez [+] Ajouter une connexion hybride. Vous voyez une liste des Connecter ions hybrides que vous avez déjà créées. Pour en ajouter une ou plusieurs à votre application, sélectionnez celles de votre choix, puis Ajouter la connexion hybride sélectionnée.

Screenshot of Hybrid Connection portal.

Si vous souhaitez créer une nouvelle connexion hybride, sélectionnez Créer une connexion hybride. Spécifiez les éléments suivants :

  • Nom de la connexion hybride.
  • Nom d’hôte du point de terminaison.
  • Port du point de terminaison.
  • Espace de noms Service Bus que vous voulez utiliser.

Screenshot of Create new hybrid connection dialog box.

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

Si vous souhaitez supprimer votre connexion hybride de votre application, cliquez avec le bouton droit dessus et sélectionnez Déconnecter.

Lorsqu’une connexion hybride est ajoutée à votre application, vous pouvez afficher ses détails simplement en la sélectionnant.

Screenshot of Hybrid connections details.

Créer une connexion hybride dans le portail Azure Relay

En plus d’utiliser le portail à partir de votre application, vous pouvez créer des connexions hybrides depuis le portail Azure Relay. Pour qu’App Service utilise une connexion hybride, celle-ci doit :

  • Exiger une autorisation du client.
  • Avoir un élément de métadonnées et un point de terminaison nommé qui contient une combinaison host :port comme valeur.

Connexions hybrides et plans App Service

Les connexions hybrides App Service sont uniquement disponibles dans les références SKU de tarification De base, Standard, Premium et Isolé. Les connexions hybrides ne sont pas disponibles pour les applications de fonction dans les plans de consommation. Des limites sont liées au plan de tarification.

Plan tarifaire Nombre de connexions hybrides utilisables dans le plan
De base 5 par plan
Standard 25 par plan
Premium (v1 à v3) 220 par application
Isolé (v1 à v2) 220 par application

L’IU du plan App Service vous indique combien de connexions hybrides sont utilisées et par quelles applications.

Screenshot of App Service plan properties.

Sélectionnez la connexion hybride pour voir les détails. Vous pouvez voir toutes les informations que vous avez vues dans la vue de l’application. Vous pouvez également voir combien d’autres applications utilisent cette connexion hybride dans le même plan.

Le nombre de points de terminaison de connexion hybride utilisables dans un plan App Service est limité. Chaque connexion hybride utilisée peut, toutefois, être utilisée sur autant d’applications que souhaité dans ce 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.

Tarification

En plus d’avoir besoin d’une référence SKU de plan App Service, il existe un coût supplémentaire pour utiliser des Connecter ions hybrides. Il existe des frais chaque écouteur utilisé par une connexion hybride. L’écouteur est l’Hybrid Connection Manager. Si vous aviez cinq connexions hybrides prises en charge par deux Hybrid Connection Manager, vous disposeriez de 10 écouteurs. Pour plus d’informations, consultez Tarification Service Bus.

Gestionnaire de connexion hybride

La fonctionnalité Connexions hybrides exige un agent de relais dans le réseau qui héberge votre point de terminaison de connexion hybride. Cet agent de relais est appelé le Gestionnaire de connexion hybride (GCH). 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.

Cet outil s’exécute sur Windows Server 2012 et version ultérieure. Le HCM s’exécute en tant que service et connecte le trafic sortant à Azure Relay sur le port 443.

Après avoir installé HCM, vous pouvez exécuter HybridConnectionManagerUi.exe pour utiliser l’interface utilisateur de l’outil. Ce fichier se trouve dans le répertoire d’installation de Hybrid Connection Manager. Dans Windows 10, vous pouvez aussi simplement rechercher Hybrid Connection Manager UI dans votre zone de recherche.

Screenshot of 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. Pour apporter des modifications, commencez par vous authentifier auprès d’Azure.

Pour ajouter une ou plusieurs connexions hybrides à votre GCH :

  1. Démarrez l’interface utilisateur de HCM.

  2. Sélectionnez Ajouter une nouvelle connexion hybride. Screenshot of Configure New Hybrid Connections.

  3. Connectez-vous à votre compte Azure pour obtenir les connexions hybrides disponibles avec vos abonnements. Le HCM ne continue pas à utiliser votre compte Azure au-delà de cette étape.

  4. Choisissez un abonnement.

  5. Sélectionnez les connexions hybrides à faire relayer par HCM. Screenshot of Hybrid Connections.

  6. Sélectionnez Enregistrer.

Vous pouvez maintenant voir les connexions hybrides que vous avez ajoutées. Vous pouvez également sélectionner la connexion hybride configurée pour en afficher les détails.

Screenshot of Hybrid Connection Details.

Pour prendre en charge les connexions hybrides avec lesquelles il est configuré, HCM exige les éléments suivants :

  • Accès TCP à Azure sur le port 443.
  • Accès TCP au point de terminaison de connexion hybride.
  • Possibilité de recherches DNS sur l’hôte du point de terminaison et l’espace de noms Service Bus. En d’autres termes, le nom d’hôte dans la connexion Azure Relay doit pouvoir être résolu à partir de l’ordinateur hébergeant le HCM.

Notes

Azure Relay s’appuie sur les sockets web pour assurer la connectivité. Cette fonctionnalité est uniquement disponible sur Windows Server 2012 ou version ultérieure. C’est pourquoi HCM n’est pas pris en charge sur les systèmes antérieurs à Windows Server 2012.

Redondance

Chaque GCH peut prendre en charge plusieurs connexions hybrides. De plus, toute connexion hybride peut être prise en charge par plusieurs GCH. Le comportement par défaut consiste à acheminer le trafic entre les HCM configurés pour n’importe quel point de terminaison donné. Si vous souhaitez une haute disponibilité sur vos connexions hybrides à partir de votre réseau, exécutez plusieurs HCM sur des ordinateurs distincts. 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.

Ajouter manuellement une connexion hybride

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. Vous pouvez voir la chaîne de connexion de passerelle dans les propriétés de la connexion hybride dans le portail Azure. Pour utiliser cette chaîne, sélectionnez Saisir manuellement dans HCM et collez la chaîne de connexion de passerelle.

Manually add a Hybrid Connection.

Mettre à niveau

Le Hybrid Connection Manager est mis à jour périodiquement pour corriger des problèmes ou fournir des améliorations. Lorsque des mises à niveau sont publiées, une fenêtre contextuelle s’affiche dans l’interface utilisateur HCM. L’application de la mise à niveau applique les modifications et redémarre le HCM.

Ajout d’une connexion hybride à votre application par programmation

Les connexions hybrides sont prises en charge dans Azure CLI. Les commandes fournies s’exécutent à deux niveaux, celui le l’application et celui du plan App Service. Les commandes au niveau de l’application sont les suivantes :

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.

Les commandes de plan App Service vous permettent de définir la clé utilisée par une connexion hybride donnée. Deux clés sont définies sur chaque connexion hybride : une clé primaire et une clé secondaire. Vous pouvez choisir d’utiliser la clé primaire ou secondaire avec les commandes ci-dessous. Cette option vous permet de changer de clé lorsque vous souhaitez régénérer régulièrement vos clés.

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.

Sécuriser vos connexions hybrides

Tout utilisateur disposant des autorisations suffisantes sur le relais Azure Service Bus Relay sous-jacent peut ajouter une connexion hybride existante à d’autres App Service Web Apps. Cela signifie que si vous devez empêcher d’autres utilisateurs de réutiliser ce même Connecter ion hybride (par exemple, lorsque la ressource cible est un service qui n’a pas d’autres mesures de sécurité en place pour empêcher l’accès non autorisé), vous devez verrouiller l’accès à Azure Service Bus Relay.

Toute personne ayant Reader accès au relais peut voir l’Connecter ion hybride lors de sa tentative d’ajout à son application web dans le Portail Azure, mais elle ne peut pas l’ajouter, car elle ne dispose pas des autorisations nécessaires pour récupérer le chaîne de connexion utilisé pour établir la connexion de relais. Pour ajouter la connexion hybride, les utilisateurs doivent disposer de l’autorisation listKeys (Microsoft.Relay/namespaces/hybridConnections/authorizationRules/listKeys/action). Le Contributor rôle ou tout autre rôle qui inclut cette autorisation sur le Relais permet aux utilisateurs d’utiliser l’Connecter ion hybride et de l’ajouter à leurs propres applications web.

Gérer vos connexions hybrides

Si vous devez modifier l’hôte ou le port du point de terminaison pour une Connecter ion hybride, procédez comme suit :

  1. Supprimez la connexion hybride d’Hybrid Connection Manager sur l’ordinateur local en sélectionnant la connexion, puis Supprimer en haut à gauche de la fenêtre Détails de la connexion hybride.
  2. Déconnectez la connexion hybride de votre App Service en accédant à Connexions hybrides dans la page Mise en réseau d’App Service.
  3. Accédez au relais pour le point de terminaison que vous devez mettre à jour, puis sélectionnez Connexions hybrides sous Entités dans le menu de navigation de gauche.
  4. Sélectionnez la connexion hybride que vous souhaitez mettre à jour, puis Propriétés sous Paramètres dans le menu de navigation de gauche.
  5. Apportez vos modifications et cliquez sur Enregistrer les modifications en haut.
  6. Revenez aux paramètres de Connexions hybrides pour votre App Service et rajoutez la connexion hybride. Assurez-vous que le point de terminaison est mis à jour comme prévu. Si vous ne voyez pas la connexion hybride dans la liste, actualisez après 5-10 minutes.
  7. Revenez à Hybrid Connection Manager sur l’ordinateur local et rajoutez la connexion.

Dépannage

L’état « Connecté » signifie qu’au moins un HCM est configuré avec cette connexion hybride et qu’il est en mesure d’atteindre 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. Lorsque votre HCM n’apparaît pas Connecter ed, il existe quelques éléments à case activée :

  • Votre hôte dispose-t-il d’un accès sortant à Azure sur le port 443 ? Vous pouvez tester à partir de votre hôte HCM à l’aide de la commande PowerShell Test-NetConnection Destination -P Port

  • Votre HCM est-il susceptible d’être en mauvais état ? Essayez de redémarrer le service local « Azure Hybrid Connection Manager Service ».

  • Des logiciels en conflit sont-ils installés ? Hybrid Connecter ion Manager ne peut pas coexister avec Biztalk Hybrid Connecter ion Manager ou Service Bus pour Windows Server. Lorsque vous installez le module HCM, toutes les versions de ces packages doivent d’abord être supprimées.

  • Avez-vous un pare-feu entre votre hôte HCM et Azure ? Si c’est le cas, vous devez autoriser l’accès sortant à l’URL du point de terminaison Service Bus et aux passerelles Service Bus qui serviceent votre Connecter ion hybride.

    • Vous trouverez l’URL du point de terminaison Service Bus dans l’interface utilisateur hybrid Connecter ion Manager.

    Screenshot of Hybrid Connection Service Bus endpoint.

    • Les passerelles Service Bus sont les ressources qui acceptent la demande dans l’Connecter hybride et la transmettent via Azure Relay. Vous devez autoriser la liste des 128 passerelles. Les passerelles sont au format G#-prod-[stamp]-sb.servicebus.windows.net où « # » est un nombre compris entre 0 et 127 et « stamp » est le nom de l’instance dans votre centre de données Azure où se trouve votre point de terminaison Service Bus.
      • Si vous pouvez utiliser un caractère générique carte, vous pouvez autoriser « *.servicebus.windows.net ».

      • Si vous ne pouvez pas utiliser un caractère générique carte, vous devez autoriser toutes les 128 passerelles.

        Vous trouverez le tampon à l’aide de « nslookup » sur l’URL du point de terminaison Service Bus.

        Screenshot of terminal showing where to find the stamp name for the Service Bus.

        Dans cet exemple, le tampon est « sn3-010 ». Pour autoriser la liste des passerelles Service Bus, vous avez besoin des entrées suivantes :

        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 votre état indique Connecter ed, mais que votre application ne peut pas atteindre votre point de terminaison, puis :

  • Assurez-vous d’utiliser un nom DNS dans votre Connecter ion hybride. Si vous utilisez une adresse IP, la recherche DNS du client requise peut ne pas se produire. Si le client s’exécutant dans votre application web ne fait pas de recherche DNS, l’Connecter hybride ne fonctionne pas.
  • Vérifiez que le nom DNS utilisé dans votre Connecter ion hybride peut être résolu à partir de l’hôte HCM. Vérifiez la résolution à l’aide de nslookup EndpointDNSname où EndpointDNSname correspond exactement à ce qui est utilisé dans votre définition de connexion hybride.
  • Testez l’accès de votre hôte HCM à votre point de terminaison à l’aide de la commande PowerShell Test-Net Connecter ion EndpointDNSname -P Si vous ne pouvez pas atteindre le point de terminaison à partir de votre hôte HCM, case activée pare-feu entre les deux hôtes, y compris les pare-feu basés sur l’hôte de destination.
  • Si vous utilisez App Service sur Linux, assurez-vous que vous n’utilisez pas « localhost » comme hôte de point de terminaison. Utilisez plutôt le nom de votre machine si vous essayez de créer une connexion avec une ressource sur votre ordinateur local.

Dans App Service, l’outil de ligne de commande tcpping peut être appelé à partir de la console Outils avancés (Kudu). 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. 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.

Si vous avez un client de ligne de commande pour votre point de terminaison, vous pouvez tester la connectivité à partir de la console de l’application. Par exemple, vous pouvez tester l’accès aux points de terminaison de serveur web à l’aide de curl.