1

Active Directory (Kerberos SSO) に接続するために GSSAPI を使用する単純な Java アプリケーションを作成しました。

x と y の 2 つのレルムと KDC があります。

realm/KDC x でツールを実行すると、ツールは動作します。

realm/KDC y でツールを実行すると、ツールも動作します。

ツールを実行して、realm/KDC x (ログイン、ログアウト、ログイン、ログアウト) で 2 つの認証を実行すると、動作します。

realm/KDC y についても同じ結果です。

問題は、2 つのレルム/KDC を切り替えようとしているときです: ログイン x、ログアウト x、ログイン y、ログアウト y - 2 番目のものにログインしようとすると、例外がスローされます。

GSSException: メカニズム レベル: メッセージ ストリームが変更されました (41))

明確にするために-問題は、これら2つの間でアプリケーション全体を再起動せずに、2つの異なるレルム/ KDC(もちろん毎回1つ)を使用している場合にのみ発生します。

java/gssapi はどうにかしてレルムや krb チケットなどをキャッシュしていると思います。

問題は、このキャッシュを (アプリケーション全体を強制終了せずに) クリアするにはどうすればよいか、またはそのようなキャッシュ/静的変数がない場合、どうすれば機能させることができるかということです。

ありがとうございました!

4

1 に答える 1