Windows-Server-2008

雙跳視窗認證

  • February 6, 2015

在將憑據從使用者傳遞到 IIS,然後從 IIS 傳遞到 SQL 時,讓 Windows 身份驗證 (Kerberos) 工作時遇到問題。我已經為 SQL 設置了 SPN,並設置了 IIS 伺服器帳戶以允許委派。

如果我將 IIS 電腦帳戶設置為允許任何服務的委派,則它可以工作: 替代文字

但是,如果我為特定服務設置它,則不會傳遞憑據,並且在連接匿名使用者時出現錯誤:

替代文字

如您所見,我正在連接到 SQL Express 實例,並且我已經設置了許多 SPN 來嘗試解決這個問題,但其中任何一個都沒有運氣。顯然,它在允許任何服務時起作用的事實告訴我,這個服務列表中缺少其他東西,但我不知道是什麼!

對於可能遇到此問題的其他任何人,問題歸結為使用核心模式身份驗證,以及應用程序池帳戶的域使用者帳戶。

核心模式身份驗證為您完成了有關 IIS SPN 的大部分工作,但它希望您將系統帳戶用於應用程序池標識。如果您使用的是域帳戶,則需要為此使用者設置 HTTP SPN。然後,您需要在此使用者帳戶上委派對 SQL 的訪問,而不是在 IIS 電腦帳戶上,就像您通常使用核心模式身份驗證一樣。

引用自:https://serverfault.com/questions/193895