Pregunta

Fondo

En el proyecto de trabajo que tiene en que las aplicaciones GUI que se ejecutan en varios servidores diferentes. Debido a sus similitudes de interfaz de usuario estoy investigando la combinación de sus OMIŠ en una única interfaz unificada. Actualmente estas aplicaciones son todos de forma remota a través de VNC visible. Tengo la intención de tomar ventaja de esto a través de la pantalla principal ejecutar varios visores VNC bajo las sábanas y se envuelve alrededor de una interfaz estas sesiones VNC para hacerlos aparecer como aplicaciones nativas.

Problema

Busco punteros de la arquitectura de un inicio de sesión único solución. Quiero eliminar la entrada individual de cada aplicación y en su lugar tienen conexión de los usuarios a sólo a la presentación unificada. Cuando lo hacen que a continuación se registran automáticamente en cada una de las aplicaciones individuales.

Restricciones

  1. Las aplicaciones son aplicaciones Java que se ejecutan en Linux. Basadas en Swing
  2. La autenticación se realiza mediante una máquina Windows 2003 Server con Active Directory.
  3. preferiría una solución fuertemente off-the-shelf a uno a medida.

Ideas

Mi investigación me ha apuntado hacia Kerberos y GSSAPI . mecanismo basado en tickets de Kerberos parece bien adaptado a la tarea.

Un poco complicado es que estas aplicaciones están siempre corriendo. Necesito la presentación unificada de alguna manera "decir" cuando el usuario ha iniciado sesión. No es que los programas normales Kerberizadas donde van a realizar un inicio de sesión Kerberos en el inicio.

No Si uso de Kerberos estoy seguro de cómo transferir las entradas a los distintos servidores de aplicaciones. ¿Hay una manera estándar para transferirlos? No sólo tiene que utilizar "SCP" o algo así? ¿O es que desarrollar mi propio protocolo de red basada en sockets y tienen los programas Java se conectan entre sí y de transferencia de entradas de esa manera?

Yo no quiero ser demasiado empantanado en los detalles, sin embargo. Te agradecería incluso las ideas generales como "¿ha considerado Tecnología X?" o "tratar XYZ en lugar de VNC, que lo hace por usted."


Actualizaciones

Voy a editar en las respuestas y aclaraciones aquí ...

¿Usted ha considerado que algunos de autenticación debe llevarse a cabo de todos modos y que VNC sólo se exporta el objeto de un programa en ejecución, por lo que una sesión VNC no puede transportar entradas?

Sí, en efecto. Java + VNC es lo que tenemos en este momento. Podría cambiar a cabo VNC para otra cosa si hay una mejor manera de ver de forma remota las aplicaciones. Sin volver a escribir ellos, es decir. La solución ideal sería separar en trozos de cliente y servidor distintas y poner todo el código de interfaz gráfica de usuario en el cliente, pero esa es la dificultad de 5 estrellas, y necesito de 1 o 2 estrellas.

¿Ha considerado el caso cuando dos usuarios inician sesión en el mismo tiempo? Van a ver la misma aplicación? ¿O será ésta prohibido?

Sí, me he considerado eso. O bien se verán la misma aplicación o será prohibido. Cualquiera de las soluciones está bien por lo que este sistema en particular va, así que esto no es un gran problema.

¿ha considerado simplemente utilizando un servidor X en su host local y exportar los clientes aplicaciones de Windows?

Sí, esto sería grande. ¿Es posible hacerlo con las aplicaciones ya se encuentra corriendo? Tengo que conectar a estas aplicaciones después de que ya han comenzado. No puedo comenzar a ellas en la demanda cuando los incendios Marcado por el visor principal.

¿Fue útil?

Solución

Okey, voy a tratar de empezar esta lista. ¿Ha considerado ...

  • JAAS? Debe incluir la API GSS, pero fue muy engorroso la última vez que lo probé.
  • que algunos de autenticación debe llevarse a cabo de todos modos y que VNC sólo se exporta el objeto de un programa en ejecución, por lo que una sesión VNC no pueden billetes de transporte?
  • una solución basada en navegador con un cliente Java VNC incorporado? Por lo menos el IE es capaz de llevar a cabo la autenticación Kerberos, no sé acerca de los otros navegadores, o cómo el IE hace eso.
  • el caso cuando dos usuarios inician sesión en el mismo tiempo? Van a ver la misma aplicación? ¿O será ésta prohibido?
  • simplemente utilizando un servidor X en su host local y exportar los clientes aplicaciones de Windows?

EDIT: Más consideraciones:

  • Cuando se utiliza la variante X Server, utilice XMOVE para mover los programas para el servidor X.
  • Se puede utilizar la autenticación SSH con claves privadas / secretas y dejar que el usuario introduzca una contraseña para conectar todos sus servidores. agente de SSH es la palabra clave.
  • Con las conexiones SSH existentes, se inicia XMOVE en todas las máquinas, recoger todas las interfaces gráficas de usuario y los envía al cliente. Incluso se podría escribir un poco MainWindow, con botones para cada aplicación, y cuando se hace clic, la exportación solamente una de las aplicaciones, por lo que parece que se han iniciado desde la interfaz de usuario principal.

Otros consejos

RealVNC Enterprise Edition autenticación soportes AD (~ $ 50 por escritorio exportados ). Tal vez usted puede simplemente dejar que la gente de autenticación en las aplicaciones de esa manera. FreeNX autenticación PAM soportes por lo que tal vez podría cortar algo juntos con winbind, especialmente si su dist Linux hace que la instalación de AD fácil.

Una última cosa se está ejecutando aplicaciones en un VirtualBox que puede funcionar en un sin cabeza modo a través de RDP. Puede la autenticación con PAM y por lo tanto winbind. Esto también tiene la ventaja de ser amigable ventanas en el lado del cliente de escritorio remoto a través de la cual está pre-instalado o están fácilmente disponibles para las ventanas.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top