新しいSPNをKerberosドメインに追加するときに、SPNをユーザーにマッピングするオプションがあります。一般的には、統合Windows認証を使用してドメインに参加します。これにより、サービスの新しいコンピューターアカウントが作成されますが、ここでは、IWAなしでKerberosを使用してみます。
Kerberosがコンピューターホストのクライアントを認証する方法を十分に理解していると思います(私がやろうとしていることに対して十分です)-SPNをドメインユーザーに正確にマッピングすることは何をしますか?
編集:SPNが一般的にどのように機能するかについては尋ねていません。 SPNのドメインユーザーへのマッピングの詳細について具体的に質問します。
回答:
さらなる情報をいただければ幸いです。
ADユーザーアカウントは、サービスの実行に使用される場合にのみサービスプリンシパル名を持ちます。そのため、ほとんどのADユーザーアカウントにはサービスプリンシパル名がありません。 ADユーザーアカウントがSPNを持つ最も一般的な例は、そのユーザーアカウントがサービスアカウントとして使用され、MS SQLやIISなどを実行する場合です。ADユーザーアカウントがサービスの操作に使用されているが、SPNがない場合ADに登録されている場合、そのサービスはKerberosを使用できません。
対照的に、ADユーザーアカウントは常にserプリンシパル名を持ちます。
サービスプリンシパル名は、サービスが実行されるセキュリティコンテキストのセキュリティプリンシパル(ユーザーまたはグループ)に関連付けられています。 SPNは、クライアントアプリケーションとサービス間の相互認証をサポートするために使用されます。 SPNは、クライアントがサービスについて知っている情報から組み立てられます。または、Active Directoryなどの信頼できるサードパーティから情報を取得できます。サービスプリンシパル名はアカウントに関連付けられており、アカウントには多数のサービスプリンシパル名を付けることができます。
SPNがどの問題を解決するかさえわからない場合は、 MSDNドキュメントを参照 する必要があります。それは徹底的で完全です。
ギャップを少し埋めるには、サービスを.domainユーザーアカウントのコンテキストで実行する必要がある場合、そのユーザーアカウントにSPNが必要です。
これがよく見られるのは、IISアプリケーションプールです。ロードバランサーの背後にあるアプリケーションに複数のIISサーバーがある場合、SPNが割り当てられていない可能性があります。特定のサーバー、ただしドメインユーザーアカウント、およびIISアプリケーションプールはそのアカウントのコンテキストで実行されます。これは、認証されたユーザーに "委任」レベルのトークン、およびリモートコンピューター上の別のサービスにアクセスします。
認証済みユーザーのトークンを取得する方法は、必ずしも重要ではありません。これは、統合された認証トークン、またはユーザーが提供する資格情報(フォーム認証など)を使用して作成したトークンのいずれかです。制約付き委任を使用する場合、既存の認証トークンまたはパスワードなしでユーザーを偽装できます。必要なのはユーザー名だけです。
ただし、そのいずれかが機能するには、SPNが常に必要です。