4

Vanilla Krb5LoginModule が機能しており、cred を要求しています

これまでの控えめな使用法では、次のJAAS -> JGSS -> Kerberos -> Windowsように設定しましたKrb5LoginModule

Subject.doAs(
    new LoginContext(...)).login(),  // subject
    new MyPrivilegedAction()         // action
)

... 資格情報の入力を求められますが、アクションは成功しています。

TGT セッション キー ハックを使用すると、クレデンシャルのプロンプトを回避できます

ログイン モジュールにも追加し、 Windows 10 Credential Guard を使用せずuseTicketCache=trueに設定のセキュリティ上の危険を我慢した場合、資格情報の入力を求められにアクションが成功します。HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa\Kerberos\Parameters\AllowTgtSessionKey=1

Java 12 は、Windows でもデフォルトのネイティブ GSS-API ライブラリを提供します

Java 11.0.10では、Windowsでネイティブ GSS-API 実装を使用できる可能性が導入されましたが、デフォルトの実装は提供されませんでした。Java 12では、Windows SSPI にブリッジするGSS-API のネイティブ実装が追加されました。これにより、危険な.AllowTGTSessionKey

ネイティブの GSS-API の使用も機能し、cred のプロンプトが表示されます

ドキュメントにもかかわらず、Windows上のJava 15.0.2(OracleとOpenJDKの両方)では、 「Windowsにはよく知られているネイティブGSS-APIライブラリはありません」とまだ(現在は誤って)主張していますが、次のことができます。

  • システム プロパティを省略java.security.krb5.realmjava.security.krb5.kdます (私の AD 環境は単純なので、本格的な kr5.conf の代わりに使用します)。と
  • ご指定sun.security.jgss.native=trueください。

...そしてアクションは資格情報を求めますが、成功しています。

ただし、ネイティブは常に資格情報の入力を求めます

sun.security.jgss.native=true(Windows 上の JDK 15.0.2 で)JAAS -> JGSS -> Kerberos -> Windows使用すると、SSPI 経由で Wi​​ndows LSASS を使用して、JVM を実行しているユーザーの資格情報を取得しようとすることを期待できますか? それとも、これはネイティブGSS-API -> SSPIライブラリによって促進されるものではないのでしょうか。地上では情報が薄い!

4

0 に答える 0