Windowsユーザーの資格情報を取得し、UNIXボックスのkerberosに接続して認証し、LDAPサーバーなどのサービスを使用できるようにするJAVAプログラムを作成しようとしています。
私が見つけたすべての例は、実行時にパスワードを要求する傾向があります。これは必要ありません。プログラムを実行し、「魔法の場合」im kerberos 認証できるようにしたいのです。
リンクと例は大歓迎です。
Windowsユーザーの資格情報を取得し、UNIXボックスのkerberosに接続して認証し、LDAPサーバーなどのサービスを使用できるようにするJAVAプログラムを作成しようとしています。
私が見つけたすべての例は、実行時にパスワードを要求する傾向があります。これは必要ありません。プログラムを実行し、「魔法の場合」im kerberos 認証できるようにしたいのです。
リンクと例は大歓迎です。
何週間にもわたる試行と Web クロールの後、Java EE アプリケーションで Kerberos を使用し、Windows Active Directory に対して認証することで、SSO のセットアップに成功しました。
JBOSS Negotiation と Spring Kerberos の両方が機能しました。ただし、両方のドキュメントのセットは、すぐに実行できるほど正確ではありません。どちらのソリューションも簡単に言えば...
ktpass の問題:
ktpass /out c:\service.keytab /mapuser userservice@TESTDOMAIN.SERVER.COM /princ HTTP/hostname@TESTDOMAIN.SERVER.COM /pass /ptype KRB5_NT_PRINCIPAL
setspn –A HTTP/hostname.testdomain.server.com userservice
最後に、すべてのテストの前に、kinit purge を使用してキャッシュされたチケットをクリアします。
また、SPN が重複していると、事態が悪化します。Windows Server 2008 の setspn -X はこれ (またはスクリプトの場合は google) を検出します。これを行うときに疑わしい場合は、毎回新しいサービス ユーザーとプリンシパル名でやり直してください。
これが誰かが私が経験した痛みを避けるのに役立つことを願っています.