同じサーバー上でIISとSQLReportingServerを実行しています。IISはd\acct1
として実行され、SSRSはd\acct2
として実行されています。
最初に、HTTP/server.d.com
とd\acct1
の両方にSPNd\acct2
を登録し、ActiveDirectoryで制約のないKerberos委任用に両方を構成しました。
HTTP/server.d.com
のSPNが重複しているため、この構成はKerberosを破壊しました。
SSRSのSPNを削除すると、IISが機能します。IISのSPNを削除すると、SSRSが機能します。
同じサーバーで実行されている2つの異なるサービスアカウント間でSPNを共有して、重複するSPNを作成しないようにする方法はありますか?
または、ActiveDirectoryにiis.server.d.com
とreports.server.d.com
の2つのAレコードを作成し、ホストヘッダーを使用して、それぞれのサービス内で2つのエイリアスをまっすぐに保つ必要がありますか?
Kerberos委任がどのように機能するかを調査したところ、いいえ、同じボックスのサービスアカウント間でSPNを共有することはできません。
サーバーに2番目のIPアドレスをプロビジョニングし、IISを1つのIPアドレスに、SSRSを別のIPアドレスにマッピングすることで問題を解決しました。
次に、サービスを指すためにDNSに2つの新しいAレコードを作成しました(Cレコードは使用しないでください。Kerberos委任では信頼できません)。 iis.server.d.com
はIIS IPアドレスを指し、ssrs.server.d.com
はSSRSIPを指します。
最後に、d\acct1
とd\acct2
の両方のすべてのSPNを削除し、SPNをそれぞれHTTP/iis.server.d.com
とHTTP/ssrs.server.d.com
として再割り当てしました。
さらに、 ADSIEditfarを使用してSPNを編集する方が、setspn
コマンドラインを使用するよりも簡単であることがわかりました。