Одиночный вход в Java / VNC
-
16-10-2019 - |
Вопрос
Фон
По проекту, над которым я работаю, у нас есть приложения GUI, работающие на нескольких разных серверах. Из -за их сходства пользовательского интерфейса я исследую, объединяя их OMIS в один унифицированный интерфейс. В настоящее время все эти приложения все сдаленно просмотрены через VNC. Я планирую воспользоваться этим, заставляя мастер -дисплей запустить несколько зрителей VNC под обложками и обернуть интерфейс вокруг этих сеансов VNC, чтобы они выглядели как нативные приложения.
Проблема
Я ищу указатели для архитекции одного решения для регистрации. Я хочу устранить индивидуальный вход каждого приложения и вместо этого попросить пользователей входить только на унифицированный дисплей. Когда они это сделают, они будут автоматически войти в систему для каждого из отдельных приложений.
Ограничения
- Все приложения представляют собой приложения Java на основе свинга на Linux.
- Аутентификация выполняется сервером Windows 2003 с Active Directory.
- Я бы настоятельно предпочел готовое решение, созданному на заказ.
Идеи
Мое расследование указало мне на Kerberos а также GSSAPI. Анкет Механизм на основе билетов Kerberos кажется хорошо подходящим для этой задачи.
Одним из слоев является то, что эти приложения всегда работают. Мне нужен унифицированный дисплей, чтобы каким -то образом «рассказать» им, когда пользователь вошел в систему. Это не похоже на обычные программы Kerberized, где они выполнят логин Kerberos при запуске.
Если я использую Kerberos, я не уверен, как перенести билеты на различные серверы приложений. Есть ли стандартный способ их перевести? Я просто использую "SCP" или что -то в этом роде? Или я разрабатываю свой собственный сетевой протокол на основе сокетов и проведу программы Java подключаться друг к другу и передавать билеты таким образом?
Я не хочу слишком увязнуть в деталях. Я бы признателен даже в таких общих идеях, как «Вы считали технологией X?» или «Попробуйте XYZ вместо VNC, это делает это для вас».
Обновления
Я редактирую ответы и разъяснения здесь ...
Считали ли вы, что какая -то аутентификация должна иметь место в любом случае, и что VNC экспортирует только просмотр программы бега, поэтому сеанс VNC не может транспортировать билеты?
Да, в самом деле. Java + VNC - это то, что у нас сейчас есть. Я мог бы изменить VNC для чего -то другого, если есть лучший способ удаленно просмотреть приложения. Не переписывая их, это так. Идеальным решением было бы разделить их на отдельные кусочки клиента и сервера и поместить весь код графического интерфейса в клиент, но это 5-звездочная сложность, и мне нужно 1- или 2-звездочное.
Рассматривали ли вы случай, когда два пользователя входят в систему в то же время? Увидят ли они то же самое приложение? Или это будет запрещено?
Да, я это рассмотрел. Они либо увидят то же приложение, либо оно будет запрещено. Какое -то решение в порядке, что касается этой конкретной системы, так что это не имеет большого значения.
Рассмотрели ли вы просто использовать X -сервер на вашем локальном хосте и экспортировать приложения клиентов Windows?
Да, это было бы здорово. Можно ли это сделать с уже сдержанными приложениями? Я должен подключиться к этим приложениям после того, как они уже начали. Я не могу начать их по требованию, когда кто -то запускает центрального зрителя.
Решение
Окей, я постараюсь начать этот список. Вы рассмотрели ...
- Яс? Должен включать GSS API, но был очень громоздким, когда я в последний раз попробовал его.
- что какая -то аутентификация должна иметь место в любом случае, и что VNC экспортирует представление в программу бегущей, поэтому сеанс VNC не может транспортировать билеты?
- Решение на основе браузера со встроенным клиентом Java VNC? По крайней мере, IE может выполнить аутентификацию Kerberos, я не знаю о других браузерах или о том, как это делает IE.
- Случай, когда два пользователя входят в систему в то же время? Увидят ли они то же самое приложение? Или это будет запрещено?
- Просто используя X -сервер на вашем локальном хосте и экспортировать приложения клиентов Windows?
Изменить: больше соображений:
- При использовании варианта X Server используйте Xmove Перемещать программы на X -сервер.
- Вы можете использовать аутентификацию SSH с частными/секретными клавишами и позволить пользователю ввести одну пароль для подключения всех ваших серверов. Агент SSH является ключевым словом.
- С существующими SSH -соединениями запустите XMove на всех машинах, собирайте все графические интерфейсы и отправьте их клиенту. Вы могли бы даже написать немного Mainwindow, с кнопками для каждого приложения, и при нажатии, экспортируйте только одно из приложений, поэтому кажется, что они были начаты с основного графического интерфейса.
Другие советы
Realvnc Enterprise Edition Поддерживает аутентификацию AD (~ 50 долларов за экспортируемый рабочий стол). Возможно, вы можете просто позволить людям авторивать приложения таким образом. Freenx Поддерживает аутентификацию PAM, чтобы вы могли бы взломать что -то вместе с WinBind, особенно если ваш Linux Dist облегчает настройку рекламы.
Последнее, что запускает ваши приложения в VirtualBox который может работать в Безголовный режим через RDP. Вы можете Аутентификация против Пэм И, таким образом, Уинбинд. Это также имеет преимущество в том, что Windows Friendy на стороне клиента через удаленный рабочий стол, который предварительно установлен или легко доступен для Windows.