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 fournissent l’accès de votre application à un point de terminaison TCP. Il n’active pas une nouvelle façon d’accéder à 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 connexions hybrides nécessitent qu’un agent de relais soit déployé à un emplacement d’où il pourra accéder à la fois au 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.
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.
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
La fonctionnalité de connexions hybrides offre de nombreux avantages, 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, ce qui est utile pour la sécurité.
- Normalement, elle ne nécessite pas de trous de pare-feu. Les connexions sont toutes sortantes via des ports web standard.
- Étant donné que la fonctionnalité est au niveau du réseau, elle est indépendante du langage utilisé par votre application et de 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.
- Prise en charge en disponibilité générale pour les applications Windows et Linux. Les connexions hybrides ne sont pas prises en charge pour les conteneurs personnalisés Windows.
Ce que vous ne pouvez pas faire avec les connexions hybrides
Ce que vous ne pouvez pas faire avec les connexions hybrides, notamment :
- 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.
- Prendre en charge Active Directory, car vous ne pouvez pas effectuer la jonction de domaine avec un rôle de travail App Service.
Ajouter et créer des connexions hybrides dans votre application
Pour créer une connexion hybride :
Dans le portail Azure, sélectionnez votre application. Sélectionnez Paramètres>Mise en réseau.
En regard de Connexions hybrides, sélectionnez le lien Non configuré. Vous pouvez alors voir les connexions hybrides configurées pour votre application.
Pour ajouter une nouvelle connexion hybride, sélectionnez Ajouter une connexion hybride. La liste des connexions hybrides que vous avez déjà créées apparaît. Pour en ajouter une ou plusieurs à votre application, sélectionnez celles de votre choix, puis Ajouter la connexion hybride sélectionnée.
Si vous souhaitez créer une nouvelle connexion hybride, sélectionnez Créer une connexion hybride. Spécifiez les valeurs suivantes :
- 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.
Chaque connexion hybride est liée à un espace de noms Service Bus. Chaque espace de noms Service Bus se trouve dans une région Azure. Pour éviter la latence induite par le réseau, utilisez un espace de noms Service Bus dans la même région que votre application.
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.
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.
- Comporter un élément de métadonnées et un point de terminaison nommé contenant une combinaison hôte: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.
Pour afficher les détails, sélectionnez la connexion hybride. 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 ê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 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. Il existe des frais pour chaque écouteur qu’une connexion hybride utilise. 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 :
- Dans le portail Azure, sélectionnez votre application. Sélectionnez Paramètres>Mise en réseau.
- En regard de Connexions hybrides, sélectionnez le lien pour ouvrir la page Connexions hybrides.
- Sélectionnez Télécharger le gestionnaire des connexions.
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 rechercher Hybrid Connection Manager UI dans votre zone de recherche.
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 :
Démarrez l’interface utilisateur de HCM.
Sélectionnez Ajouter une nouvelle connexion hybride.
Connectez-vous à votre compte Azure pour obtenir les connexions hybrides disponibles avec vos abonnements. Le HCM ne continue pas d’utiliser votre compte Azure au-delà de cette étape.
Choisissez un abonnement.
Sélectionnez les connexions hybrides à faire relayer par HCM.
Cliquez sur 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.
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.
Remarque
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. En raison de cela, 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. Plusieurs HCM peuvent prendre en charge n’importe quelle connexion hybride. 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.
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 boîte de dialogue 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 au niveau du plan App Service vous permettent de définir la clé à utiliser 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 suivantes. Cette option vous permet de changer de clé quand vous regénérez vos clés régulièrement.
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 d’autorisations suffisantes sur un Azure Service Bus Relay peut ajouter une connexion hybride existante pour ce relais à d’autres applications web App Service. Pour empêcher d’autres utilisateurs de réutiliser cette même connexion hybride, verrouillez l’accès au Azure Service Bus Relay. Cette situation peut se produire 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é.
Tout individu disposant d’un accès Reader
au Relay peut voir la connexion hybride si elle tente de l’ajouter à son application web dans le portail Azure. Ils ne peut pas l’ajouter, car il n’a pas les autorisations nécessaires pour récupérer la chaîne de connexion utilisée 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 rôle Contributor
, ou tout autre rôle comprenant cette autorisation sur le Relay, permet aux utilisateurs d’utiliser la connexion 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 connexion hybride, procédez comme suit :
- Dans le Gestionnaire des connexions hybrides, sélectionnez la connexion pour afficher sa fenêtre de détails. Puis sélectionnez Supprimer.
- Dans le portail Azure, sélectionnez votre application. Sélectionnez Paramètres>Mise en réseau.
- En regard de Connexions hybrides, sélectionnez le lien Configuré.
- Dans Connexions hybrides, cliquez avec le bouton droit sur la connexion, puis sélectionnez Déconnecter.
- Accédez au Relay pour le point de terminaison que vous devez mettre à jour. Dans le menu de navigation, sous Entités, sélectionnez Connexions hybrides sous Entités.
- Sélectionnez la connexion hybride. Dans son menu de l’application logique, sous Paramètres, sélectionnez Propriétés.
- Apportez vos modifications, puis sélectionnez Enregistrer les modifications.
- 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.
- 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. Quand votre HCM affiche Non connecté, il y a plusieurs choses à vérifier :
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 Connection Manager ne peut pas coexister avec BizTalk Hybrid Connection Manager ou Service Bus pour Windows Server. Lorsque vous installez le module HCM, vous devez d’abord supprimer toutes les versions de ces packages.
Avez-vous un pare-feu entre votre hôte HCM et Azure ? Si c’est le cas, vous devez autoriser l’accès sortant à la fois à l’URL du point de terminaison Service Bus ET les passerelles Service Bus qui desservent votre connexion hybride.
Vous trouverez l’URL du point de terminaison Service Bus dans l’interface utilisateur du Gestionnaire des connexions hybrides.
Les passerelles Service Bus sont les ressources qui acceptent la requête au sein de la connexion hybride et la font transiter via Azure Relay. Vous devez autoriser la liste des 128 passerelles. Les passerelles sont au format :
G#-prod-[stamp]-sb.servicebus.windows.net
. Le signe numérique,#
, est un nombre compris entre 0 et 127 etstamp
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, vous pouvez autoriser *.servicebus.windows.net.
Si vous ne pouvez pas utiliser de caractère générique, vous devez autoriser toutes les 128 passerelles.
Vous trouverez l’empreinte à l’aide de nslookup sur l’URL du point de terminaison Service Bus.
Dans cet exemple, l’empreinte 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 l’état indique Connecté mais que votre application ne peut pas atteindre votre point de terminaison, procédez comme suit :
- Vérifiez que vous utilisez un nom DNS dans votre connexion hybride. Si vous utilisez une adresse IP, la recherche DNS du client requis peut ne pas se produire. Si le client en cours d’exécution dans votre application web n’effectue pas de recherche DNS, la connexion hybride ne fonctionne pas.
- Vérifiez que le nom DNS utilisé dans votre connexion 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-NetConnection EndpointDNSname -P Port
. Si vous ne pouvez pas atteindre le point de terminaison à partir de votre hôte HCM, vérifiez les pare-feux entre les deux hôtes, y compris tout pare-feu basé sur l’hôte de destination. - Si vous utilisez App Service sur Linux, vérifiez que vous n’utilisez pas
localhost
en tant qu’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.