2009-06-24 12 views
5

Kerberos認証を使用してLDAPサーバーにログインするために、JavaでGSSAPIを使用しています。私はケルベロスの初心者なので、これが明らかな質問であれば申し訳ありませんが、インターネット上ではっきりと分かるものは何も見つかりませんでした。JavaのKerberos認証 - javaの「ログイン」アクションは「kinit」と同じですか?

私は、次の手順を実行します。

  1. は、設定ファイルのパスにシステムプロパティ"java.security.auth.login.config"を設定することで、ログイン設定を定義します。構成の名前とケースのログインには、自己定義のコールバックハンドラ
  2. コールLoginContext.login()は(Subject.doAs()を使用することによって)被験体「であるこ​​とをふり」、および新しいInitialLDAPContextとを作成することによって、LDAPサーバーに接続し、成功しました適切な環境変数

今、私の問題は、どのステップがどのケルベロスのアクションと相関しているのか分かりませんか? ログイン操作後に私はTGTしか持っていないと言ってもいいですか?いつサービス固有のチケットを取得できますか?

おかげで、 Dikla

答えて

7

クラスのcom.sun.security.auth.module.Krb5LoginModuleは、Kerberosバージョン5プロトコル用のログインモジュールのSunの実装です。認証に成功すると、TGT(Ticket Granting Ticket)がサブジェクトのプライベート資格情報セットに格納され、Kerberosプリンシパルがサブジェクトのプリンシパルセットに格納されます。 (hereからの引用)

これはLoginContext.loginは、それらのそれぞれの後に実際にその中kinitと同じであることを意味し、我々はTGTを持っています。

Subject.doAs()で実行されたアクションに従って、サービスチケットを取得して後で使用します。

関連する問題