0

Windows ネットワークを使用して URL を呼び出すには、UNIX マシンで kerberos を使用してログインする必要があります。Windows で useTicketCache=true を使用すると、すべて正常に動作します。UNIXボックスからこれを行うにはどうすればよいですか?チケットキャッシュを使用する代わりに、ユーザー/パスをJavaプログラムに渡しますか?

4

1 に答える 1

1

これはあなたが行くべき道ではありません。人間自身が Windows ログオンで TGT を取得する必要があります。TGT にアクセスし、KDC からサービス チケットを取得しません。Unix セットアップで認証の実行に winbind を使用していないため、事前設定された資格情報キャッシュにアクセスできない場合は、次の 3 つのオプションがあります。

  1. winbind を使用して AD で UNIX ユーザーを管理する
  2. UNIX を実行するkinit
  3. Usernameand/orPasswordCallbackを に渡しnew LoginContextます。

1か2がいいと思います。

オプション 2 は、Java から次のように機能します。

Runtime.exec("kinit " + upn);
// Obtain the input stream of the forked process
is.write(password);
// Check exit code

これで、資格情報キャッシュにネイティブで有効な TGT が作成されました。Java はこれをすぐに取得して、追加のサービス チケットを要求できます。

于 2012-11-14T21:29:36.667 に答える