[英]Single sign-on in Java / VNC
在我工作的項目上,我們在幾個不同的服務器上運行GUI應用程序。 由於他們的用戶界面相似,我正在研究將他們的OMI組合成一個統一的界面。 目前,這些應用程序都可以通過VNC遠程查看。 我計划通過讓主顯示器在封面下運行幾個VNC查看器並圍繞這些VNC會話包裝接口以使它們看起來像本機應用程序來利用這一點。
我正在尋找構建單點登錄解決方案的指針。 我希望消除每個應用程序的個人登錄,而只是讓用戶登錄統一顯示。 當他們這樣做時,他們將自動登錄到每個單獨的應用程序。
我的調查指向了Kerberos和GSSAPI 。 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。 這也具有通過遠程桌面在客戶端進行窗口友好的優點,遠程桌面是預先安裝的或隨時可用於窗口。
哦,我會嘗試開始這個清單。 你有沒有考慮過...
編輯:更多考慮因素:
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.