9

バックグラウンド

私が取り組んでいるプロジェクトでは、いくつかの異なるサーバーでGUIアプリケーションを実行しています。それらのユーザーインターフェイスの類似性のために、私はそれらのOMIを単一の統合されたインターフェイスに結合することを調査しています。現在、これらのアプリケーションはすべてVNCを介してリモートで表示できます。マスターディスプレイにいくつかのVNCビューアを隠して実行させ、これらのVNCセッションのインターフェイスをラップして、ネイティブアプリケーションのように見せることで、これを利用する予定です。

問題

シングルサインオンソリューションを設計するための指針を探しています。各アプリケーションの個別のログインを削除し、代わりにユーザーに統合ディスプレイのみにログインさせたいと考えています。そうすると、個々のアプリのそれぞれに自動的にログインします。

制約

  1. アプリケーションはすべて、Linux上で実行されるSwingベースのJavaアプリです。
  2. 認証は、ActiveDirectoryを備えたWindows2003Serverマシンによって実行されます。
  3. 私は、特注のソリューションよりも既成のソリューションを強く望んでいます。

アイデア

私の調査では、 KerberosGSSAPIに向かっていることがわかりました。Kerberosのチケットベースのメカニズムは、このタスクに適しているようです。

トリッキーな点の1つは、これらのアプリケーションが常に実行されていることです。ユーザーがログインしたときに何らかの形で「通知」するための統合ディスプレイが必要です。起動時にKerberosログインを実行する通常のKerberosプログラムとは異なります。

Kerberosを使用している場合、さまざまなアプリケーションサーバーにチケットを転送する方法がわかりません。それらを転送する標準的な方法はありますか?「scp」などを使用しますか?または、独自のソケットベースのネットワークプロトコルを開発し、Javaプログラムを相互に接続して、その方法でチケットを転送しますか?

でも、細部にこだわるのは嫌だ。「テクノロジーXを検討したことがありますか?」などの一般的なアイデアでもありがたいです。または「VNCの代わりにXYZを試してください。これが自動的に行われます。」


更新

ここで回答と説明を編集します...

とにかく何らかの認証を行う必要があり、VNCは実行中のプログラムにのみビューをエクスポートするため、VNCセッションはチケットを転送できないと考えましたか?

はい、確かに。Java+VNCは私たちが今持っているものです。アプリをリモートで表示するためのより良い方法があれば、VNCを別のものに変更することができます。それらを書き直さずに、つまり。理想的な解決策は、それらを別個のクライアントとサーバーに分割し、すべてのGUIコードをクライアントに配置することですが、それは5つ星の難しさであり、1つまたは2つ星が必要です。

2人のユーザーが同時にログインする場合を考えましたか?彼らは同じアプリを見ますか?それともこれは禁止されますか?

ええ、私はそれを考慮しました。同じアプリが表示されるか、禁止されます。この特定のシステムに関する限り、どちらのソリューションでも問題ないため、これは大したことではありません。

ローカルホストでXサーバーを使用して、クライアントアプリケーションウィンドウをエクスポートすることを検討しましたか?

ええ、これは素晴らしいでしょう。これは、すでに実行されているアプリで実行できますか?これらのアプリは、すでに起動した後で接続する必要があります。誰かが中央ビューアを起動したときに、オンデマンドでそれらを開始することはできません。

4

2 に答える 2

3

RealVNC Enterprise Editionは、AD認証をサポートしています(エクスポートされたデスクトップあたり最大$ 50)。おそらく、その方法で人々にアプリへの認証を許可することができます。FreeNXはPAM認証をサポートしているため、特にLinuxディストリビューションでADのセットアップが簡単な場合は、winbindと一緒に何かをハックすることができます。

最後に、 RDPを介してヘッドレスモードで実行できるVirtualBoxでアプリを実行します。PAMに対して認証できるため、winbindできます。これには、プレインストールされているか、Windowsですぐに利用できるリモートデスクトップを介して、クライアント側でWindowsに対応できるという利点もあります。

于 2011-01-29T16:53:55.720 に答える
2

さて、私はこのリストを始めようとします。考えたことはありますか...

  • JAAS?GSS APIを含める必要がありますが、前回試したときは非常に面倒でした。
  • とにかく何らかの認証を行う必要があり、VNCは実行中のプログラムにビューをエクスポートするだけなので、VNCセッションはチケットを転送できませんか?
  • Java VNCクライアントが組み込まれたブラウザベースのソリューション?少なくともIEはKerberos認証を実行できます。他のブラウザーについてはわかりませんが、IEがどのように認証を実行するかはわかりません。
  • 2人のユーザーが同時にログインする場合はどうなりますか?彼らは同じアプリを見ますか?それともこれは禁止されますか?
  • ローカルホストでXサーバーを使用し、クライアントアプリケーションウィンドウをエクスポートするだけですか?

編集:その他の考慮事項:

  • X Serverバリアントを使用する場合は、 Xmoveを使用してプログラムをXServerに移動します。
  • 秘密鍵/秘密鍵でSSH認証を使用し、ユーザーが1つのパスフレーズを入力してすべてのサーバーに接続できるようにすることができます。SSHエージェントがキーワードです。
  • 既存のSSH接続を使用して、すべてのマシンでXMoveを起動し、すべてのGUIを収集して、クライアントに送信します。各アプリのボタンを使用して小さなメインウィンドウを作成することもできます。クリックすると、アプリの1つだけがエクスポートされるため、メインGUIから開始されたように見えます。
于 2011-01-21T19:28:39.403 に答える