9

Active Directoryでシングルサインオンが必要なJava EE Webアプリケーションを実行しています。シングルサインオンの目的でJava EE Webアプリケーションで現在のWindowsユーザーを取得する

このアプリケーションでは、ユーザ名とパスワードの入力を求められなくなります。認証プロセスでは、現在Windowsにログオンしているユーザーを取得する必要があります。ユーザーがいれば、Active Directoryに照会して、そのログオンユーザーの役割を取得する必要があります。これはWindows以外のユーザーは除外しますが、これは内部アプリケーションであり、すべてのクライアントはWindowsを使用しています。

2つのJava EE WebアプリケーションでSSOを実装する必要があります。 1アプリケーションはGlassFish v2.1.1(JDK 1.6)で実行され、もう1つはTomcat(JDK 1.5)で実行されます。

私の主な問題は、現在のWindowsログオンユーザーを取得する方法です。

私はすでにJAASKerberosに出会っています。私が間違っているなら、親切に私を修正してください。私の理解では、これらは認証プロトコルであり、ユーザーにログオンしている現在のウィンドウを取得する機能はありません。

私はすでに以下を試しましたが、私はいつもnullまたはサーバー自身のユーザー名を取得しています。

  1. System.getProperty("user.name");
  2. new com.sun.security.auth.module.NTSystem().getName();
  3. request.getUserPrincipal().getName();
  4. System.getenv("USERNAME");
  5. Tomcatの
  6. でJCIF NTLM HTTP認証
  7. LoginContextの

私は、任意の提案を開いています。

+1

クライアントコンピュータまたはサーバーコンピュータにログオンしているユーザーが必要ですか? –

+0

私は、クライアントマシン上のログオンしたユーザーを希望します。ありがとう。 – Amy

答えて

2

SPNEGOは、統合Windows認証を提供するサーブレットフィルタを提供するオープンソースプロジェクトです。

あなたの組織では、Javaベースの のWeb /アプリケーションサーバーを使用して、あなたはあなたではなく、Javaサーブレット フィルターを持っているでしょう 代わりに、認証プロトコルとしてNTLM のケルベロス/ SPNEGOを好む、と 場合(JSR-53)コンテナ固有の 認証モジュール(JSR-196)の代わりに のSSI(ユーザー名/パスワードなしの プロンプト)を希望する の場合は、このプロジェクトの内容は となる場合があります。

TomcatGlassfishの両方を設定する手順があります。

+1

ありがとう、私は今SPNEGOを試しています。 :) – Amy

0

JCIFS NTLMはno longer supportedです。私の現在のプロジェクトでは、previosuly推奨としてSPNEGOを使用しています。

オプション1、2 & 3はあなたのサーバーのユーザーを取得しようとします - あなたは、このコードは、クライアント・マシン(ヒント - それはできない)と相互作用することができる方法を&を実行している場合を考えるを持っている場合があります

+0

ありがとう、私は今SPNEGOを試しています。 :) – Amy

4

WAFFLEは、このための最適なソリューションです。 Kerberosの設定は必要ありません。

関連する問題