Windows ネットワークを使用して URL を呼び出すには、UNIX マシンで kerberos を使用してログインする必要があります。Windows で useTicketCache=true を使用すると、すべて正常に動作します。UNIXボックスからこれを行うにはどうすればよいですか?チケットキャッシュを使用する代わりに、ユーザー/パスをJavaプログラムに渡しますか?
質問する
734 次
1 に答える
1
これはあなたが行くべき道ではありません。人間自身が Windows ログオンで TGT を取得する必要があります。TGT にアクセスし、KDC からサービス チケットを取得しません。Unix セットアップで認証の実行に winbind を使用していないため、事前設定された資格情報キャッシュにアクセスできない場合は、次の 3 つのオプションがあります。
- winbind を使用して AD で UNIX ユーザーを管理する
- UNIX を実行する
kinit
Username
and/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 に答える