Serveur d'impression

Exploration de la prise en charge immédiate de SFTP dans BizTalk Server 2013 – Bien choisir son serveur d impression

Le 3 mai 2019

Cet article est le dixième d'une série hebdomadaire destinée à souligner brièvement les points essentiels à connaître sur les nouvelles fonctionnalités de BizTalk Server 2013.

Cette semaine, nous allons examiner le nouvel adaptateur SFTP fourni avec BizTalk Server 2013. Vous l'avez bien lu, nous avons enfin un adaptateur SFTP prêt à l'emploi avec BizTalk Server 2013!

Informations d'arrière-plan

Dans la version 2010, nous avons assisté à l’ajout de l’adaptateur FTPS (ou plutôt à l’amélioration de l’adaptateur FTP existant pour prendre en charge SSL), ce qui était très utile pour ceux qui souhaitaient pouvoir transférer des fichiers entre systèmes de manière cryptée. Étant donné que la prise en charge de SSL était intégrée à l'adaptateur FTP, nous avons également pu tirer parti d'autres améliorations (par exemple, le mode FTP en lecture seule) en même temps.

L'adaptateur SFTP est conçu pour prendre en charge un scénario complètement différent. Ici, nous ne faisons pas de FTP standard avec cryptage SSL; Au lieu de cela, nous utilisons un tunnel SSH pour accéder à un système de fichiers distant (avec un protocole qui n’est en aucun cas un protocole FTP).

Par conséquent, la fonctionnalité SFTP n’est pas quelque chose qui pourrait être facilement piraté sur un adaptateur existant. Au lieu de cela, il existe un tout nouvel adaptateur créé à partir de la base pour l'inclusion dans BizTalk Server 2013.

Le mettre à l'épreuve

Bien que je possède à la maison quelques machines Linux de différentes saveurs, et même quelques-unes fonctionnant sous EC2, je n’ai pas encore créé de machine virtuelle non-Windows sur Windows Azure (cela ne me semble tout simplement pas bien). J'ai donc pensé que ce serait une bonne occasion de le faire.

Contrairement aux machines virtuelles Windows, l'expérience de création rapide ne vous permet pas de spécifier un nom d'utilisateur personnalisé. Le nom d'utilisateur que j'utiliserai (ainsi que tous les autres utilisateurs du service) est azureuser. Dans le cadre du processus de provisioning, Windows Azure configurera sshd et générera une paire de clés RSA 2048 bits. Après la mise en service, l'empreinte numérique de la clé sera visible dans le portail de gestion Windows Azure:

Génial. Maintenant j'ai un fichier. Voyons maintenant si BizTalk 2013 peut maintenant accéder et faire quelque chose de significatif avec cela.

Création d'un emplacement de réception

Pour les besoins de cet article de blog, tout ce que je veux vraiment faire, c'est insérer le fichier dans BizTalk, examiner les propriétés promues par l'adaptateur, voir comment il réagit en lecture seule, puis acheminer le fichier vers un emplacement de fichier vers sortez-le de ma boîte de message et placez-le dans un endroit significatif.

À cette fin, j'ai créé un emplacement de réception unidirectionnel et sélectionné l'adaptateur SFTP. Lors de la configuration de l'adaptateur, j'ai été accueilli avec les propriétés suivantes:

Dans la section Sécurité, j'ai modifié AcceptAnySSHServerHostKey parce que je voulais être certain que c’était bien ma machine virtuelle qui acceptait la connexion (et que je connaissais l’empreinte digitale attendue). Je règle la propriété SSHServerHostKeyFingerPrint sur l’empreinte digitale indiquée sur le portail de gestion Azure Windows (après l’ajout de deux points ‘:’ tous les deux caractères pour la mettre dans un format plus standard).

Frapper un mur

Eh bien, cela arrive toujours à un moment de la journée – un barrage routier qui me laisse me gratter la tête après une tasse de café (espérons que ce n’est pas juste moi, hein?).

Dans ce cas, le blocage a été un message d'erreur dans le journal des événements, qui a pris la forme suivante (reproduite pour les utilisateurs de l'exercice Bing-fu).3 pour résoudre un problème):

Le moteur de messagerie n'a pas pu ajouter un emplacement de réception «OrdersIn_SFTP» avec l'URL «sftp: //my-server-url-is-not-your-url.cloudapp.net: 22 / home / azureuser / *. Txt» à l'adaptateur. “SFTP”. Raison: “Microsoft.BizTalk.Adapter.SftpInvoker.SftpException: Erreur de connexion SFTP ouverte.
à Microsoft.BizTalk.Adapter.SftpInvoker.SftpInvoker.Open ()
sur Microsoft.BizTalk.Adapter.Sftp.SftpConnection.OpenUnderlyingConnection (SftpConnectionProperties connectionProperties)
sur Microsoft.BizTalk.Adapters.CommonHelpers.Connection`3.ConnectionPool`3.GetConnection (T1 connectionProperties, TimeSpan timeout)
sur Microsoft.BizTalk.Adapters.CommonHelpers.Connection`3.GetConnection (T connectionProperties, délai d'attente TimeSpan)
sur Microsoft.BizTalk.Adapter.Sftp.SftpRLConfig.ValidateConfiguration (SftpReceivePropertyBag receivePropertyBag)
sur Microsoft.BizTalk.Adapter.Sftp.SftpRLConfig.CreateBinding (RHConfig rhConfig)
à Microsoft.BizTalk.Adapter.Wcf.Runtime.BtsServiceHostBase.InitializeRuntime ()
sur System.ServiceModel.ServiceHostBase.OnBeginOpen ()
sur System.ServiceModel.ServiceHostBase.OnOpen (délai d'attente TimeSpan)
sur System.ServiceModel.Channels.CommunicationObject.Open (TimeSpan timeout)
sur Microsoft.BizTalk.Adapter.Wcf.Runtime.WcfReceiveEndpoint.Enable ()
à l'adresse Microsoft.BizTalk.Adapter.Wcf.Runtime.WcfReceiveEndpoint..ctor (point de terminaison BizTalkEndpointContextContext, transport IBTTransportProxy, contrôle ControlledTermination)
sur Microsoft.BizTalk.Adapter.Wcf.Runtime.WcfReceiver`2.AddReceiveEndpoint (URL de la chaîne, IPropertyBag adapterConfig, IPropertyBag bizTalkConfig) ”.

