Potíže s ověřováním pomocí protokolu Kerberos, pokud uživatel patří do více skupin

Podpory pro systém Windows Vista Service Pack 1 (SP1) končí ve 12. července 2011. Chcete-li pokračovat v přijímání aktualizací zabezpečení pro systém Windows, zkontrolujte, zda že používáte systém Windows Vista s aktualizací Service Pack 2 (SP2). Další informace naleznete na této webové stránce společnosti Microsoft: končí podpora některých verzí systému Windows.

Příznaky

Pokud uživatel patří do více skupin, že uživatel může mít problémy s ověřováním nebo pomocí nastavení Zásady skupiny. Tyto příznaky podrobněji jsou popsány v následujících článcích znalostní báze Microsoft Knowledge Base:

269643 ověřování protokolem Kerberos Internet Explorer nefunguje nedostatečné vyrovnávací paměti připojení ke službě IIS

280380 zneužití přetečení vyrovnávací paměti s rozšířené uložené procedury
2020943 "HTTP 400 - Chybný požadavek (hlavičky požadavku příliš dlouhý)" Chyba v Internetová informační služba (IIS)
Řešení popsané v těchto článcích dá pokyn k změnit hodnotu registru MaxTokenSize. Toto řešení byl proveden zlepšení. Pokud použijete opravu hotfix, která je popsána v tomto článku, pravděpodobně výchozí MaxTokenSize hodnotu upravit.

Opravu hotfix popsanou v tomto článku nahrazuje opravy hotfix, které jsou popsány v článcích znalostní báze Microsoft Knowledge Base, které jsou uvedeny v této části.

Příčina

Uživatele nelze ověřit, protože token Kerberos, který je generován během pokusů o ověření má pevnou maximální velikostí. Přenosy, jako je vzdálené volání procedur (RPC) a protokol HTTP spoléhají na MaxTokenSize hodnota při jejich přidělení vyrovnávací paměti pro ověřování. V systému Windows 2000 (původní vydání verze) MaxTokenSize hodnota je 8 000 bajtů. V systému Windows 2000 Service Pack 2 (SP2) a Windows Server 2003 MaxTokenSize hodnota je 12 000 bajtů.

Kerberos používá pole certifikátu atribut oprávnění (PAC) paketu protokolu Kerberos pro dopravu členství skupina služby Active Directory. Počínaje Windows Server 2012, to platí i pro pole nároky Active Directory information (dynamické řízení přístupu). Pokud existuje mnoho členství ve skupině pro uživatele a pokud existuje mnoho nároků na uživatele nebo zařízení, které používá, tato pole mohou zabírat velké množství místa v paketu.

Pokud je uživatel členem více než 120 skupin, není dostatečně velká vyrovnávací paměť, která je určena podle hodnoty MaxTokenSize. Proto uživatele nelze ověřit a může se zobrazit chybová zpráva "nedostatek paměti". Před instalací opravy hotfix, která je popsána v tomto článku, všechny skupiny, která je přidána do uživatelského účtu této vyrovnávací paměti zvyšuje o 40 bajtů.

Poznámka: V mnoha případech ověřování NTLM systému Windows funguje podle očekávání. Nevidíte problém ověřování Kerberos bez analýzy. Nicméně scénáře, ve kterých je použito nastavení Zásady skupiny nemusí pracovat podle očekávání.

Řešení

Důležité: Chcete-li vyřešit tento problém, nastavte u všech počítačů, které se účastní procesu ověřování pomocí protokolu Kerberos MaxTokenSize hodnota registru. Jedná se o klienty serveru SQL Server. (To znamená klíč registru musí být stanovena v každém počítači, který je součástí toku požadavků a odpovědí. Proto pokud je klient serveru SQL Server, o které se opírá webové aplikace nebo pokud token uživatele musí být předány do databáze serveru SQL Server back-end, klíč registru musí být stanovena v klientském počítači serveru SQL Server databáze serveru SQL a také klientský počítač, který je spuštěna aplikace Internet Explorer, webového serveru se systémem, který se spuštěnou službou IIS atd.)

Poznámka: Následující verze systému Windows obsahuje opravu tohoto problému:
  • Windows 8
  • Windows Server 2012
  • Windows 7
  • Windows Server 2008 R2
  • Windows Server 2003
  • Systém Windows Vista
  • Windows Server 2008
  • Systém Windows XP Professional

Informace o aktualizaci Service pack

Tento problém vyřešíte pomocí nejnovější aktualizace service pack pro systém Microsoft Windows 2000. Další informace získáte v následujícím článku znalostní báze Microsoft Knowledge Base:
260910 jak získat nejnovější aktualizaci service pack pro systém Windows 2000

Informace o opravě hotfix

Podporovaná oprava hotfix je nyní k dispozici od společnosti Microsoft. Je však určena opravit pouze problém popsaný v tomto článku. Použijte ji pouze u systémů, ve kterých dochází k tomuto konkrétnímu problému. Tato oprava hotfix může být dále testována. Proto pokud jste závažně tento problém, doporučujeme počkat další aktualizaci service pack pro systém Windows 2000, který obsahuje tuto opravu hotfix.

Chcete-li tento problém vyřešit okamžitě, obraťte se na technickou podporu společnosti Microsoft získat opravu hotfix. Úplný seznam telefonních čísel služeb podpory zákazníků společnosti Microsoft a informace o cenách podpory naleznete na následujícím webu společnosti Microsoft:Poznámka: Ve zvláštních případech mohou být stornovány poplatky, které jsou třeba obvykle zaplatit za telefonní hovory, pokud pracovník služeb podpory společnosti Microsoft určí, že konkrétní aktualizace odstraní váš problém. Výdaje na technickou podporu použije dalších otázek a problémů, které nelze vyřešit konkrétní aktualizací. Anglická verze této opravy hotfix má atributy souborů (nebo novější) uvedené v následující tabulce. Kalendářní data a časy jednotlivých souborů jsou uvedeny v koordinovaném světovém čase (UTC). Při zobrazení informací o souboru je převeden na místní čas. Chcete-li najít rozdíl mezi časem UTC a místním časem, použijte kartu časové pásmo v položce datum a čas v okně Ovládací panely.

Stav

Společnost Microsoft potvrzuje, že se jedná o problém v produktech této společnosti, které jsou uvedeny v části "Platí pro". Tento problém byl poprvé opraven v aktualizaci Microsoft Windows 2000 Service Pack 4.

Další informace

Token velikost výpočtu Windows 2000 na systém Windows Server 2008 R2

Pokud použijete opravu hotfix, která je popsána v tomto článku, není nutné změnit hodnotu registru MaxTokenSize ve většině případů. Existují však některé scénáře, ve kterých je nutné změnit hodnotu registru MaxTokenSize po instalaci této opravy hotfix. Po instalaci této opravy hotfix na všechny řadiče domény, použijte k určení, zda je nutné změnit hodnotu MaxTokenSize následující vzorec:
TokenSize = 1200 + 40 d + 8s
Tento vzorec používá následující hodnoty:
  • d: číslo místní skupiny domény, které je uživatel členem plus počet univerzálních skupin mimo doménu účtu uživatele, které je uživatel členem plus počet skupin reprezentovány v zabezpečení historie ID (SID).
  • s: počet globálních skupin zabezpečení, které je uživatel členem plus počet univerzálních skupin v doméně účtu uživatele, jejímž je uživatel členem.
  • 1 200: odhadovaná hodnota pro režii lístek. Tato hodnota se může lišit v závislosti na faktorech, jako je délka názvu domény DNS, název klienta a dalších faktorech.
V případech, ve kterých je použit delegování (například při uživatelé jsou ověřeni řadičem domény) doporučujeme, aby zdvojnásobíte velikost tokenu.

Při nastavení položky registru

Velikost tokenu, který se vypočítá pomocí tohoto vzorce je menší než 12 000 bajtů (výchozí hodnota), není nutné změnit hodnotu registru MaxTokenSize u klientů domény. Pokud je hodnota větší než 12 000 bajtů, naleznete v následujícím článku znalostní báze Microsoft Knowledge Base Popis postupu pro úpravu MaxTokenSize hodnota registru:

263693 Zásady skupiny nemusí být použita k uživatelé patřící mnoho skupin


Notes
  • Při změně hodnoty MaxTokenSize po restartování počítače tak, že změna je účinná.
Doporučená hodnota pro položku registru MaxTokenSize je 65535 desítkové nebo šestnáctkové FFFF. MaxTokenSize hodnota určuje dlouhodobý lístku protokolu Kerberos přijímat vyrovnávací paměti, která obsahuje čísla SID, která představuje skupiny, ve kterých je účet členem.

Používat bezpečné velikosti, můžete nastavit MaxTokenSize 48000po diskusi o omezení zavedená velikost hlavičky protokolu HTTP, dále v tomto článku. V závislosti na tom, kterou hodnotu použijete nejprve dojde k potížím s protokolem Kerberos chybové události nebo chyby služby IIS HTTP 400.

Známé problémy, které mohou nastat

Známé problémy pro velikost tokenu přístupu:

Místního úřadu zabezpečení (LSA) služba generuje Token přístupu uživatele z této vyrovnávací paměti SID. Omezení pevně zákazníka definovatelné SID pro tento token je 1,015, naleznete v tomto článku:
328889 uživatelé, kteří jsou členy skupiny více než 1,015 může dojít k selhání ověření při přihlášení
http://support.microsoft.com/kb/328889/EN-US

Proto MaxTokenSize hodnota pro více než 1015 účinné SID není užitečné. V následujícím vzorci:
MaxTokenSize = 1200 + 40 d + 8s
40d znamená, že máte 40 bajtů pro SID místní skupiny domény. 8S znamená 8 bajtů pro SID domény globální nebo univerzální skupiny.

Proto pokud máte MaxTokenSize hodnota 0x0000FFFF (64 kB), je možné do vyrovnávací paměti přibližně 1600 domény místní skupiny SID nebo přibližně 8000 domény globální nebo univerzální skupiny SID. Pokud použijete "důvěryhodný pro delegování" účty, mohou Dvojitá vyrovnávací paměti požadavek pro každé číslo SID. V těchto scénářích může být uloženo pouze přibližně 800 domény místní skupiny SID při MaxTokenSize hodnotu 64 kB. Však mají pouze domény místní skupiny SID není obvyklý scénář. By měla být dostačující i pro scénáře delegování hodnotu 64 kB.

Známé problémy Při použití hodnoty MaxTokenSize větší než 65 535

Předchozí verze tohoto článku jsou uvedeny hodnoty až 100000 bajtů pro MaxTokenSize. Zjistili jsme, že verze programu SMS Administrator mají problémy při MaxTokenSize 100000 nebo větší. Také jsme zjistili, že protokol IPSEC IKE není povoleno zabezpečení objektů BLOB se větší než 66536 bajtů a by také nezdaří, pokud je nastavena MaxTokenSize větší hodnotu.

Vyrovnávací paměť pro příjem HTTP Server Internet informace o známých problémech

Internet Information Server (IIS) používá velikost vyrovnávací paměti pro snížení požadavku ke zmírnění odmítnutí služby útoku 64 kB. Ale lístek protokolu Kerberos v požadavku HTTP je kódovaný jako Base64 (šest bitů rozšířena na 8 bitů). Navíc a lístku protokolu Kerberos používá 133 procent původní velikosti. Proto když maximální velikost vyrovnávací paměti 64 KB v rámci služby IIS, lze použít 48 KB lístku protokolu Kerberos.

Pokud nastavíte položku registru MaxTokenSize hodnotu, která je větší než 48000 a vyrovnávací paměť se používá pro SID, může dojít k chybě služby IIS. Pokud nastavíte položku registru MaxTokenSize 48000, může dojít k chybě protokolu Kerberos.

Další informace o velikosti vyrovnávací paměti služby IIS získáte v následujícím článku znalostní báze Microsoft Knowledge Base:
Jak 310156 omezení velikosti hlavičky přenosu protokolu HTTP, služba IIS přijme od klienta v systému Windows 2000

920862 při uživatel aplikace Outlook Web Access pokusí o přístup k poštovní schránce Exchange Server 2003 zobrazí chybová zpráva: "HTTP 400 Špatný požadavek (hlavičky požadavku příliš dlouhý)"

Změny v systému Windows Server 2012

Windows Server 2012 zavedena do úvahy o této vyrovnávací paměti následující změny:
  • Změní výchozí MaxTokenSize 48 000 bajtů.
  • Není k dispozici nové schéma komprese SID v zprávy PAC.
  • Dynamické Access přidá ovládací prvek Active Directory nároky na lístku. Výpočet velikosti očekávané lístek tedy již jasné. Očekává se, že lístky vydané řadiče domény systému Windows Server 2012 jsou menší než stejné lístky, které byly vydány ze starších verzí operačního systému. Deklarace přidejte do velikosti lístku. Však po souborové servery systému Windows Server 2012 široce používají nároky, lze očekávat postupné ukončení významného počtu skupin, které řídí přístup k souborům na střihu velikosti lístku.

Další informace o změnách v systému Windows Server 2012 naleznete na následujícím webu Microsoft TechNet:

Příklady potíží při překročení velikosti lístku

Další informace získáte v následujícím článku znalostní báze Microsoft Knowledge Base:

277741 Internet Explorer přihlášení nezdaří z důvodu nedostatečná velikost vyrovnávací paměti pro protokol Kerberos

313661 chybová zpráva: "Vypršel časový limit" dochází při připojení k serveru SQL Server pomocí protokolu TCP/IP a protokol Kerberos MaxTokenSize je větší než 0xFFFF


Vzhledem k tomu, že jste scénářů přihlašování mezi doménami v doménové struktuře, hodnotu je třeba nastavit pro celou doménovou strukturu ve všech systémech založených na systému Windows. Proto doporučujeme, aby byla maximální hodnoty MaxTokenSize hodnotu 64 kB.



Důležité: V klientských počítačích serveru SQL Server můžete obdržet následující chybová zpráva při výskytu tohoto problému:
Kontext SSPI nelze vygenerovat.
Chcete-li vyřešit tento problém, nastavte u všech počítačů, které se účastní procesu ověřování pomocí protokolu Kerberos MaxTokenSize hodnota registru. Jedná se o klienty serveru SQL Server.

Vlastnosti

ID článku: 327825 - Poslední kontrola: 16. 1. 2017 - Revize: 1

Váš názor