- - PR -
Windows2000およびWindowsXPにおけるKerberos認証について
1
投稿者 | 投稿内容 |
---|---|
|
投稿日時: 2004-09-14 09:48
件名に関して質問させていただきます。
kerberos認証を使用するJavaアプリケーションを作成しています。 KDCはWindows2000です。 JDKは1.4.2_05です。 Windows2000では問題なく動作していますが、WindowsXPでuseTicketCacheが効かないのか IDおよびパスワードの入力を促されます。Windows2000と同じ動作にしたいのですが、 何か情報がありましたらご教授ください。 なお、促されるままに入力を行えば、コンテキストの取得はできます。 やっていること 1.jreのlib/securityにjaas.confおよびkrb5.confを配置 --jaas.conf SampleClient { com.sun.security.auth.module.Krb5LoginModule required useTicketCache=true; }; --krb5.conf [libdefaults] default_realm = TEST.LOCAL default_tkt_enctypes = des-cbc-md5 ; or des-cbc-crc default_tgs_enctypes = des-cbc-md5 ; or des-cbc-crc [realms] TEST.LOCAL = { kdc = kdcserver.test.local:88 } 2.クラスを作成 --KerberosClient.java import javax.security.auth.Subject; import javax.security.auth.login.LoginContext; import javax.security.auth.login.LoginException; import com.sun.security.auth.callback.TextCallbackHandler; public class KerberosClient { public static void main(String[] args) { LoginContext lc = null; try { lc = new LoginContext("SampleClient", new TextCallbackHandler()); lc.login(); } catch (LoginException le) { le.printStackTrace(); System.out.println("e: " + le) ; } Subject mySubject = lc.getSubject(); System.out.println(mySubject.getPrincipals().toString()); } } 3.実行 以下のVM引数つきで2.のクラスを実行 -Djava.security.auth.login.config=C:/j2sdk1.4.2_05/jre/lib/security/jaas.conf 4.結果 --Windows2000 System.out.println(mySubject.getPrincipals().toString());が実行され testuser@TEST.LOCALが表示される。 --WindowsXP ID、パスワードの入力を促される。促されたとおりに入力すれば、Windows2000と 同様の状態になる。誤ったID、パスワードを入力すると、Exception。 以上 > 追加情報です。 Etherealでパケットをとってみました。 Windows2000の場合、TGS-REQが起こります。XPの場合、起こりません。 # やはり、useTicketCacheが効いていないのでしょうか。。。 XP+JavaでTGTの提出ができている方がいらっしゃいましたら、 ご助言ください。 以上 [ メッセージ編集済み 編集者: ゆいたん 編集日時 2004-09-22 15:22 ] |
|
投稿日時: 2004-09-24 18:21
継続調査でわかったこととそれに対して行ったことを記述します。
Windowsのリソースキットのkerbtray.exeでKerberosチケットの 違いを調べました。違いはKey Encryption Typeで、プログラムが 動くほう(Windows2000)は[eType 0]、動かないほう(windowsXP)が [RSADSI RC4-HMAC]でした。Internetをいろいろ調べたところ、 暗号強度の違いということがわかりました。 それではということでkrb5.confを変更しました。 default_tkt_enctypes = rc4-hmac ; or rc4-hmac-exp default_tgs_enctypes = rc4-hmac ; or rc4-hmac-exp しかし結果は変わりませんでした。 設定がまずいのでしょうか。それともそもそも128bit暗号化だと この手法自体がNGなのでしょうか。 # XPの暗号強度を下げるやりかたがわかれば試すんですが。。。 何か情報がありましたら、よろしくお願いいたします。 |
1