文章編號: 327825 - 上次校閱: 2010年5月19日 - 版次: 13.0

新的解析度,對於當使用者屬於多個群組的 Kerberos 驗證的問題

系統提示本文適用於您使用的作業系統之外的作業系統。與您不相關的文章內容已停用。

在此頁中

全部展開 | 全部摺疊

徵狀

當使用者屬於多個群組時,該使用者可能會有問題與驗證或 「 群組原則 」 設定。下列 「 Microsoft 知識庫 」 文件描述更詳細地這些徵狀:

269643? (http://support.microsoft.com/kb/269643/ ) 因為連線至 IIS 的不足,無法緩衝區的運作不到網際網路總管 Kerberos 驗證
280380? (http://support.microsoft.com/kb/280380/ ) 緩衝區溢位弱點可能與延伸預存程序
這些文件所描述的現有解析度指示您修改 MaxTokenSize 登錄值。此解決方案中進行了改進。 如果您使用 [本文所述的 Hotfix 可能就不需要編輯預設 MaxTokenSize 值。

本文所述的 Hotfix 會取代此一節中所列出的微軟知識庫文件中所述的 Hotfix。

發生的原因

使用者不是能夠驗證 [Kerberos 語彙基元,因為在驗證期間產生的嘗試有固定的最大大小。例如遠端程序呼叫 (RPC) 傳輸和 HTTP 依賴 MaxTokenSize 值當他們配置緩衝區來進行驗證。在 Windows 2000 (原始發行版本) MaxTokenSize 值會為 8,000 個位元組。在 Windows 2000 Service Pack 2 (SP2) 和 Microsoft Windows Server 2003,MaxTokenSize 值會為 12,000 個位元組。

如果使用者超過 120 群組的成員會由 MaxTokenSize 值來決定的緩衝區並不夠大。如此一來使用者無法進行驗證,而且它們可能會收到"的記憶體不足 」 錯誤訊息。您套用本文所述的 Hotfix 之前新增至使用者帳戶每個群組會將這個緩衝區增加 40 位元組。

注意: 在許多情況下 Windows NTLM 驗證運作方式如預期般 ; 您可能看不到 Kerberos 驗證問題,而不需分析。 不過,套用群組原則設定的案例可能無法如預期般運作。

解決方案

附註Windows Server 2003]、 [Windows Vista]、 [Windows Server 2008] 和 [Windows XP 商用版包含此問題的修正程式。

服務套件資訊

如果要解決這個問題,請取得 Microsoft Windows 2000最新 Service Pack。如需詳細資訊,請按一下下列的文件編號,檢視 「 Microsoft 知識庫 」 中的文件:
260910? (http://support.microsoft.com/kb/260910/ ) 如何取得最新的 Windows 2000 Service Pack

Hotfix 資訊

一個支援的 Hotfix 現在已可從 Microsoft取得。不過,它只修正本文中所述此問題。請只在發生此特定問題的系統上套用。此 Hotfix 可能會接受其他測試。因此,如果這個問題不會對您造成嚴重影響,我們建議您等候下一個包含此 Hotfix 的Windows 2000 Service Pack。

如果要立即解決這個問題,請聯絡 Microsoft 客戶支援服務 」,以取得該 Hotfix。如需 Microsoft 客戶支援服務電話號碼及支援成本的相關資訊的完整清單,請造訪下列 Microsoft 網站]:
http://support.microsoft.com/contactus/?ws=support (http://support.microsoft.com/contactus/?ws=support)
附註 在特殊情況下通常會因支援電話所產生的費用可能就不收取如果 Microsoft 支援人員認為某特定更新程式可以解決您的問題。平常的支援成本將會套用到其他支援問題是所做不限定特定有問題的更新程式。此 Hotfix 的英文版在檔案屬性 (或更新版本的檔案屬性) 如下列表格中所列。這些檔案的日期和時間為 Coordinated Universal Time (UTC)。當您檢視檔案資訊時,會將它轉換為當地時間。若要到 UTC 與當地時間差異使用在 [日期及時間中項目控制台中的 [時區] 索引標籤]。
   Date         Time    Version         Size      File name
    -------------------------------------------------------- 
   26-Sep-2002  11:39   5.0.2195.6069   124,176   Adsldp.dll 
   26-Sep-2002  11:39   5.0.2195.5781   131,344   Adsldpc.dll 
   26-Sep-2002  11:39   5.0.2195.5781    62,736   Adsmsext.dll 
   26-Sep-2002  11:39   5.0.2195.6052   358,160   Advapi32.dll 
   26-Sep-2002  11:39   5.0.2195.6058    49,424   Browser.dll 
   26-Sep-2002  11:39   5.0.2195.6012   135,952   Dnsapi.dll 
   26-Sep-2002  11:39   5.0.2195.6012    96,016   Dnsrslvr.dll 
   26-Sep-2002  11:39   5.0.2195.5722    45,328   Eventlog.dll 
   26-Sep-2002  11:39   5.0.2195.6059   146,704   Kdcsvc.dll 
   05-Sep-2002  14:18   5.0.2195.6048   200,976   Kerberos.dll 
   21-Aug-2002  05:27   5.0.2195.6023    71,248   Ksecdd.sys 
   25-Sep-2002  15:01   5.0.2195.6072   507,664   Lsasrv.dll 
   25-Sep-2002  15:01   5.0.2195.6072    33,552   Lsass.exe 
   27-Aug-2002  11:53   5.0.2195.6034   108,816   Msv1_0.dll 
   26-Sep-2002  11:39   5.0.2195.5979   307,472   Netapi32.dll 
   26-Sep-2002  11:39   5.0.2195.5966   360,720   Netlogon.dll 
   26-Sep-2002  11:39   5.0.2195.6048   918,800   Ntdsa.dll 
   26-Sep-2002  11:39   5.0.2195.6025   389,392   Samsrv.dll 
   26-Sep-2002  11:39   5.0.2195.5951   129,296   Scecli.dll 
   26-Sep-2002  11:39   5.0.2195.5951   302,864   Scesrv.dll 
   26-Sep-2002  11:39   5.0.2195.5859    48,912   W32time.dll 
   04-Jun-2002  10:32   5.0.2195.5859    57,104   W32tm.exe 
   26-Sep-2002  11:39   5.0.2195.6052   126,224   Wldap32.dll

狀況說明

Microsoft 已確認<適用於>一節所列之 Microsoft 產品確實有此問題。 這個問題,首先已經在 Microsoft Windows 2000 服務套件 4年中獲得修正。

其他相關資訊

先前,如果使用者遇到這個問題,您必須調整 Kerberos MaxTokenSize 值繼續作業。如果要解決這個問題,您必須更新這個值在所有網域的工作站上。

如果您使用 [本文所述的 Hotfix 您沒有修改 MaxTokenSize 登錄值,在大多數情況下。但是,有您不必修改 MaxTokenSize 登錄值,套用此 Hotfix 之後,在一些情況。此 Hotfix 套用至所有網域控制站之後,使用下列公式,以判斷是否有修改 MaxTokenSize 值:
TokenSize = 1200 + 40 d + 8s
此公式使用下列值:
  • d: 一使用者為其成員的網域本機群組的數目加以外使用者的帳戶網域的萬用群組數目再加上 「 群組 」 的數量以安全性識別碼 (SID) 歷程記錄。
  • s: 安全性使用者是成員的全域群組的數目加上使用者的帳戶網域中的萬用群組數目。
  • 1200: 票證負荷估計的值。這個值可以依據 DNS 網域名稱的長度、 用戶端名稱和其他因素等因素而有所不同。
在委派使用 (比方說若使用者驗證到網域控制站) 的案例 Microsoft 建議您將語彙基元大小加倍。

如果您使用此公式來計算的語彙基元大小小於 12,000 個位元組 (預設大小),您沒有修改 MaxTokenSize 登錄值,在網域用戶端上。如果值超過 12,000 個位元組請參閱下列的 Microsoft 知識庫文件中,如何調整 MaxTokenSize 登錄值的說明:

263693? (http://support.microsoft.com/kb/263693/ ) [群組原則可能不會套用到屬於多個群組的使用者
如需有關如何取得對 Windows 2000 Datacenter Server Hotfix 的詳細資訊,按一下 [下列面的文件編號,檢視 「 Microsoft 知識庫 」 中的發行項]:
265173? (http://support.microsoft.com/kb/265173/ ) 資料中心程式和 Windows 2000 Datacenter Server 產品
備忘稿
  • 當您變更 MaxTokenSize 時,則您必須重新啟動電腦使變更生效。
  • 建議的最大值為 65535 十進位或十六進位 FFFF。MaxTokenSize 值指定固定的 Kerberos 票證接收緩衝區包含代表該帳戶是成員群組的 SID。稍後,本機安全性授權 (LSA) 服務會從這個 SID 緩衝區產生語彙基元。硬式編碼限制此語彙基元的可定義 SID 是 1,015 的客戶。如需詳細資訊,請按一下下列的文件編號,檢視 「 Microsoft 知識庫 」 中的文件:
    328889? (http://support.microsoft.com/kb/328889/ ) 多個 1,015 群組的成員的使用者可能會失敗登入驗證
因此,以上 1015年有效 SID 的 MaxTokenSize 值不會很有用。在下列公式:
MaxTokenSize = 1200 + 40 d + 8s
40 d 表示您必須為網域本機群組 SID 有 40 位元組。8s 表示 8 個位元組的網域通用/萬用群組 SID。因此,如果您 MaxTokenSize 值 0x0000FFFF (64K) 為您可能能夠緩衝處理大約 1600年網域本機群組 SID 或大約 8000 網域通用/通用] 群組 SID。如果您使用 [信任可以委派帳戶的每個 SID 緩衝區需求可能會加倍。在這些案例中您只可以儲存大約 800 網域本機群組 SID 的 64K MaxTokenSize 值使用時。但是,具有僅網域本機群組 SID 不實際的案例中。64 K 的值應該足夠即使的委派案例。此外,應用程式可能會出問題,如果語彙基元大小緩衝區包含超過 64 K。

如需詳細資訊按一下 [下面的文件編號,檢視 「 Microsoft 知識庫 」 中 「 文件]:
277741? (http://support.microsoft.com/kb/277741/ ) Internet Explorer 登入 Kerberos 的失敗因為至沒有足夠的緩衝區
313661? (http://support.microsoft.com/kb/313661/ ) 錯誤訊息: 「 逾時過期 」 發生於透過 TCP/IP 連線到 SQL Server 且 Kerberos MaxTokenSize 大於 0xFFFF

因為您可能有跨網域登入案例樹系中,值應該設定整個樹系所有 Windows 架構的系統上。因此,我們建議您 MaxTokenSize 值的最大值為 64 K。

當 SQL Server 用戶端上您時,可能會收到下列的錯誤訊息,就會發生這個問題:
無法產生 SSPI 內容
如果要解決這個問題,您必須設定 MaxTokenSize 登錄值,所有參與 Kerberos 驗證過程包括 SQL Server 用戶端的電腦。

這篇文章中的資訊適用於:
  • Microsoft Windows 2000 Server SP1
  • Microsoft Windows 2000 Service Pack 3
  • Microsoft Windows 2000 Server SP2
  • Microsoft Windows 2000 Advanced Server SP1
  • Microsoft Windows 2000 Advanced Server SP2
  • Microsoft Windows 2000 Advanced Server SP3
  • Microsoft Windows 2000 Professional SP1
  • Microsoft Windows 2000 Professional SP2
  • Microsoft Windows 2000 Service Pack 3
  • Microsoft Windows XP Professional
  • Microsoft Windows XP Professional 64-Bit Edition (Itanium)
  • Microsoft Windows XP Professional x64 Edition
  • Microsoft Windows Server 2003, Enterprise Edition for Itanium-based Systems
  • Microsoft Windows Server 2003 R2 Datacenter x64 Edition
  • Microsoft Windows Server 2003 R2 Enterprise x64 Edition
  • Microsoft Windows Server 2003 R2 Standard x64 Edition
  • Microsoft Windows Server 2003, Datacenter Edition (32-bit x86)
  • Microsoft Windows Server 2003, Datacenter Edition for Itanium-Based Systems
  • Microsoft Windows Server 2003, Datacenter x64 Edition
  • Microsoft Windows Server 2003, Enterprise Edition (32-bit x86)
  • Microsoft Windows Server 2003, Enterprise x64 Edition
  • Microsoft Windows Server 2003, Standard Edition (32-bit x86)
  • Microsoft Windows Server 2003, Standard x64 Edition
  • Windows Vista 商用入門版
  • Windows Vista 商用進階版
  • Windows Vista 旗艦版
  • Windows Vista 商用入門 64 位元版
  • Windows Server 2008 Datacenter without Hyper-V
  • Windows Server 2008 Enterprise without Hyper-V
  • Windows Server 2008 for Itanium-Based Systems
  • Windows Server 2008 Standard without Hyper-V
  • Windows Server 2008 Datacenter
  • Windows Server 2008 Enterprise
  • Windows Server 2008 Standard
  • Windows Web Server 2008
關鍵字:?
kbmt kbqfe kbhotfixserver kbsecurity kbwin2ksp4fix kbbug kbfix kbwin2000presp3fix kbwin2000presp4fix KB327825 KbMtzh
機器翻譯機器翻譯
重要:本文是以 Microsoft 機器翻譯軟體翻譯而成,而非使用人工翻譯而成。Microsoft 同時提供使用者人工翻譯及機器翻譯兩個版本的文章,讓使用者可以依其使用語言使用知識庫中的所有文章。但是,機器翻譯的文章可能不盡完美。這些文章中也可能出現拼字、語意或文法上的錯誤,就像外國人在使用本國語言時可能發生的錯誤。Microsoft 不為內容的翻譯錯誤或客戶對該內容的使用所產生的任何錯誤或損害負責。Microsoft也同時將不斷地就機器翻譯軟體進行更新。
按一下這裡查看此文章的英文版本:327825? (http://support.microsoft.com/kb/327825/en-us/ )
Microsoft及(或)其供應商不就任何在本伺服器上發表的文字資料及其相關圖表資訊的恰當性作任何承諾。所有文字資料及其相關圖表均以「現狀」供應,不負任何擔保責任。Microsoft及(或)其供應商謹此聲明,不負任何對與此資訊有關之擔保責任,包括關於適售性、適用於某一特定用途、權利或不侵權的明示或默示擔保責任。Microsoft及(或)其供應商無論如何不對因或與使用本伺服器上資訊或與資訊的實行有關而引起的契約、過失或其他侵權行為之訴訟中的特別的、間接的、衍生性的損害或任何因使用而喪失所導致的之損害、資料或利潤負任何責任。