Question

Historique

Sur le travail I du projet, nous avons des applications en cours d'exécution sur l'interface graphique plusieurs serveurs différents. En raison de leurs similitudes de l'interface utilisateur que je fais des recherches combinant leurs OMIs en une seule interface unifiée. Actuellement, ces applications sont à distance visible via VNC. Je prévois de tirer parti de cela en ayant l'affichage maître exécuter plusieurs visualiseurs VNC sous les couvertures et envelopper une interface autour de ces sessions VNC pour les faire apparaître comme des applications natives.

Problème

Je cherche des pointeurs pour architecturer une authentification unique solution. Je veux éliminer connexion individuelle de chaque application et à la place que les utilisateurs se connecter à l'affichage unifié uniquement. Quand ils le font, ils seraient alors automatiquement connecté à chacune des applications individuelles.

Contraintes

  1. Les applications sont basées sur Swing applications Java sur Linux.
  2. L'authentification est effectuée par une machine Windows 2003 Server avec Active Directory.
  3. Je préfère une solution fortement impromptu à un sur mesure.

Idées

Mon enquête m'a pointé vers Kerberos et GSSAPI . Le mécanisme basé sur le ticket-Kerberos semble bien adapté à la tâche.

Un peu délicat est que ces applications sont toujours en cours d'exécution. Je dois l'affichage unifié en quelque sorte les « dire » lorsque l'utilisateur est connecté. Ce n'est pas comme les programmes normaux kerbérisées où ils exécuteront une connexion Kerberos au démarrage.

Si j'utilise Kerberos Je ne suis pas sûr de savoir comment transférer des billets pour les différents serveurs d'applications. Est-il un moyen standard pour les transférer? Dois-je utiliser juste « scp » ou quelque chose? Ou dois-je développer mon propre protocole de réseau basé sur la prise et que les programmes Java se connectent les uns aux autres et billets transfert de cette façon?

Je ne veux pas trop enliser dans les détails, cependant. Je vous en serais reconnaissant même des idées générales comme « avez-vous envisagé la technologie X? » ou « essayer XYZ au lieu de VNC, il le fait pour vous. »


Mises à jour

Je vais modifier des réponses et des clarifications ici ...

  

Avez-vous pensé que certains d'authentification doit avoir lieu de toute façon et que VNC exporte uniquement le point de vue d'un programme en cours d'exécution, donc une session VNC ne peut pas transporter des billets?

Oui, en effet. Java + VNC est ce que nous avons en ce moment. Je pourrais changer à VNC pour quelque chose d'autre s'il y a une meilleure façon de visualiser à distance les applications. Sans les réécrire, ce qui est. La solution idéale serait de les séparer en morceaux distincts de clients et de serveurs et de mettre tout le code de l'interface graphique dans le client, mais c'est la difficulté à 5 étoiles et j'ai besoin de 1 ou 2 étoiles.

  

Avez-vous envisagé le cas lorsque deux utilisateurs se connectent en même temps? Vont-ils voir la même application? Ou ce interdit?

Oui, je l'ai considéré que. Ils seront soit voir la même application ou il sera interdit. De toute solution est acceptable dans la mesure où ce système particulier va, donc ce n'est pas une grosse affaire.

  

Avez-vous envisagé simplement en utilisant un X Server sur votre hôte local et d'exporter les clients Windows applications?

Ouais, ce serait génial. Cela peut-il être fait avec les applications déjà en cours d'exécution? Je dois vous connecter à ces applications après qu'ils ont déjà commencé. Je ne peux pas les commencer à la demande lorsque quelqu'un enflamme le spectateur central.

Était-ce utile?

La solution

Okey, je vais essayer de commencer cette liste. Avez-vous envisagé ...

  • JAAS? Devrait inclure l'API GSS, mais il a été très lourd la dernière fois que je l'ai essayé.
  • que certains l'authentification doit avoir lieu de toute façon et que VNC exporte uniquement le point de vue d'un programme en cours d'exécution, donc une session VNC ne peut pas les billets de transport?
  • une solution basée sur un navigateur avec un client embarqué Java VNC? Au moins l'IE est en mesure d'effectuer l'authentification kerberos, je ne sais pas sur les autres navigateurs, ou comment l'IE fait cela.
  • le cas lorsque deux utilisateurs se connectent en même temps? Vont-ils voir la même application? Ou ce interdit?
  • juste en utilisant un X Server sur votre hôte local et exporter les clients Windows applications?

EDIT: Plus de considérations:

  • Lorsque vous utilisez la variante X Server, utilisez Xmove pour déplacer les programmes au serveur X.
  • Vous pouvez utiliser l'authentification SSH avec des clés privées / secrètes et laisser l'utilisateur d'entrer un mot de passe pour se connecter à tous vos serveurs. l'agent SSH est le mot-clé.
  • Avec les connexions SSH existantes, commencez XMove sur toutes les machines, recueillir toutes les interfaces graphiques et envoyer au client. Vous pouvez même écrire un peu MainWindow, avec des boutons pour chaque application, et lorsque vous cliquez dessus, l'exportation seule des applications, il semble qu'ils ont été lancées à partir de l'interface principale.

Autres conseils

supporte l'authentification AD RealVNC Enterprise Edition (~ 50 $ par bureau exporté ). Peut-être que vous pouvez simplement laisser les gens auth dans les applications de cette façon. FreeNX supporte l'authentification PAM afin que vous pourriez peut-être quelque chose de bidouille avec winbind, surtout si votre dist linux facilite la configuration AD facile.

Une dernière chose est en cours d'exécution dans vos applications VirtualBox qui peut fonctionner dans un en mode sans tête via RDP. Vous pouvez Authentifier contre PAM et donc winbind. Cela a aussi l'avantage de fenêtres fait pas mal au côté client via Remote Desktop qui est pré-installé ou facilement disponibles pour les fenêtres.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top