問題タブ [waffle]

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.

0 投票する
0 に答える
41 参照

kerberos - SSPI は、同じパスワードを持つアカウントを予期せず認証します

RMI とリモートで通信する Java クライアントとサーバー (Win7 ホスト上) を作成しました。クライアント ユーザーが資格情報を提供する必要なく (つまり、シングル サインオン)、サーバーがクライアント ユーザーを認証するようにします。Window のSSPIを利用するために、 Waffleライブラリを使用しています。

  • サーバーは、サービス アカウントdev\svc_serviceaccountを使用してhost1.dev.mydomain.comで実行されています
  • dev\svc_serviceaccountの SPN、test/host1.dev.mydomain.comを追加しました
  • クライアントは、host2.dev.mydomain.comdev\testuserとして実行されており、上記の SPN を使用するように構成されています
  • クライアントとサーバーの両方が Kerberos (ネゴシエートではない) SSPI プロバイダーを使用するように構成されている

すべてが期待どおりに機能し、サーバーはクライアントを正常に認証し、Wireshark を使用して、クライアントとドメイン コントローラーの間で Kerberos パケットが送信されていることを確認できます。

次に、サーバーを別のサービス アカウント ( dev\svc_serviceaccount2 ) として実行するように変更します。このサービス アカウントの SPN はありません。クライアントは引き続き実行され、元の SPN で構成されます。予想どおり、サーバーはクライアントの認証に失敗するようになりました。

最後に、dev\serviceaccount2 のパスワードをdev\serviceaccount1同じになるように変更し、上記の失敗のシナリオに従って実行します。ただし、サーバーはクライアントを正常に認証します!!

秘密鍵はパスワード ハッシュから派生していると思いますが、これにはまだ驚かされます。これがSSPIの期待される機能であるかどうかを誰でも確認できますか? コード (またはワッフル) に問題があるかどうかを判断しようとしています。それとも、環境要因がこれを引き起こしているのでしょうか? どんな助け/説明も大歓迎です。

0 投票する
1 に答える
47 参照

java - Waffle SSPI SPNEGO 相互フラグの設定方法

この問題を解決しようとしているときに、GSSAPI と SSPI クライアントの実装からの SPNEGO 要求 (KRB_AP_REQ) の違いに気付きました。

  • GSSPI を使用して、mutalFlag を False に設定します。

  • SSPI を使用すると、相互フラグが True に設定されます。

GSSAPI を呼び出す Java コードでは、必要に応じてフラグを明示的に true または false に設定できますが、Waffle / SSPI を使用してこれを行う方法が見つかりませんでした。

Github で Waffle コードを「mutual」で検索すると、ヒットは 1 つだけでした。ISC_REQ_MUTUAL_AUTH

Waffle/SSPI経由で相互フラグを明示的に設定する方法はありますか?

つまり、以下の GSSAPI コードに相当するもの: