Windows
Windows 客戶端損壞授權標頭 (Kerberos) => IIS 400 (Bad Request)
我們在大約 5% 的 Windows(7 Pro 和 XP Pro,32 位和 64 位)客戶端電腦上面臨著奇怪的行為。這些電腦從 IIS 伺服器隨機獲取錯誤 - 400 Bad request。我們正在使用 Windows 域,這些客戶端正在嘗試通過 Kerberos 向 IIS 授權。
症狀:
- 客戶端嘗試通過 Internet Explorer 將 IIS 伺服器連接到需要身份驗證的站點 (Kerberos)。
- IIS 伺服器返回錯誤 400 錯誤請求。
- 在客戶端電腦“愉快地重新啟動”之前,錯誤不會消失。我們沒有找到其他方法來“修復”這種狀態。愉快地重新啟動意味著您可以多次重新啟動。有時它有效有時無效。如果它工作,它將安全工作,直到下一次重新啟動。如果它不安全地不工作,直到下一次重新啟動。:)
我們所知道的
- 我們正在使用更多組。所以我們的使用者通常有更大的 Kerberos TGT。MaxTokenSize 提高到 48000。
- 我們在受影響的客戶端上嗅探網路流量,發現客戶端發送了損壞的授權標頭。帶有 kerberos 授權標頭的部分被剪切 - 未正確結束。因此,來自 IIS 伺服器的響應是正確且合乎邏輯的。所以問題出在客戶端。
- 我們試圖在沒有運氣的受影響電腦上找到工作狀態和錯誤狀態之間的一些差異。
- 我們的網路中有更多的 IIS 伺服器。受影響的電腦在所有處於“錯誤狀態”的電腦上都有相同的問題。
- 希望我們的想法是正確的,Internet Explorer 正在使用 .NET Framework 進行 HTTP 請求和授權。所以可能原因是在.NET的某個地方?所有客戶端都使用版本 4。
誰能幫我們解開這個謎團?:)
解決了。Eset NOD32 Antivirus 版本 4正在修改某些電腦上的 HTML 授權標頭。禁用 Web 訪問保護後,一切都像魅力一樣。