2016-10-19 18 views
1

私は、クライアントサーバー認証のためにLSAからTGTチケットを受け取るべきJavaクライアントを持っています。そのため、krbc_ {username}ファイルは使用しないでください。 kinit.exeでkrbc_ {username}を設定すると、期待どおりに機能しますが、私の目標ではないと言われています。しかし、LSAキャッシュ内のTGTは見つかりません。これは私がコンソールで見るものです。何のTGTのLSALSAキャッシュからTGTチケットを取得できません

のコードfragementが見つかりません

 try { 
     LoginContext lc = new LoginContext("Client", new LibsCallbackHandler(userTicket)); 

     lc.login(); 
     Subject s = lc.getSubject(); 
     logger.info(s); 

useTicketCacheはtrueに設定されています。私が使用しているダイアログでログインすると、Userticketが設定されます。ユーザー名とパスワードを使用すると、シングルサインオンでは十分ではない新しいチケットが届きます。私はまた、レジストリで 'allowtgtsessionkey'を1に設定しました。

答えて

0

これquestionは、あなたの問題への解決策が含まれているのは、答えを引用させてください:

Cの下で、現在のユーザー名のフォルダ内krb5cc *ファイルを削除します:\ユーザー

また、次のレジストリ値を1に設定する必要があります。

ます。HKEY_LOCAL_MACHINE \ System \ CurrentControlSet \コントロール\ Lsaに\ケルベロス\パラメータ

値の名前:AllowTGTSessionKey

値の種類:REG_DWORD

値:1

もう一つの問題は、することができチケットのkeyTypeに関連する場合、アプリケーションはサポートされていないkeyTypeを持つチケットを無視します。 たとえば、JavaからJCE拡張機能(Oracle版)をインストールせずに、Jaasで動作しないタイプ-18のLSAチケットがありました。 より広い範囲のkeyTypesをサポートするには、Oracle Java JCE拡張をインストールする必要があります(AES> = 256 ..のサポートが追加されています)。 OpenJDK Javaディストリビューションは、すべてのkeyTypes/AESをサポートしています。

あなたはまた、完全なケルベロスデバッグモードでアプリケーションを実行する必要があり

、それが提供する便利なログメッセージ:

java -Dsun.security.krb5.debug=true -Dsun.security.jgss.debug=true -jar appname.jar 
関連する問題