Windows-Server-2003

Kerberos 和 IIS6:僅與特定使用者合作

  • December 30, 2009

我正在設置 Kerberos,但遇到了一些奇怪的問題。我正在用兩個使用者測試它,一個具有有效的 SPN 並且受委託進行委託(user1),另一個沒有有效的 SPN 並且不受委託進行委託(user2)。測試在伺服器和客戶端上執行。使用者設置在應用程序池級別。這就是它目前的工作方式

From the server:
Using IP to access Application running under user1: Negotiate and chooses NTLM
Using domain name to access Application running under user1: Kerberos
Using IP to access Application running under user2: Negotiate and chooses NTLM
Using domain name to access Application running under user2: Negotiate and chooses NTLM

From the client:
Using IP to access Application running under user1: Kerberos
Using domain name to access Application running under user1: Kerberos
Using IP to access Application running under user2:Logon Process:Kerberos, Unknown user name or bad password
Using domain name to access Application running under user2:  Logon Process:Kerberos, Unknown user name or bad password

是否有可能解決這個問題,以便我只需要為實際需要委派的使用者使用 setspn,但讓 kerberos/NTLM 與不需要委派的其他使用者一起工作?這樣我就可以將 setspn 用於需要委派的使用者帳戶,而無需配置它們就可以使用其他帳戶?似乎 Kerberos 包沒有找到通往伺服器的方法供使用者使用,因為當我在伺服器上進行測試時它正在使用 NTLM,但在我從客戶端進行測試時卻沒有。

委派不適用於 NTLM,並且要讓委派使用 Kerberos,您需要設置機器的 SPN 和(如果使用)用於託管應用程序池的服務帳戶。

通常,將 SPN 分配給託管應用程序的電腦名稱,以及用於與您的網站關聯的 IIS 應用程序池的“身份”選項卡的使用者帳戶。如果您的應用程序需要訪問其他電腦上的資源,同時模擬登錄到 IIS 應用程序的使用者,您通常需要在應用程序池的“身份”選項卡中使用非使用者(服務)帳戶。

只需要登錄和使用 IIS 應用程序的使用者不需要 SPN 和 Trusted for Delegation。

受信任的委託帳戶可以在沒有密碼甚至安全令牌的情況下模擬其他使用者帳戶。這是一項對安全至關重要的功能,永遠不應為普通使用者帳戶執行此操作。

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