Tu peux répéter s'il te plait? Une erreur qui va jusqu'au bout d'une classe WcfReceiver? C'est devenu fou.

Après avoir passé du temps à modifier les paramètres pour voir quelle option de configuration pourrait être le coupable, j'ai constaté que le fait de définir AcceptAnySSHServerHotKey sur True entraînait la disparition de l'erreur et restait activé pour l'emplacement de réception. Malheureusement, je tiens vraiment à ce que le paramètre soit défini sur False (Faux). Je ne veux pas que quelqu'un usurpe l'identité de ma boîte et s'en tire!

Alors, que devons-nous faire ici? Eh bien, si on veut simplement RTFM, ils trouveront le bonheur. J'ai donc décidé de le faire et j'ai trouvé cet article sur MSDN qui indiquait que j'avais spécifié l'empreinte digitale de la clé de l'hôte au mauvais format. Il doit inclure le type de clé, la taille de la clé (en bits), puis l’empreinte digitale.

Les machines virtuelles Azure utilisent une clé RSA 2048 bits, ce qui doit donc être reflété dans ce paramètre. Après quelques ajustements, mes propriétés ont été mises à jour pour ressembler à ceci:

Suspension du fichier pour inspection

Puisque je voulais vraiment aller au fond des choses que cet adaptateur pouvait faire pour moi, j'ai décidé de ne pas créer de port d'envoi au départ (mais plutôt de le faire suspendre le message afin que je puisse inspecter le contexte, puis décider quoi faire. faire avec plus tard – si quelque chose).

J'ai donc activé l'emplacement de réception et attendu. Le fichier est apparu dans la boîte de message dans l'intervalle d'interrogation de 5 secondes configuré, et a donné le résultat suivant dans son contexte:

Qu'en est-il en lecture seule?

J'ai décidé de désactiver l'emplacement de réception pendant quelques minutes afin de pouvoir configurer un test dans lequel il y aurait un fichier qu'un utilisateur n'aurait pas l'autorisation de supprimer (cela nécessitait également l'ajout d'un autre utilisateur que j'ai nommé affectueusement nickh):

Maintenant, à propos du journal des événements, il n’est certainement pas rempli de les erreurs, mais il est assez plein d’avertissements à ce stade:

UN A CÔTÉ: Peeling Back The Layers

Après avoir vu WCF dans le message d'erreur que j'ai reçu au début de cette exploration, j'ai dû faire des recherches pour satisfaire ma curiosité.

En explorant un peu l'intérieur de la direction d'installation de BizTalk Server 2013, vous découvrirez comment tout cela s'imbrique. Il y a un sshlib.dll et un sshmessages.dll dans les répertoires Bins32 et Bins64 – il s’agit d’un code non managé qui implémente la connexion brute. À côté de ceux-ci, nous voyons une bibliothèque gérée nommée Microsoft.Biztalk.Adapter.SftpInvoker.dll. Enfin, à la racine du répertoire d'installation, il y a un fichier Microsoft.BizTalk.Adapter.Sftp.dll. Le navigateur d’objets de Visual Studio révèle qu’il s’agit en réalité, à l’instar des adaptateurs Service Bus, d’un autre nouvel adaptateur WCF (utilisant probablement une liaison personnalisée reposant en quelque sorte sur les composants susmentionnés):

La clôture

J'espère que cet article vous a aidé d'une manière ou d'une autre. Peut-être avez-vous découvert qu'un adaptateur SFTP était prêt à l'emploi dans BizTalk Server 2013 et que c'était une grande nouvelle pour vous. Peut-être que vous étiez curieux de savoir comment cela fonctionnerait en lecture seule, et maintenant vous avez une idée de ce comportement. Ou peut-être avez-vous eu du mal avec la configuration, et quelque chose ici a mis en lumière un problème que vous rencontriez. Quoi qu'il en soit, je vous souhaite bonne chance dans vos projets d'intégration.

Si vous souhaitez en savoir plus sur les nouvelles fonctionnalités de BizTalk Server 2013, ou même apprendre à utiliser BizTalk Server pour la première fois, consultez l’une de nos classes Immersion en immersion de développeurs de BizTalk Server 2013 depuis votre domicile. , sur votre lieu de travail, ou ici même à Kirkland, WA.

1Je choisis d'être la Suisse dans la grande guerre des éditeurs – Vous trouverez sur ma machine virtuelle que vi est installé alors que emacs ne l’est pas.

2Écoute, je ne vais pas être ce mec et ne vous dis pas que vous pouvez toujours atteindre votre objectif ici. Découvrez l'énumération AfterGetActions de ce mauvais garçon. Cet adaptateur existe toujours et vous permet toujours de faire ce que vous voulez faire.

3Oui, c'est moi qui vend sans scrupule. Ils vous donnent une location gratuite de Redbox après 110 points de récompense. Je suis une ventouse pour les points et les films gratuits.

Commentaires

Laisser un commentaire

Votre commentaire sera révisé par les administrateurs si besoin.