增加 Kerberos 票證 MaxTokenSize 的影響

增加 Kerberos 票證 MaxTokenSize 的影響

最近,透過從 Netware 遷移到 Windows 檔案伺服器,我們最終創建了大量 AD 群組。我們現在在身份驗證和獲取資源存取方面遇到了一些問題。

經過一些初步故障排除後,我們發現網域管理員是太多群組的成員(最近計數為 397),且 Kerberos 票證大小已超過 12000 位元組(為 13783)(事件 ID 6)。我發現以下文章似乎準確地描述了發生的情況以及有關如何修復它的一些建議:

http://blogs.technet.com/b/surama/archive/2009/04/06/kerberos-authentication-problem-with-active-directory.aspx

目的是將註冊表中的 MaxTokenSize 限制提高到 65535。但是我找不到關於這會產生什麼影響的討論?長期目標是合理化群體數量的成長,但短期來看這似乎是個解決方案。過去是否有人有過這方面的經驗?

我們目前運行的是 Server 2008 域和林功能級別,所有 DC 均為 64 位元虛擬機器。

更新:因此,在閱讀了更多內容之後,我可以看到,在 Server 2012 中,MaxTokenSize 的預設值設定為 48000。這對我們來說似乎是一個明智的選擇。我似乎仍然找不到相關資訊的一件事是用戶擁有更大代幣可能產生的影響。有人建議這會增加 IIS 伺服器上的記憶體使用量,但有人知道 DC 和成員伺服器(即 32 位元 Citrix 伺服器等)上是否會出現這種情況?

答案1

許多組織很早就將其設定為 65535。有很多 Microsoft 知識庫文章推薦此操作。先前的建議是 100,000,直到 Microsoft 意識到該值不起作用,並將其修正為 65535。

如果將整合 Windows 驗證與 IIS 網站(例如 SharePoint)一起使用,則較大的令牌可能會導致驗證失敗。透過增加 http.sys 服務的 MaxRequestBytes 值可以輕鬆解決此問題。這是因為每個 http 請求中都包含帶有群組的 Kerberos 令牌。還有一個 IIS 設定可以提高整合身份驗證的效能,以便僅對第一個請求進行身份驗證。

我建議檢查您的群組並將其中一些群組轉換為通訊群組,除非它們絕對需要成為安全群組。即使最大令牌大小為 65535,一個帳戶也可能是多個群組的成員,以致無法登入。

答案2

這是最大限度令牌大小。如果需要,令牌只會消耗那麼多記憶體。這並不意味著所有 Kerberos 令牌始終為 48000 位元組。

這個問題通常只出現在擁有許多安全群組、並且已經多年累積的大型企業中。

在Windows2012中,使用者帳戶可以所屬的群組數量有一個新的硬限制:1,015。

如果您遇到 kerberos 令牌膨脹問題,請檢查 DOMAIN USERS 群組嵌套了多少個群組。這是一個不好的做法。

嘗試將網域使用者從所有不必要的群組的成員中刪除。

這裡有一篇很好的文章可供參考: https://blogs.technet.microsoft.com/shanecothran/2010/07/16/maxtokensize-and-kerberos-token-bloat/

相關內容