2017-01-12 4 views
0

Kerberos認証のネイティブJavaでは、システム資格java.security.krb5.kdcjava.security.krb5.realmを使用して、ユーザー資格情報の確認を求めるサーバーを指定します。 同じアプリケーションで異なるサーバーで認証する良い方法はありますか?同じJavaアプリケーションで異なるKerberos KDCで認証する

など。サーバーpeons.company.comではユーザーsmithを認証したいが、johndoeのユーザーはbigbosses.company.comになります。 System.setProperty()を使用してKDCを切り替えることもできますが、Java Kerberos実装が実際にサポートしているかどうかはわかりません。言うまでもなく、スレッド間の同期が必要で、一般的にハッキリを感じることはありません。

[私は別のサーバー設定でこれを解決することができるか、私はそれらをコントロールしていないが私に教えないでください。]

+0

...あなたにいくつかの例を得るでしょう、それは*プリンシパルを認証します。異なるKDCは異なる領域を意味します。したがって、あなたのユーザーの 'smith'は実際に' smith @ COMPANY.PEON'と 'johndoe @ COMPANY.VIP'と認証されなければなりません。 –

+0

BTW、どのようなKDC実装に接続していますか? - MIT、Microsoft Active Directory、 –

答えて

3

は再び読むOracle docs - あなたはこれらの2つのプロパティを設定する必要がありますの場合にのみ、完全なKerberos設定ファイルを指定することはできません。そして、それを注意してください...

を、これらのプロパティを設定する場合、krb5.confファイルない限り、何らのクロスレルム認証が 可能ではない、そう


をも提供されますふさわしいことは、これらのプロパティを忘れて、詳細なカスタム設定ファイルを指すことです。java.security.krb5.conf

Kerberos設定には、とりわけ

  • その特定のKDC とレルムのリスト(プライマリ、およびフェイルオーバーを任意で)
  • 王国(へのサーバーのマッピング、あなたは他の上のあなたの認証されたユーザーのためのKerberosサービスチケットを取得する必要がある場合サーバ)のレルム
  • 信頼関係(あなたも、リスト内の1つを定義する必要がありますので、デフォルトでは、B.COMPANY.NETからサーバーに接続しようとA.COMPANY.NETから校長は、最初のルートCOMPANY.NETにホップしなければならない)

* REALM` @すなわち `ユーザーMIT documentation for krb5.confは少し乾燥しているが、Googleは* Kerberosは*ユーザーを認証しません

関連する問題