Comment accéder aux bureaux distants en utilisant Apache Guacamole

Qu’est-ce qu’Apache Guacamole ?

Apache Guacamole est un framework open-source créé par la Fondation Apache qui fournit une application HTML5 agissant comme une passerelle de bureau à distance, permettant d’accéder à des bureaux distants via les protocoles RDP, SSH et VNC sans l’utilisation d’un autre logiciel tiers.

La solution Guacamole inclut de nombreux composants individuels, tels que libguac, guacamole-common et guacamole-ext. Bien que ces projets soient au-delà de la portée de cet article, nous nous concentrerons sur guacamole-common-js à l’intérieur de l’écosystème Guacamole.

Qu’est-ce que guacamole-common-js ?

Le projet Guacamole fournit une API JavaScript pour interfacer avec des composants conçus pour répondre aux spécifications Guacamole. L’API guacamole-common-js offre une implémentation JavaScript d’un Client Guacamole et de mécanismes de tunneling pour transférer les données de protocole de JavaScript vers le côté serveur de l’application. Le côté serveur fonctionne généralement sur une machine avec guacd ou le Démon Guacamole. La bibliothèque guacamole-common-js fournit des objets d’abstraction souris et clavier pour traduire les événements souris et clavier JavaScript en données que Guacamole peut facilement digérer.

<diy9 Utiliser guacamole-common-js pour Créer un Client Guacamole Personnalisé

Prérequis : Installez guacamole-common-js via n’importe quel gestionnaire de packages de votre choix. Dans cet exemple, nous utiliserons npm.

Shell

 

Étape 1 : Créer un Tunnel Guacamole

Créer un tunnel Guacamole permet de streamer les données sans effort entre le serveur et votre client.

JavaScript

 

Vous pouvez passer des paramètres supplémentaires à votre serveur via l’URL du tunnel en utilisant des paramètres de requête. Par exemple, votre URL de tunnel peut ressembler à path/to/your/tunnel?param1=value1&param2=value2.

Étape 2 : Utilisez l’objet Tunnel pour Créer un Client Guacamole

Vous pouvez créer un objet Client Guacamole en passant l’objet Tunnel que vous venez de créer au constructeur Guacamole.Client.

JavaScript

 

Étape 3 : Appelez la Fonction Connect pour Établir la Connexion

Alors, nous avons l’instance de Tunnel Guacamole et l’instance de Client Guacamole. Ce sont tout ce dont nous avons besoin pour établir une connexion à notre machine distante.

JavaScript

 

Il y a juste une chose à remember : L’objet Guacamole.Tunnel passé dans le constructeur Guacamole.Client ne doit pas déjà être connecté. C’est parce que, internement, la méthode guacClient.connect() va appeler la méthode tunnel.connect(), et si le tunnel est déjà connecté, cette opération échouera.

Jetzt, les observateurs d’entre vous se rendront compte que vous ne voyez toujours pas le contenu de votre machine distante sur votre client. C’est parce que nous manquons encore une étape cruciale.

Étape 4 : Obtenez l’Affichage Guacamole et Attachez-le au DOM

Une fois que vous avez établi la connexion en appelant guacClient.connect(), vous pouvez voir l’affichage de la machine distante en attachant l’affichage Guacamole (un HTMLDivElement) au DOM. Voyons comment nous pouvons faire cela.

Imaginons que vous ayez une page HTML dans laquelle vous souhaitez montrer l’affichage de votre machine distante.

HTML

 

Puis, récupérons le HTMLDivElement, qui doit être affiché à l’utilisateur depuis le guacClient.

JavaScript

 

Et voilà ! Vous voyez maintenant le contenu de votre machine distante sur votre DOM. Mais attendez, quelque chose ne va pas. Votre entrée clavier ne fait rien, et votre souris non plus. Comment y remédier ?

Etape 5 : Configurer les événements clavier et souris

Pour configurer les événements clavier et souris, vous devez mettre en place les gestionnaires d’entrée fournis par guacamole-common-js.

Voyons d’abord comment nous pouvons configurer les événements souris.

JavaScript

 

La configuration du clavier est encore plus simple car il n’y a que deux événements à configurer.

JavaScript

 

Etape 6 : Configuration des événements tactiles (optionnel)

En option, vous pouvez également configurer votre client pour les entrées tactiles, mais elles seront traduites en événements Guacamole.Mouse.

JavaScript

 

Comme vous pouvez le voir, nous traduisons les événements tactiles en événements souris Guacamole, et cette étape est entièrement optionnelle. Vous ne devez configurer les événements tactiles que si vous avez l’intention d’utiliser votre client personnalisé sur un appareil à écran tactile.

Étape 7 : Déconnexion de votre machine distante

Enfin, nous avons atteint la dernière étape, qui est la déconnexion de votre machine distante, et c’est aussi simple que d’appeler une méthode sur votre client.

JavaScript

 

Conclusion

Pour résumer, Apache Guacamole est un framework puissant et polyvalent open-source qui offre une manière fluide d’accéder à des bureaux distants via les protocoles RDP, SSH ou VNC. La bibliothèque guacamole-common-js permet aux développeurs de créer des clients Guacamole personnalisés qui peuvent interagir avec d’autres composants Guacamole tels que guacamole-common, guaclib et guacamole-ext.

En suivant les étapes décrites dans cet article, vous pouvez configurer un client Guacamole personnalisé de base qui peut se connecter à vos serveurs distants et gérer les événements clavier, souris et tactile.

Source:
https://dzone.com/articles/access-remote-desktops-using-apache-guacamole-a-ba