web-dev-qa-db-ja.com

Kerberos、委任、およびSPNに関する混乱

私はすでに この質問をSOに投稿しました ですが、その性質はプログラミングとサーバー構成の間にあるので、ここでも再投稿します。


Kerberos委任を実行する概念実証アプリケーションを作成しようとしています。すべてのコードを記述しましたが、機能しているようです(認証は正常に行われています)が、結果のセキュリティコンテキストにはISC_REQ_DELEGATEフラグが設定されていません。

したがって、エンドポイントの1つ(クライアントまたはサーバー)が委任を禁止されている可能性があると思います。ただし、SPNに対して認証を行っていません。別のドメインユーザーに対して1つのドメインユーザーのみ。 InitializeSecurityContext()のSPNとして、「[email protected]」(サーバーアプリケーションが実行されているユーザーアカウント)を渡します。私が理解しているように、ドメインユーザーはデフォルトで委任が有効になっています。とにかく、私は管理者にチェックするように頼みました、そして「アカウントは機密であり、委任することができません」チェックボックスはオフになっています。

サーバーがネットワークサービスとして実行されていて、SPNを使用してサーバーに接続した場合、ADのコンピューターアカウントで[委任用のコンピューターを信頼する]チェックボックスをオンにする必要があることはわかっていますが(デフォルトではオフ)。 ...そうではありませんよね?またはそれは?

また、コンピュータアカウントのチェックボックスが設定されている場合、変更はすぐに行われますか、それともサーバーPCを再起動するか、しばらく待つ必要がありますか?

1
Vilx-

アプリケーションとKerberos委任を使用した私の経験では、サービスアカウント(アプリケーションの実行)には、委任を実行するサービス用に構成されたSPNが必要であり、委任に対して信頼できるように設定する必要があります(すべてのSPN、または特定のSPNのみ制約付き委任として知られています)。

3
commandbreak