問題タブ [kerberos-delegation]
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.
120 問題
0
投票する
0
に答える
540
参照
kerberos - Java と Kerberos を使用して別のユーザーとしてプロセスを作成する
私は Java サーバー アプリケーション (サービスとして Windows で実行) に取り組んでおり、次のシナリオを実現したいと考えています。
- ユーザーがサーバーに POST 要求を発行します。ユーザーは Kerberos (SPNEGO、エンタープライズ環境の SSO) で認証されます。
- サービスは新しい Java プロセスを作成します。プロセスは、サービス ユーザー (偽装/委任) ではなく、認証されたユーザーとして実行する必要があります。
- 新しいプロセスは、ユーザーのセキュリティ コンテキストで実行する必要があります。Kerberos 認証を必要とする他のリモート システム (ファイル共有、他の Web サービスなど) と通信する必要があります。
実用的な概念実証:
- Kerberos 認証用のWaffleを使用した Spring Boot アプリケーション。
- 認証済みユーザーの新しいプロセスを作成します。JNAと Windows ネイティブ関数CreateProcessAsUserを使用します。
- プロセスは、認証されたユーザーとして作成されます。これは、Process Explorer ユーティリティで確認できます。
不足しているものと機能していないもの:
- プロセスは他の Kerberos チケットを要求できません (たとえば、InitializeSecurityContext() を呼び出して)。
- プロセスはネットワーク共有にアクセスできません。
- このプロセスは、Kerberos 認証を必要とする他の Web サービスと通信できません。
私の質問:
- コードに何が欠けているか、または何が間違っている可能性がありますか?
- 私が達成したいことを実装することさえ可能ですか?
サーバー - 認証 (短縮、Waffle から抽出):
サーバー - CreateProcessAsUser: