問題タブ [jgss]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - トークン交換中の KrbException エラー
デフォルトのOracleサンプルクライアントとサーバーコードをテストしています:
http://pastebin.com/FjGMGwmN
Linuxでこの奇妙なエラーが発生しました(Windowsでは別のエラーです。別の質問を開きます):
KrbException: 無効な引数 (400) - AP REP を復号化するための適切なタイプのキーが見つかりません - HMAC SHA1-96 を使用する AES256 CTS モード
修正方法の情報が見つかりません:(
java - Java 12 の「Windows のデフォルトのネイティブ GSS-API」は、JVM を実行しているユーザーの Krb5 プリンシパルを使用して JAAS で SSO をサポートできますか?
Vanilla Krb5LoginModule が機能しており、cred を要求しています
これまでの控えめな使用法では、次のJAAS -> JGSS -> Kerberos -> Windows
ように設定しましたKrb5LoginModule
。
... 資格情報の入力を求められますが、アクションは成功しています。
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.realm
しjava.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 経由で Windows LSASS を使用して、JVM を実行しているユーザーの資格情報を取得しようとすることを期待できますか? それとも、これはネイティブGSS-API -> SSPI
ライブラリによって促進されるものではないのでしょうか。地上では情報が薄い!
java - Krb5LoginModule または LdapLoginModule を使用しますか?
これがばかげた質問である場合は申し訳ありません。ユーザーが存在するか、承認されているかを確認したい場合、LdapLoginModule を使用する必要がありますか? ユーザーが作業を行うためのチケットを持っているかどうかを確認したい場合、Krb5LoginMoudle を使用しますか?
よろしく、ジェムラグ