Java / VNCのシングルサインオン
-
16-10-2019 - |
質問
バックグラウンド
私が取り組んでいるプロジェクトでは、いくつかの異なるサーバーでGUIアプリケーションを実行しています。ユーザーインターフェイスの類似性のため、OMIを単一の統合インターフェイスに組み合わせて調査しています。現在、これらのアプリケーションはすべてVNCを介してリモートで表示可能です。マスターディスプレイにカバーの下でいくつかのVNC視聴者を実行させ、これらのVNCセッションの周りにインターフェイスをラップして、ネイティブアプリケーションのように表示することにより、これを利用する予定です。
問題
私は、単一のサインオンソリューションをアーキテクテクティブするためのポインターを探しています。各アプリケーションの個々のログインを排除し、代わりにユーザーにUnified Displayのみにログインしてもらいたいです。それを行うと、個々のアプリのそれぞれに自動的にログインされます。
制約
- アプリケーションはすべて、Linuxで実行されているスイングベースのJavaアプリです。
- 認証は、Active Directoryを備えたWindows 2003サーバーマシンによって実行されます。
- カスタムビルドされたものよりも既製のソリューションを強くお勧めします。
アイデア
私の調査は私を指摘しました Kerberos と gssapi. 。 Kerberosのチケットベースのメカニズムは、タスクに適しているようです。
1つのトリッキーなビットは、これらのアプリケーションが常に実行されていることです。ユーザーがログインしたときに何らかの形で「伝える」ために統一されたディスプレイが必要です。これは、スタートアップでKerberosログインを実行する通常のKerberizedプログラムとは違います。
Kerberosを使用している場合、さまざまなアプリケーションサーバーにチケットを転送する方法がわかりません。それらを転送する標準的な方法はありますか? 「SCP」か何かを使用するだけですか?または、独自のソケットベースのネットワークプロトコルを開発し、Javaプログラムを互いに接続し、チケットをそのように転送しますか?
しかし、私は詳細に行き詰まってしまいたくありません。 「テクノロジーXを考えましたか?」などの一般的なアイデアさえも感謝しています。または「VNCの代わりにXYZを試してください、それはあなたのためにこれを行います。」
更新
ここで回答と説明で編集します...
とにかくいくつかの認証が行われなければならず、VNCは実行中のプログラムにのみエクスポートするので、VNCセッションでチケットを輸送できないと考えましたか?
はい、確かに。 Java + VNCは私たちが今持っているものです。アプリをリモートで表示するより良い方法がある場合、他の何かのためにVNCを変更できます。それらを書き直さずに、つまり。理想的な解決策は、それらを異なるクライアントとサーバーのピースに分離して、すべてのGUIコードをクライアントに入れることですが、それは5つ星の難易度であり、1つまたは2つ星が必要です。
2人のユーザーが同時にログインした場合、ケースを検討しましたか?彼らは同じアプリを見ますか?それともこれは禁止されますか?
ええ、私はそれを考えました。彼らは同じアプリを見るか、禁止されます。この特定のシステムに関する限り、どちらの解決策も大丈夫なので、これは大したことではありません。
ローカルホストでXサーバーを使用するだけで、クライアントアプリケーションウィンドウをエクスポートしましたか?
ええ、これは素晴らしいでしょう。これは、すでに実行されているアプリで行うことができますか?これらのアプリがすでに開始した後、これらのアプリに接続する必要があります。誰かが中央の視聴者を解雇したとき、私はそれらをオンデマンドで始めることができません。
解決
OKEY、私はこのリストを試してみます。考えましたか...
- ジャース? GSS APIを含める必要がありますが、最後に試したときは非常に面倒でした。
- とにかくいくつかの認証が行われなければならず、VNCは実行中のプログラムにのみエクスポートするので、VNCセッションではチケットを輸送できませんか?
- 埋め込まれたJava VNCクライアントを備えたブラウザベースのソリューション?少なくともIEはKerberos認証を実行することができます。他のブラウザやIEがそれを行う方法については知りません。
- 2人のユーザーが同時にログインした場合はケースですか?彼らは同じアプリを見ますか?それともこれは禁止されますか?
- ローカルホストでXサーバーを使用して、クライアントアプリケーションウィンドウをエクスポートするだけですか?
編集:その他の考慮事項:
- Xサーバーバリアントを使用する場合は、使用します xmove プログラムをXサーバーに移動します。
- プライベート/シークレットキーを使用してSSH認証を使用し、ユーザーが1つのパスフレーズを入力して、すべてのサーバーを接続できるようにすることができます。 SSHエージェントはキーワードです。
- 既存のSSH接続を使用して、すべてのマシンでXmoveを開始し、すべてのGUIを収集してクライアントに送信します。各アプリのボタンを使用して、小さなMainWindowを書くこともできます。クリックすると、アプリの1つだけをエクスポートするため、メインGUIから開始されたようです。
他のヒント
RealVNC Enterprise Edition 広告認証をサポートします(エクスポートされたデスクトップごとに〜50ドル)。おそらく、あなたは単に人々をそのようにアプリに承認させることができます。 FREENX 特にLinux Distが広告のセットアップを簡単にする場合、おそらくWinbindと一緒に何かをハッキングできるように、PAM認証をサポートします。
最後のことは、アプリを実行することです VirtualBox で実行できます ヘッドレスモード RDP経由。あなたはできる PAMに対して認証します したがって、ウィンビンド。これには、Windowsがプリインストールまたは容易に利用できるリモートデスクトップを介して、クライアント側にWindowsフレンドリーであるという利点もあります。