Frage

Hintergrund

Bei dem Projekt, an dem ich arbeite, haben wir GUI -Anwendungen auf verschiedenen Servern. Aufgrund ihrer Benutzeroberflächen -Ähnlichkeiten untersuche ich die Kombination ihrer OMIS zu einer einzigen einheitlichen Schnittstelle. Derzeit sind diese Anwendungen über VNC remote zu sehen. Ich habe vor, dies zu nutzen, indem ich das Master -Display mehrere VNC -Zuschauer unter den Covers ausführen lassen und eine Schnittstelle um diese VNC -Sitzungen wickeln, damit sie wie native Anwendungen erscheinen.

Problem

Ich suche Hinweise für die Architektur einer einzelnen Sign-On-Lösung. Ich möchte die individuelle Anmeldung jeder Anwendung beseitigen und uns stattdessen nur bei der Unified Display anmelden. Wenn sie das tun, würden sie dann automatisch in jeder der einzelnen Apps angemeldet.

Einschränkungen

  1. Die Anwendungen sind alle auf Swing-basierte Java-Apps, die auf Linux ausgeführt werden.
  2. Die Authentifizierung wird von einem Windows 2003 -Servergerät mit Active Directory durchgeführt.
  3. Ich würde eine Off-the-Shelf-Lösung einem maßgeschneiderten Lösung vorziehen.

Ideen

Meine Untersuchung hat mich darauf hingewiesen Kerberos und GSSAPI. Kerberos 'ticketbasiertes Mechanismus scheint für die Aufgabe gut geeignet zu sein.

Ein kniffliges Stück ist, dass diese Anwendungen immer ausgeführt werden. Ich brauche das einheitliche Display, um sie irgendwie zu "sagen", wenn der Benutzer sich angemeldet hat. Es ist nicht wie normale kerberisierte Programme, bei denen er beim Start eine Kerberos -Anmeldung ausführt.

Wenn ich Kerberos verwende, bin ich mir nicht sicher, wie ich Tickets auf die verschiedenen Anwendungsserver übertragen soll. Gibt es eine Standardmethode, um sie zu übertragen? Verwende ich nur "SCP" oder so? Oder entwickle ich mein eigenes Socket-basiertes Netzwerkprotokoll und lasst die Java-Programme miteinander verbunden werden und Tickets auf diese Weise übertragen?

Ich möchte jedoch nicht zu sehr in die Details festgefahren werden. Ich würde mich sogar über allgemeine Ideen wie "Haben Sie sich an die Technologie X überlegen?" oder "Versuchen Sie es mit XYZ anstelle von VNC, das für Sie."


Aktualisierung

Ich werde hier in Antworten und Klarstellungen bearbeiten ...

Haben Sie nachgedacht, dass eine Authentifizierung sowieso stattfinden muss und dass VNC nur die Ansicht in ein laufendes Programm exportiert, sodass eine VNC -Sitzung keine Tickets transportieren kann?

Ja, in der Tat. Java + VNC ist das, was wir gerade haben. Ich könnte VNC für etwas anderes ändern, wenn es eine bessere Möglichkeit gibt, die Apps aus der Ferne anzusehen. Ohne sie neu zu schreiben, ist das so. Die ideale Lösung wäre, sie in verschiedene Client- und Server-Teile zu trennen und den gesamten GUI-Code in den Client zu setzen, aber das ist 5-Sterne-Schwierigkeitsgrad, und ich brauche 1- oder 2-Sterne.

Haben Sie den Fall berücksichtigt, wenn sich zwei Benutzer sich gleichzeitig anmelden? Werden sie dieselbe App sehen? Oder wird das verboten sein?

Ja, ich habe darüber nachgedacht. Sie werden entweder dieselbe App sehen oder sie wird verboten. Jede Lösung ist für dieses spezielle System in Ordnung, so dass dies keine große Sache ist.

Haben Sie überlegt, nur einen X -Server auf Ihrem lokalen Host zu verwenden und die Client -Anwendungen Windows zu exportieren?

Ja, das wäre großartig. Kann dies mit bereits laufenden Apps geschehen? Ich muss eine Verbindung zu diesen Apps herstellen, nachdem sie bereits begonnen haben. Ich kann sie nicht auf Anfrage starten, wenn jemand den zentralen Betrachter auferlegt.

War es hilfreich?

Lösung

Okey, ich werde versuchen, diese Liste zu starten. Hast du nachgedacht ...

  • Jaas? Sollte die GSS -API einschließen, war aber sehr umständlich, als ich sie das letzte Mal versucht habe.
  • Dass eine Authentifizierung sowieso stattfinden muss und dass VNC nur die Ansicht in ein laufendes Programm exportiert, sodass eine VNC -Sitzung keine Tickets transportieren kann?
  • Eine browserbasierte Lösung mit einem eingebetteten Java VNC -Client? Zumindest kann der IE die Authentifizierung von Kerberos durchführen, ich weiß nichts über die anderen Browser oder darüber, wie der IE das macht.
  • Der Fall, wenn sich zwei Benutzer sich in der gleichen Zeit anmelden? Werden sie dieselbe App sehen? Oder wird das verboten sein?
  • Verwenden Sie nur einen X -Server auf Ihrem lokalen Host und exportieren Sie die Client -Anwendungen Windows?

Bearbeiten: Weitere Überlegungen:

  • Verwenden Sie bei Verwendung der X Server -Variante Xmove Um die Programme auf den X -Server zu verschieben.
  • Sie können die SSH -Authentifizierung mit privaten/geheimen Schlüssel verwenden und den Benutzer ein Passphrase eingeben lassen, um alle Ihre Server zu verbinden. SSH Agent ist das Schlüsselwort.
  • Starten Sie mit den vorhandenen SSH -Verbindungen XMOVE auf allen Maschinen, sammeln Sie alle GUIs und senden Sie sie an den Client. Sie könnten sogar ein kleines Hauptwindow mit Schaltflächen für jede App schreiben und beim Klicken nur eine der Apps exportieren, so dass sie aus der Haupt -GUI gestartet wurden.

Andere Tipps

Realvnc Enterprise Edition Unterstützt die Anzeigenauthentifizierung (~ 50 USD pro exportierten Desktop). Vielleicht können Sie sich einfach auf diese Weise in die Apps einsetzen lassen. Freenx Unterstützt die PAM -Authentifizierung, sodass Sie vielleicht etwas mit Winbind zusammenhacken können, insbesondere wenn Ihr Linux Dist das AD -Setup erleichtert.

Eine letzte Sache ist die Ausführung Ihrer Apps in Virtualbox die in einem laufen können Kopfloser Modus über RDP. Du kannst gegen Pam authentifizieren und so Winbind. Dies hat auch den Vorteil, dass Sie über einen Remote-Desktop auf der Kunden mit Windows freundlich sind, der für Windows vorinstalliert oder leicht verfügbar ist.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top