
在我的網站中,我有一個不允許匿名存取的資料夾。它被設定為使用整合 Windows 驗證,因為它位於 AD 網域中。登入在 Firefox、Chrome、甚至 Safari 中都可以正常登錄,但在 IE8 中則不行。以前有人遇到過這種情況嗎?我似乎找不到其他人有類似的問題,當然,除了在所有瀏覽器中登入失敗的情況之外。
答案1
這很可能是由於某處 SPN 損壞造成的。
我懷疑非 Microsoft 瀏覽器不支援 Kerberos(或至少不採用與 IE 相同的方式)。
這意味著 IE 可能正在嘗試 Kerberos 登錄,而其他瀏覽器很可能正在使用 NTLM。
如果 http/www.example.com 或 host/www.example.com 存在 SPN,並且它不屬於運行應用程式集的帳戶,那麼這就是發生此類中斷的一個很好的理由。
在 Windows 2008 或更高版本上:
SETSPN -X
將檢查重複項;SETSPN -Q http/www.example.com
將查找該特定 SPN 的所有者。
解決您的 SPN 問題,您可能就能修復 IE 登入被破壞的問題。
其他指南可能會告訴您在 IE 進階屬性中停用整合 Windows 驗證;這是一個愚蠢的舉動,它破壞了 Kerberos 的一切並掩蓋了問題。
更多的這裡。
答案2
這是在傳遞一條評論時提到的,但我想特別指出它,以防其他人發現它有用。我遇到了同樣的問題,我可以透過更改應用程式集區標識來解決它。這可以在給定應用程式集區的“高級設定”下找到。
有人將此值設為“AppPoolIdentity”,但我必須將其設定回“NetworkService”才能解決問題。
(我嘗試發布圖像,但顯然我需要更多聲譽。如果有人讚成這個答案,那麼我可以添加圖像。)
答案3
損壞的 SPN 答案似乎是正確的。這表示如果您希望正確設定 Kerberos,您可能需要向 IT/IS 部門指出問題。
我不推薦「停用啟用整合 Windows 驗證」解決方案,因為它需要普通使用者進入並點擊他們甚至可能無權更改的內容,具體取決於管理員如何設定 IE。
如果Kerberos 設定沒有很快修復,更靈活的解決方案是轉到IIS 中的應用程序,單擊“身份驗證”,突出顯示“Windows 身份驗證”行(應將其標記為“已啟用”,其他所有內容均已停用),然後然後按一下右側的「提供者...」連結。可能會有兩個條目,“Negotiate”和“NTLM”,其中“Negotiate”位於頂部。將 NTLM 移至頂部。雖然這會強制您的網站使用 NTLM(有安全性風險),但如果 Kerberos 不可用,這是唯一的選擇。
答案4
Chrome 提示輸入一次密碼並成功。
IE 提示 3 次輸入密碼,然後收到 401 未經授權。
我的問題最終是 IE 和 Chrome 都提示我輸入兩個不同伺服器的憑證。提示輸入憑證的原因可能是由於上週更改了密碼。
鉻合金提示我輸入我的網域帳戶。 我的域名\我的使用者ID
但IE提示我ThisServerUrl.com\MyUserId (這當然失敗了,因為伺服器上不存在該用戶,但更糟的是——URL 與伺服器名稱無關——M$ 你在想什麼???)
希望這能幫助下一個遇到相同問題的可憐人。