Active Directory でのシングル サインオンを必要とする Java EE Web アプリケーションを実行しています。
アプリケーションはユーザー名とパスワードを要求しなくなります。認証プロセスでは、現在 Windows にログオンしているユーザーを取得する必要があります。ユーザーを取得したら、Active Directory にクエリを実行して、ログオンしているユーザーのロールを取得する必要があります。これにより Windows 以外のユーザーが除外されることは承知していますが、これは内部アプリケーションであり、すべてのクライアントが Windows を使用しています。
2 つの Java EE Web アプリケーションに SSO を実装する必要があります。1 つのアプリケーションは GlassFish v2.1.1 (JDK 1.6) で実行され、もう 1 つのアプリケーションは Tomcat (JDK 1.5) で実行されます。
基本的に私の主な問題は、現在の Windows ログオン ユーザーを取得する方法です。
私はすでにJAASとKerberosに出会いました。私が間違っている場合は、親切に修正してください。私の理解では、これらは認証プロトコルであり、現在のウィンドウにログオンしているユーザーを取得する機能はありません。
私はすでに次のことを試しましたが、常にnull
サーバー自身のユーザー名を取得しています。
System.getProperty("user.name");
new com.sun.security.auth.module.NTSystem().getName();
request.getUserPrincipal().getName();
System.getenv("USERNAME");
- Tomcat での JCIF NTLM HTTP 認証
- ログインコンテキスト
私はどんな提案にもオープンです。