先前已因 Active Directory 群組過多導致 Kerberos Token 超過 MaxTokenSize,依微軟文件調整註冊表 HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Lsa\Kerberos\Parameters\MaxTokenSize 並重啟服務,解決了 SSMS 連線問題。但Web 應用程式(含 SSRS)仍無法透過 Windows 整合驗證連線。
當使用 Windows 整合驗證(Kerberos/NTLM)存取 Web 應用時,HTTP.sys 驅動程式會檢查兩個參數:
超大 Kerberos Token 會導致 `Authorization` 標頭超過預設值,HTTP.sys 直接拒絕請求並回傳錯誤,瀏覽器顯示「網頁無法顯示」(而非 404)。
原因:IP 存取時可能回退 NTLM(Token 較小),但後端連線 SQL Server 仍需 Kerberos 委派,Token 過大導致雙跳失敗。
路徑:HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\HTTP\Parameters
| 值名稱 | 類型 | 建議值(十進位) | 說明 |
|---|---|---|---|
| MaxTokenSize | DWORD | 65535 (或更大) | Kerberos Token 最大值,位於 Lsa\Kerberos\Parameters |
| MaxFieldLength | DWORD | 65535 | HTTP.sys 單一標頭欄位上限 |
| MaxRequestBytes | DWORD | 16777216 (16 MB) | HTTP.sys 整個請求標頭上限 |
MaxTokenSize。一次調齊三處上限,徹底解決「SSMS 好了但 Web 掛了」的經典斷層問題。