簡體   English   中英

Java / VNC中的單點登錄

[英]Single sign-on in Java / VNC

背景

在我工作的項目上,我們在幾個不同的服務器上運行GUI應用程序。 由於他們的用戶界面相似,我正在研究將他們的OMI組合成一個統一的界面。 目前,這些應用程序都可以通過VNC遠程查看。 我計划通過讓主顯示器在封面下運行幾個VNC查看器並圍繞這些VNC會話包裝接口以使它們看起來像本機應用程序來利用這一點。

問題

我正在尋找構建單點登錄解決方案的指針。 我希望消除每個應用程序的個人登錄,而只是讓用戶登錄統一顯示。 當他們這樣做時,他們將自動登錄到每個單獨的應用程序。

約束

  1. 這些應用程序都是在Linux上運行的基於Swing的Java應用程序。
  2. 身份驗證由具有Active Directory的Windows 2003 Server計算機執行。
  3. 我非常喜歡現成的解決方案,而不是定制的解決方案。

思路

我的調查指向了KerberosGSSAPI Kerberos的基於票證的機制似乎非常適合這項任務。

一個棘手的問題是這些應用程序始終在運行。 當用戶登錄時,我需要統一顯示以某種方式“告訴”它們。它不像普通的Kerberized程序,它們將在啟動時執行Kerberos登錄。

如果我使用Kerberos,我不知道如何將票證轉移到各種應用程序服務器。 有轉移它們的標准方法嗎? 我只是使用“scp”或其他東西嗎? 或者我是否開發自己的基於套接字的網絡協議並讓Java程序相互連接並以這種方式傳輸票證?

不過,我不想讓細節陷入困境。 我甚至欣賞一般的想法,比如“你考慮過X技術?” 或者“嘗試XYZ而不是VNC,它會為你做到這一點。”


更新

我會在這里編輯答案和說明......

您是否認為必須進行某些身份驗證並且VNC僅將視圖導出到正在運行的程序,因此VNC會話無法傳輸票證?

確實是的。 Java + VNC就是我們現在所擁有的。 如果有更好的遠程查看應用程序的方法,我可以更換VNC。 沒有重寫它們,就是這樣。 理想的解決方案是將它們分成不同的客戶端和服務器部分,並將所有GUI代碼放入客戶端,但這是5星級的難度,我需要1星或2星。

您是否考慮過兩個用戶同時登錄時的情況? 他們會看到相同的應用程序嗎? 或者這會被禁止嗎?

是的,我考慮過了。 他們要么看到相同的應用程序,要么將被禁止。 就這個特定的系統而言,這兩種解決方案都沒問題,所以這不是什么大問題。

您是否考慮過在本地主機上使用X Server並導出客戶端應用程序窗口?

是的,這會很棒。 這可以通過已經運行的應用程序完成嗎? 我們必須在這些應用程序啟動后連接這些應用程序。 當有人解雇中央觀眾時,我無法按需啟動它們。

RealVNC Enterprise Edition支持AD身份驗證(每台導出桌面約50美元)。 也許你可以簡單地讓人們以這種方式進入應用程序。 FreeNX支持PAM身份驗證,因此您可能會與winbind一起破解某些內容,特別是如果您的linux dist使AD設置變得容易。

最后一件事是在VirtualBox中運行你的應用程序,它可以通過RDP以無頭模式運行。 您可以對PAM進行身份驗證 ,從而驗證 winbind。 這也具有通過遠程桌面在客戶端進行窗口友好的優點,遠程桌面是預先安裝的或隨時可用於窗口。

哦,我會嘗試開始這個清單。 你有沒有考慮過...

  • JAAS? 應該包括GSS API,但是在我上次嘗試它時非常麻煩。
  • 無論如何必須進行一些身份驗證,並且VNC只將視圖導出到正在運行的程序,因此VNC會話無法傳輸票證?
  • 基於瀏覽器的解決方案,帶有嵌入式Java VNC客戶端? 至少IE能夠執行kerberos身份驗證,我不知道其他瀏覽器,或IE如何做到這一點。
  • 兩個用戶同時登錄的情況? 他們會看到相同的應用程序嗎? 或者這會被禁止嗎?
  • 只在本地主機上使用X Server並導出客戶端應用程序窗口?

編輯:更多考慮因素:

  • 使用X Server變體時,使用Xmove將程序移動到X Server。
  • 您可以使用私有/密鑰的SSH身份驗證,並讓用戶輸入一個密碼來連接所有服務器。 SSH代理是關鍵字。
  • 使用現有的SSH連接,在所有計算機上啟動XMove,收集所有GUI並將其發送到客戶端。 您甚至可以使用每個應用程序的按鈕編寫一個MainWindow,當單擊時,只導出其中一個應用程序,因此它們似乎是從主GUI啟動的。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM