Problem med Kerberos-autentisering när en användare som tillhör många grupper

Artikelöversättning Artikelöversättning
Artikel-id: 327825 - Visa produkter som artikeln gäller.
Stöd för Windows Vista Service Pack 1 (SP1) upphör den 12 juli 2011. Om du vill fortsätta att få säkerhetsuppdateringar för Windows, kontrollera att du kör Windows Vista med Service Pack 2 (SP2). Mer information finns i Microsoft-webbsida: Stöd för slutdatum för vissa versioner av Windows.
Visa alla | Dölj alla

På den här sidan

Symptom

När en användare tillhör många grupper, kan som användaren ha problem med autentisering eller grupprincip-inställningar. I följande artiklar i Microsoft Knowledge Base beskrivs problemen i detalj:

269643 Internet Explorer-Kerberos-autentisering fungerar inte på grund av en otillräcklig buffert som ansluter till IIS
280380 Buffertspill overflow utnyttja möjliga med utökade lagrade procedurer
2020943 "HTTP 400 - Ogiltig begäran (begära huvud för lång)" fel i Internet Information Services (IIS)
Lösningen som beskrivs i dessa artiklar anger du ändra registervärdet MaxTokenSize. En förbättring har gjorts till denna lösning. Om du använder snabbkorrigeringen som beskrivs i denna artikel, kan du inte ändra standardvärdet för MaxTokenSize.

Snabbkorrigeringen som beskrivs i den här artikeln ersätter de snabbkorrigeringar som beskrivs i Microsoft Knowledge Base-artiklar som listas i det här avsnittet.

Orsak

Användaren kan inte autentisera eftersom Kerberos-token som skapas under autentiseringsförsök har en fast maxstorlek. Transporter som remote procedure call (RPC) och HTTP förlitar sig på MaxTokenSize värde när de fördelar buffertar för autentisering. I Windows 2000 (den ursprungliga utgivna versionen) är MaxTokenSize-värdet 8 000 byte. I Windows 2000 Service Pack 2 (SP2) och Windows Server 2003 är det MaxTokenSize värdet 12 000 byte.

Kerberos används privilegium attributet certifikat (PAC) av Kerberos-paketet till transport gruppmedlemskap för Active Directory. Från och med Windows Server 2012, gäller detta även för fältet anspråk för Active Directory-information (Dynamic Access Control). Om det finns många gruppmedlemskap för användare och det finns många anspråk för användaren eller den enhet som används för dessa fält tar upp mycket utrymme i paketet.

Om en användare är medlem i mer än 120 grupper, är inte tillräckligt stor buffert som bestäms av MaxTokenSize värde. Därför kan inte autentisera användare och de får ett felmeddelande "slut på minne". Innan du installerar snabbkorrigeringen som beskrivs i denna artikel ökar alla grupper som läggs till ett användarkonto denna buffert med 40 byte.

Obs! I många fall kan Windows NTLM-autentisering fungerar som förväntat. Du kan inte se problemet för Kerberos-autentisering utan analys. Scenarier som grupprincip-inställningar används fungerar inte som förväntat.

Lösning

Viktigt!Lös det här problemet genom att ange registervärdet MaxTokenSize för alla datorer som ingår i Kerberos-autentiseringsprocessen. Detta inkluderar SQL Server-klienter.(Det vill säga registernyckeln har som ska anges för varje dator som ingår i flödet för begäran och svar. Därför om det är en SQL Server-klient som använder ett webbprogram eller användarens token har som ska skickas till en SQL Server-databas backend registernyckeln måste ställas in på klientdatorn SQL Server dator för SQL Server-databas och även klientdatorn som Internet Explorer körs webbservern körs som kör IISoch så vidare.)

Obs! Följande Windows-versioner är en lösning på problemet:
  • Windows 8
  • Windows Server 2012
  • Windows 7
  • Windows Server 2008 R2
  • Windows Server 2003
  • Windows Vista
  • Windows Server 2008
  • Windows XP Professional

Information om Service pack

Lös problemet genom att skaffa den senaste service Packet för Microsoft Windows 2000. Om du vill veta mer klickar du på följande artikelnummer och läser artikeln i Microsoft Knowledge Base:
260910 Hur du skaffar den senaste service pack-versionen för Windows 2000

Information om snabbkorrigeringen

En snabbkorrigering är nu tillgänglig från Microsoft. Den är avsedd att åtgärda det problem som beskrivs i denna artikel. Använd den bara på datorer där detta problem. Snabbkorrigeringen kan komma att testas igen. Om inte störs alltför mycket av detta problem rekommenderar vi att du väntar på Nästa service pack för Windows 2000 som innehåller den här snabbkorrigeringen.

Om du vill lösa problemet omedelbart kontaktar du Microsoft support för att få snabbkorrigeringen. En fullständig lista över telefonnummer till Microsoft Customer Support Services och information om supportkostnader finns på följande Microsoft-webbplats:
http://support.microsoft.com/contactus/?ws=support
Obs! I särskilda fall avbrytas de avgifter som är normalt för supportsamtal om en supporttekniker att en särskild uppdatering kan lösa ditt problem. De vanliga supportkostnaderna gäller för övriga supportfrågor och problem som inte berör den särskilda uppdateringen.Den engelska versionen av den här snabbkorrigeringen har de filattribut (eller senare) som visas i följande tabell. Datum och tider för dessa filer anges i UTC-tid (UTC). När du visar filinformationen konverteras den till lokal tid. Använd fliken tidszon i datum och tid på Kontrollpanelen om du vill se skillnaden mellan UTC-tid och lokal tid.

Status

Microsoft har bekräftat att detta är ett problem i Microsoft-produkterna som nämns i avsnittet "Gäller". Det här problemet korrigerades först i Microsoft Windows 2000 Service Pack 4.

Mer Information

Token storlek beräkning Windows 2000 till Windows Server 2008 R2

Om du använder den snabbkorrigering som beskrivs i denna artikel behöver du inte ändra registervärdet MaxTokenSize i de flesta fall. Det finns emellertid vissa situationer där du behöver ändra registervärdet MaxTokenSize när du har installerat den här snabbkorrigeringen. När du har installerat den här snabbkorrigeringen till alla domänkontrollanter, kan du använda följande formel för att avgöra om du måste ändra värdet för MaxTokenSize:
TokenSize = 1200 + 40 d + 8s
Den här formeln används följande värden:
  • d: antalet domänlokala grupper en användare är medlem i plus antal universella grupper utanför användarens domän som användaren är medlem i plus antalet grupper som visas i säkerhet historik-ID (SID).
  • s: antalet globala säkerhetsgrupper som användaren är medlem i plus antalet universella grupper i en användares domän som användaren är medlem i.
  • 1200: Det uppskattade värdet för biljett omkostnader. Det här värdet kan variera beroende på faktorer som längd på DNS-domännamn, klientnamn och andra faktorer.
I scenarier där delegering används (till exempel när användare autentiseras på en domänkontrollant), rekommenderar vi att du dubblerar storleken token.

När du skapar registerposten

Om token som du beräknar med hjälp av den här formeln är mindre än 12 000 byte (standardstorleken), behöver du inte ändra registervärdet MaxTokenSize på domänklienter. Om värdet är mer än 12 000 byte, finns i följande Microsoft Knowledge Base-artikel för en beskrivning av hur du justerar registervärdet MaxTokenSize:

263693 Grupprincip kan inte användas för användare som tillhör många grupper

Obs!
  • När du ändrar värdet för MaxTokenSize måste du starta om datorn så att ändringen ska gälla.
Det rekommenderade värdet för registerposten MaxTokenSize är 65535 decimala eller hexadecimala FFFF. Värdet MaxTokenSize anger en fast Kerberos-biljett mottagningsbuffert som innehåller SID som representerar grupper som kontot är medlem.

Kända problem som kan uppstå

Kända problem vid åtkomst-Token storlek:

Tjänsten Local Security Authority (LSA) genererar användaren åtkomst-Token från denna SID-buffert. Hårdkodad begränsning av kunden definierbara SID för denna token är 1,015, KB-artikel:
328889 Användare som är medlemmar i mer än 1,015 misslyckas inloggningsautentiseringen
http://support.microsoft.com/kb/328889/en-us

Ett MaxTokenSize värde för mer än 1015 effektiva SID är därför inte användbar. I följande formel:
MaxTokenSize = 1200 + 40 d + 8s
40d betyder det att du har 40 byte för en lokal grupp-SID för domänen. 8S: 8 byte för en domän Global/universell grupp-SID.

Därför, om du har ett MaxTokenSize värde för 0x0000FFFF (64K) du kanske kunna buffra ungefär 1600 domän lokala grupp SID eller ca 8000 domän Global/universell grupp SID. Om du använder "betrodd för delegering" konton kan vara dubblerad buffert krav för varje SID. I dessa fall kan lagra du bara ungefär 800 domän lokala grupp-SID när du använder ett MaxTokenSize värde av 64 kB. Med endast domän lokala grupp SID är dock inte ett typiskt scenario. Ett värde på 64K bör räcka även för Delegeringsscenarier.

Kända problem för IIS (Internet Information Server) HTTP mottagningsbuffert:

IIS (Internet Information Server) (IIS) använder en lägre begäran buffertstorlek för att mildra en denial of service-angrepp på 64 KB. Men en Kerberos-biljett i en HTTP-begäran är kodad som Base64 (sex bitar utvidgas till åtta bitar). Dessutom och Kerberos-biljetten 133 procent av dess ursprungliga storlek. Därför, när den maximala buffertstorleken är 64 KB i IIS är 48 KB av en Kerberos-biljett kan användas.

Om du anger ett värde som är större än 48000 registerposten MaxTokenSize och buffer space används för SID, kan IIS-fel uppstå. Om du anger registerposten MaxTokenSize till 48000 uppstå ett Kerberos-fel.

Mer information om IIS buffertstorlekar klickar du på följande artikelnummer och läser artiklarna i Microsoft Knowledge Base:
310156 Hur du begränsar huvudstorlek HTTP-överföring som IIS tar emot en Windows 2000-klient

920862 Ett felmeddelande visas när en Outlook Web Access-användare försöker få åtkomst till en postlåda i Exchange Server 2003: "HTTP 400 Ogiltig begäran (Request-header för lång)"

Ändringar av Windows Server 2012

Windows Server 2012 införs följande ändringar till överväganden om denna buffert:
  • Standard för MaxTokenSize ändras till 48 000 byte.
  • Det finns ett nytt schema för komprimering av SID: er i PAC.
  • Dynamisk åtkomstkontroll lägger till Active Directory-anspråk till biljetten. Beräkning av förväntade biljett storlek är därför inte längre okomplicerad. Förutsättningen är att biljetter som utfärdats av domänkontrollanter med Windows Server 2012 är mindre än samma biljetter som utfärdats från äldre versioner av operativsystemet. Fordringar lägga till biljett-storlek. Men när Windows Server 2012 filservrar använder anspråk brett, du kan förvänta dig att fasa ut ett betydande antal grupper som styr behörighet att trimma biljett storlekar.

Mer information om Windows Server 2012 ändringar finns på följande Microsoft TechNet-webbplats:
http://technet.microsoft.com/en-us/library/hh831717.aspx

Exempel på problem när biljetten storleken överskrids

Om du vill veta mer klickar du på följande artikelnummer och läser artiklarna i Microsoft Knowledge Base:
277741 Internet Explorer-inloggning misslyckas på grund av en otillräcklig buffert för Kerberos
313661 Felmeddelande: "Frågetidsgräns" uppstår när du ansluter till SQL Server över TCP/IP och Kerberos MaxTokenSize är större än 0xFFFF

Eftersom du kan ha flera domäninloggning scenarier i skogen, bör vara värdet skogen på alla Windows-baserade system. Vi rekommenderar därför att det högsta värdet för MaxTokenSize-värdet är 64 kB.

Viktigt! På SQL Server-klienter kan du få följande felmeddelande när detta problem uppstår:
Det går inte att generera SSPI-kontext
Lös det här problemet genom att ange registervärdet MaxTokenSize för alla datorer som ingår i Kerberos-autentiseringsprocessen. Detta inkluderar SQL Server-klienter.

Egenskaper

Artikel-id: 327825 - Senaste granskning: den 23 november 2013 - Revision: 4.0
Informationen i denna artikel gäller:
  • Microsoft Windows XP Professional Edition
  • Microsoft Windows XP Professional x64 Edition
  • Microsoft Windows Server 2003 Service Pack 2
  • Windows Vista Business
  • Windows Vista Enterprise
  • Windows Vista Ultimate
  • Windows Server 2008 Datacenter
  • Windows Server 2008 Enterprise
  • Windows Server 2008 Standard
  • Windows Web Server 2008
  • Windows Server 2008 R2 Enterprise
  • Windows Server 2008 R2 Foundation
  • Windows Server 2008 R2 Standard
  • Windows 7 Enterprise
  • Windows 7 Professional
  • Windows 7 Ultimate
  • Windows Server 2012 Datacenter
  • Windows Server 2012 Essentials
  • Windows Server 2012 Foundation
  • Windows Server 2012 Standard
  • Windows 8 Enterprise
  • Windows 8 Pro
  • Microsoft Windows Server 2003 R2 Datacenter Edition (32-Bit x86)
  • Microsoft Windows Server 2003 R2 Datacenter Edition (64-Bit x86)
  • Microsoft Windows Server 2003 R2 Enterprise Edition (32-Bit x86)
  • Microsoft Windows Server 2003 R2 Enterprise Edition (64-Bit x86)
  • Microsoft Windows Server 2003 R2 Standard Edition (32-bit x86)
  • Microsoft Windows Server 2003 R2 Standard Edition (64-Bit x86)
Nyckelord: 
kbqfe kbhotfixserver kbsecurity kbwin2ksp4fix kbbug kbfix kbwin2000presp3fix kbwin2000presp4fix kbmt KB327825 KbMtsv
Maskinöversatt
VIKTIGT: Denna artikel har översatts av Microsofts programvara för maskin-översättning och möjligen efterredigerats via CTF-teknologi av Microsofts community istället för av en professionell mänsklig översättare. För att du på ditt eget språk skall få tillgång till samtliga Knowledge Base-artiklar erbjuder Microsoft både mänskligt översatta såväl som maskinöversatta artiklar samt artiklar som efterredigerats av en community. En maskinöversatt artikel likväl som en artikel som blivit efterredigerad av en community är dock inte alltid helt perfekt, då de kan innehålla misstag i ordförrådet, syntax- och grammatikfel. Microsoft är inte ansvarigt för några felaktigheter, misstag eller skador orsakade av felöversättningar eller för våra kunders bruk av innehållet. Microsoft uppdaterar ofta sin programvara för maskinöversättning samt de verktyg som förbättrar den maskinöversatta efterredigeringen.
Den engelska versionen av artikeln är följande: 327825

Ge feedback

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com