Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Den här guiden innehåller grundläggande begrepp som du kan följa när du felsöker Problem med Kerberos-autentisering.
Viktigt!
Den här artikeln innehåller allmänna riktlinjer. Du kan behöva anpassa de procedurer och exempel som visas här för att fungera för din specifika konfiguration.
Checklista för felsökning
Kerberos-protokollet förlitar sig på flera infrastrukturkomponenter och tjänster. Om någon av dessa komponenter eller tjänster inte är tillgängliga eller inte fungerar kan det uppstå autentiseringsproblem.
1. Kontrollera händelser och loggar
Kontrollera händelseloggarna för att få information om ett problem. Använd Händelseloggen för att granska säkerhets- och systemloggarna på de system som är inblandade i autentiseringsåtgärden.
- Den autentiserande klienten
- Målservern eller tjänsten
- Domänkontrollanten
Leta särskilt efter händelser från källor som kan relatera till Kerberos-autentisering eller de tjänster som den förlitar sig på, till exempel följande källor:
- Kerberos
- Nyckeldistributionscenter (KDC)
- LSA (LsaSrv)
- Netlogon
På målservern kontrollerar du säkerhetsloggen om det finns felgranskningar. Sådana fel kan visa att Kerberos-protokollet används när ett autentiseringsfel inträffar.
Vissa händelser eller fel indikerar specifika problem. Om någon av de berörda datorerna registrerade någon av följande händelser eller fel väljer du länken för mer detaljerad felsökningsinformation.
Händelse eller fel | Felsökningsinformation |
---|---|
Händelse-ID 4, det fel KERB_AP_ERR_MODIFIED | Klienten kunde inte dekryptera tjänstbiljetten. Eftersom fler än ett problem kan orsaka det här felet kontrollerar du om det finns relaterade händelser. Den här strängen kan till exempel innebära att klient- och målserverklockorna inte är synkroniserade eller att SPN inte är unikt. I en miljö med flera domäner kanske namnet på tjänstkontot inte är unikt i skogen (eller andra betrodda skogar). Mer information finns i Kerberos-klienten tog emot ett KRB_AP_ERR_MODIFIED fel från servern och Kerberos genererar KDC_ERR_S_PRINCIPAL_UNKNOWN eller KDC_ERR_PRINCIPAL_NOT_UNIQUE fel. |
Händelse-ID 4, fel KERB_AP_ERR_SKEW | Kontrollera att datorklockorna är synkroniserade |
Händelse-ID 14 | "Etype-fel som inte stöds" vid åtkomst till en resurs i en betrodd domän |
Händelse-ID 16 eller händelse-ID 27 |
KDC-händelse-ID 16 eller 27 loggas om DES för Kerberos är inaktiverat Händelse-ID 27 KDC-fel på Windows Server 2003-domänkontrollanter |
Fel 1069 | Tjänstinloggningar misslyckas på grund av felaktigt inställda SPN: |
Händelse-ID 5719, fel 1311 eller fel 1355 | Händelse-ID 5719, fel 1311 eller fel 1355 – Domänkontrollant eller domän hittades inte |
Om du kontrollerar ett problem som du vet hur du åtgärdar kan du först åtgärda problemet och sedan försöka igen för att autentisera innan du fortsätter.
2. Kontrollera infrastrukturen
a. Kontrollera att klientappen och måltjänsten inte finns på samma dator
Om klientappen och måltjänsten är installerade på en enda dator inaktiveras Kerberos som standard. Om du inte kan installera klientprogrammet och måltjänsten på separata datorer måste du ändra specifika säkerhetsrelaterade inställningar i Windows. Dessutom kan du behöva ändra en registernyckel. Mer information om de problem som är relaterade till det här scenariot och de specifika inställningar som påverkar det finns i Felmeddelande när du försöker komma åt en server lokalt.
Om du har gjort några ändringar kan du försöka igen för att autentisera innan du fortsätter.
b) Kontrollera att klientdatorn, målservern och resursservrarna är anslutna till lämpliga domäner
Om det behövs ansluter du klientdatorn eller målservern till en lämplig domän. Försök sedan igen för att autentisera.
Kommentar
I det här sammanhanget är "lämpliga domäner" domäner i en enda skog eller inom en uppsättning skogar som har förtroenderelationer.
Punkt c Kontrollera hälsotillståndet för målservern och dess stödtjänster
Kontrollera att program- eller klientdelstjänster (till exempel webbtjänster) och serverdelstjänster (till exempel SQL Server-tjänsten) körs.
Kommentar
Du kan få ett meddelande som liknar " En tjänst har genererat fel 1069: Tjänsten startade inte på grund av ett inloggningsfel." Om du får det här meddelandet kan du läsa Service Logons Fail Due to Incorrectly Set SPN (Tjänstinloggning misslyckas på grund av felaktigt inställda SPN).
d. Kontrollera att rätt portar är tillgängliga
Kontrollera alla brandväggar (inklusive Windows-brandväggen på varje dator) mellan klientdatorn, domänkontrollanten och målservern. Kontrollera att trafik tillåts på följande portar.
Kommentar
I den här listan används server:klientport,serverportformat.
- DHCP: 67 (UDP), 67 (UDP)
- DNS: 49152 -65535 (TCP, UDP), 53 (TCP, UDP)
- HTTPS, inklusive certifikatbaserad autentisering: 443 (TCP), 443 (TCP)
- Kerberos: 49152 -65535 (TCP, UDP), 88 (TCP, UDP)
- Ändring av Kerberos-lösenord: 49152 -65535 (TCP), 464 (TCP, UDP)
- LDAP, inklusive DC-positionerare: 49152 -65535 (TCP, UDP), 389 (TCP, UDP)
- LDAP SSL: 49152 -65535 (TCP), 636 (TCP)
- SMB: 49152 -65535 (TCP, UDP), 445 (TCP)
- RPC-slutpunktsmappare: 49152 -65535 (TCP), 135 (TCP)
- RPC för LSA, SAM, NetLogon: 49152 -65535 (TCP), 49152-65535 (TCP)
- W32Time: 49152 -65535 (UDP), 123 (UDP)
Om du gör ändringar i brandväggsinställningarna kan du försöka igen för att autentisera.
e. Kontrollera att domänkontrollanter är tillgängliga
När klienten försöker kontakta en tjänst eller ett program (kallas "målservern" måste både klienten och målservern ha en domänkontrollant för att underlätta autentisering, auktorisering och delegering.
Öppna en kommandotolk med förhöjda rättigheter på klientdatorn och kör sedan följande kommando:
nltest /dsgetdc:<DomainName> /force /kdc
Kommentar
I det här kommandot <representerar DomainName> namnet på domänen för den dator som du frågar från.
Kommandot nltest
hämtar en lista över tillgängliga domänkontrollanter (även om listan kanske inte innehåller alla tillgängliga domänkontrollanter). Registrera de fullständigt kvalificerade domännamnen och IP-adresserna för dessa domänkontrollanter för användning i senare procedurer.
Om klienten eller målservern inte kan kontakta en domänkontrollant får du ett meddelande som liknar följande (ibland märkt "fel 1355"):
Antingen finns inte den angivna domänen eller så kunde den inte kontaktas.
Om du får det här meddelandet läser du Händelse-ID 5719, Fel 1311 eller Fel 1355 – Domänkontrollant eller domän hittades inte för mer felsökningsinformation. Annars kan du fortsätta med den här checklistan.
f. Kontrollera att DNS fungerar mellan klienten och målservern
Öppna ett administrativt kommandotolksfönster på klientdatorn och kör sedan följande kommando:
nslookup <TargetName>
Kommentar
I det här kommandot <representerar TargetName> NetBIOS-namnet på målservern.
nslookup
Om kommandot matchar målservernamnet korrekt är DNS-konfigurationen korrekt. Om kommandot inte löser målservernamnet följer du dessa steg för att kontrollera klientdatorns nätverkskortkonfiguration:
Kör följande kommando på klientdatorn:
ipconfig /all
I kommandoutdata avgör du vilket nätverkskort som används. Kontrollera följande adapterinställningar:
Klientens IP-adress
Nätmask
Standardgateway
Anslutningsspecifikt DNS-suffix
IP-adresser för DNS-server
Registrera IP-adresserna och notera vilken DNS-server som föredras och vilken som är sekundär. Den här informationen är användbar för senare felsökning.
Om någon av de här inställningarna är felaktiga kan du åtgärda dem eller kontakta DNS-administratören om du behöver hjälp. Om du har gjort några ändringar kör du
nslookup <TargetName>
igen.
Om DNS fortfarande inte fungerar korrekt följer du dessa steg:
Kör följande kommando på klientdatorn:
nslookup <ClientName> <DNSIPAddress>
Kommentar
I det här kommandot <representerar ClientName> NetBIOS-namnet på klientdatorn och <DNSIPAddress> representerar IP-adressen för en AV DE DNS-servrar som klienten är konfigurerad att använda. Börja med att använda IP-adressen för den önskade DNS-servern som du registrerade i föregående procedur. Om kommandot inte fungerar kan du försöka igen med hjälp av IP-adressen för klientens sekundära DNS-server.
Om till exempel klientdatorns namn är "client1" och IP-adressen för klientens önskade DNS-server är 10.0.0.1 kör du följande kommando:
nslookup client1 10.0.0.1
Kör samma kommando från målservern. Det liknar nu följande kommando:
nslookup <TargetName> <DNSIPAddress>
Kommentar
I det här kommandot <representerar TargetName> NetBIOS-namnet på målservern, och <DNSIPAddress> representerar IP-adressen för en av de DNS-servrar som målservern är konfigurerad att använda. Börja med att använda IP-adressen för den önskade DNS-servern som du registrerade i föregående procedur. Om kommandot inte fungerar första gången du kör det kan du försöka igen med hjälp av IP-adressen för målserverns sekundära DNS-server.
Om målserverns namn till exempel är "WebServer1" och IP-adressen för målserverns önskade DNS-server är 10.0.0.1 kör du följande kommando:
nslookup WebServer1 10.0.0.1
I följande tabell sammanfattas de möjliga resultaten av
nslookup
frågorna och deras konsekvenser.Målfråga
LyckasMålfråga
MisslyckasKlientfråga
LyckasInget DNS-problem Problem som påverkar målet eller minst en DNS-server Klientfråga
MisslyckasProblem som påverkar klienten eller minst en DNS-server Problem som påverkar en eller flera DNS-servrar
Om frågeresultaten visar att du har ett DNS-problem kan du läsa följande artiklar för mer hjälp:
Om du löser DNS-problemet men Kerberos-problemet kvarstår kan du prova följande felsökningsmetoder.
g. Kontrollera att datorklockorna är synkroniserade
Klientdatorn eller målservern kan cachelagra biljetter för framtida användning. Varje biljett har dock tidsstämplar som avgör dess livslängd (TTL). Tjänsten Kerberos Key Distribution Center, som körs på domänkontrollanterna, anger tidsstämplarna.
Tidsskillnaden mellan domänkontrollanten och klientdatorn eller målservern måste vara mindre än fem minuter. Om klockorna inte synkroniseras kan Windows vanligtvis synkronisera om dem automatiskt. Det finns två fall där du kan behöva vidta åtgärder:
- Klockorna är osynkroniserade med mer än 48 timmar.
- Den osynkroniserade klockan använder inte en domänkontrollant i sin domän som en tidsserver, eller använder inte samma tidsserver som dessa domänkontrollanter gör.
För att lösa det här problemet måste den berörda datorn kontrollera nätverket igen efter tidsservrar och sedan synkronisera om sin egen klocka. Om du vill aktivera dessa åtgärder öppnar du ett administrativt kommandotolkfönster och kör sedan följande kommando:
w32tm /resync /computer:<Target> /rediscover
Kommentar
I det här kommandot <representerar Target> den dator som du konfigurerar. Alternativet /rediscover
instruerar datorn att kontrollera nätverket efter nya eller uppdaterade tidskällor.
Mer information om de alternativ som är tillgängliga för kommandot finns i w32tm
Verktyg och inställningar för Windows-tidstjänsten: Kommandoradsparametrar för W32Time.
Om du synkroniserar om klockorna, försök igen att autentisera.
h. Kontrollera Windows Update-status
Kontrollera att alla domänkontrollanter, klientdatorn och målservern alla har relevanta Windows-uppdateringar.
Om du har installerat några uppdateringar startar du om de berörda datorerna och försöker sedan igen för att autentisera.
i. Kontrollera programuppdateringsstatus
Kontrollera att klient- och serverprogrammen är uppdaterade på klientdatorn och målservern. Om du installerar några uppdateringar startar du om de berörda datorerna och försöker sedan igen för att autentisera.
j. Starta om datorerna
Om du inte redan har startat om klientdatorn, målservern eller domänkontrollanten startar du om dem nu. När datorerna har startats om försöker du igen för att autentisera.
Om infrastrukturen är OK och du fortfarande har problem fortsätter du till de mer avancerade felsökningsprocedurerna.
3. Samla in spårnings- och biljettdata
Följande procedurer använder det kostnadsfria verktyget Network Monitor . Ladda ned och installera verktyget på både klientdatorn och målservern. Ett exempel på hur du använder Network Monitor för att samla in spårningsdata och identifiera Kerberos-meddelanden finns i Kerberos-fel i nätverksinsamlingar.
a. Samla in samtidiga nätverksspårningar
Följ dessa steg på klientdatorn:
Gör något av följande:
- Starta om klientdatorn.
- Logga ut från det konto som du använder för att felsöka och logga sedan in igen.
- Stäng klientprogrammet och öppna det igen.
Börja spåra. Gör detta genom att följa dessa steg:
- Välj Start och skriv sedan netmon.
- Högerklicka på Microsoft Network Monitor 3.4 i sökresultatet och välj sedan Kör som administratör (välj Ja i fönstret Kontroll av användarkonto).
- I Nätverksövervakaren väljer du Start.
Öppna ett administrativt kommandotolkfönster och kör sedan följande kommandon i följd:
ipconfig /flushdns nbtstat -RR klist purge klist -li 0x3e7 purge
Följ dessa steg på målservern:
Öppna Nätverksövervakaren som administratör och välj sedan Starta.
Öppna ett administrativt kommandotolkfönster och kör sedan följande kommandon i följd:
ipconfig /flushdns nbtstat -RR klist purge klist -li 0x3e7 purge
Försök återskapa problemet och stoppa och spara sedan spårningarna på både klientdatorn och målservern. Det gör du genom att välja Stoppa i Nätverksövervakaren och sedan Spara som.
b) Registrera biljettinformation
När du har återskapat problemet och slutat spåra kontrollerar du Kerberos-biljetterna som genererades medan du spelade in spårningsdata. Kör följande kommando i kommandotolken på klientdatorn och på målservern:
klist tickets
Det här kommandot genererar en lista över biljetter. Du kan kopiera den här informationen till ett annat program (till exempel Anteckningar) så att du kan använda den i senare felsökningsprocedurer.
4. Kontrollera spårningsdata för Kerberos-meddelanden
Du kan använda Network Monitor för att granska, filtrera och söka efter data i insamlingsfiler. I synnerhet letar du efter händelser som är märkta med hjälp av "KerberosV5". Dessa händelser ger statusinformation. De kan också lista namn eller IP-adresser för domänkontrollanter som har kontaktats och tjänstens huvudnamn (SPN) för tjänsten som klienten försökte nå.
Händelsebeskrivningar som innehåller strängar som liknar följande är en del av vanliga Kerberos-funktioner:
- KerberosV5:KRB_Error -KDC_ERR_PREAUTH_REQUIRED
- KerberosV5: AS-begäran
- KerberosV5:AS-svar
- KerberosV5:TGS-begäran
- KerberosV5:TGS-svar
- KerberosV5: AP-begäran
- KerberosV5:AP-svar
Kommentar
Du kan också använda Network Monitor för att kontrollera spårningsdata för biljettinformation i HTTP GET-begäranden. Om biljettinformationen saknas i GET-begäran uppstod ett problem med att använda Kerberos-autentisering.
Händelsebeskrivningar som innehåller strängar som liknar följande innebär att det finns ett problem. Följande lista innehåller några av de vanligaste felen. Om du ser någon av dessa strängar noterar du eventuella servernamn, IP-adresser och SPN:er för senare användning.
KDC_ERR_PRINCIPAL_NOT_UNIQUE eller KDC_ERR_S_PRINCIPAL_UNKNOWN. Det begärda SPN:t är associerat med fler än ett konto eller är inte associerat med något konto. Hjälp med att lösa dessa problem finns i Kerberos genererar felmeddelandena KDC_ERR_S_PRINCIPAL_UNKNOWN eller KDC_ERR_PRINCIPAL_NOT_UNIQUE.
KRB_AP_ERR_MODIFIED. Klienten kunde inte dekryptera tjänstbiljetten. Mer än ett problem kan orsaka det här felet. Granska spårningsdata för andra fel som medföljer KRB_AP_ERR_MODIFIED. Kontrollera händelseloggarna för händelse-ID 4 och andra relaterade händelser enligt beskrivningen i 1. Kontrollera händelser och loggar.
ERB_AP_ERR_SKEW. Klient- och målserverklockorna är inte synkroniserade. Mer information finns i Kontrollera att datorklockorna är synkroniserade.
KDC_ERR_ETYPE_NOTSUPP. En eller flera av de komponenter som ingår i autentiseringen använder en krypteringstyp som är inaktiverad för andra komponenter. Kontrollera händelseloggarna för mer information om vilka komponenter och vilka krypteringstyper som ingår, enligt beskrivningen i 1. Kontrollera händelser och loggar.
Kända problem och lösningar
HTTP 400 – Problem med felaktig begäran (begärandehuvudet är för långt)
Om en användare tillhör ett stort antal grupper (till exempel fler än 1 000 grupper) kan Kerberos neka användaren åtkomst eftersom begäran inte bearbetas korrekt. Mer information om det här problemet finns i följande artiklar:
Problem med tjänster
Tjänstproblem omfattar vanligtvis SPN och tjänstkontot. SPN kan till exempel vara felaktigt, saknas, konfigurerats för det felaktiga kontot eller konfigurerats för mer än ett konto. Felsökningschecklistan i den här artikeln, som nämner a. Samla in samtidiga nätverksspårningar, finns tidigare i artikeln. Om du redan har fastställt ett vanligt SPN-problem kan du läsa följande artiklar:
Kerberos genererar KDC_ERR_S_PRINCIPAL_UNKNOWN- eller KDC_ERR_PRINCIPAL_NOT_UNIQUE-fel.
Tjänstinloggning misslyckas på grund av felaktigt inställda SPN:er.
Kerberos-klienten fick ett KRB_AP_ERR_MODIFIED fel från servern.
Problem med enkel inloggning (SSO)
Enkel inloggning är en autentiseringsmetod som gör det möjligt för användare att logga in med en uppsättning autentiseringsuppgifter till flera system eller program i ett enda intranät. För att fungera korrekt måste både måltjänsten (eller klientdelskomponenten i måltjänsten) och klienten ha rätt inställningar. Information om hur du felsöker de här inställningarna finns i Felsöka problem med enkel inloggning med Kerberos.
Delegeringsproblem
När måltjänsten har separata klientdels- och serverdelskomponenter kan Kerberos delegera klientautentiseringsuppgifter (inklusive åtkomstbehörigheter) till ett tjänstkonto. Kort sagt får klienten tillgång till frontend-tjänsten, och sedan får frontend-tjänsten tillgång till backend-tjänsten på klientens vägnar.
Kerberos stöder tre typer av delegering:
- Obegränsad delegering. När klienten har åtkomst till klientdelstjänsten kan klientdelstjänsten komma åt andra tjänster för klientens räkning. Den här konfigurationen är den enklaste att implementera, men är också den minst säkra. Vi rekommenderar inte att obegränsad delegering inte rekommenderas eftersom den inte begränsar vilka tjänster som det autentiserade kontot kan interagera med.
- Begränsad delegering. Klientdelstjänsten har en lista över tjänster som den kan komma åt för en klients räkning.
- Resursbaserad begränsad delegering (RBCD). Serverdelstjänsten har en lista över tillåtna tjänster som kan begära åtkomst till serverdelstjänsten för en klients räkning.
Kommentar
Om du får ett problem när du använder begränsad delegering tillsammans med CIFS, se artikeln Begränsad delegering för CIFS misslyckas med ACCESS_DENIED-felet.
Viktigt!
Konfigurera inte begränsad delegering och RBCD på samma uppsättning frontend- och backend-servrar.
Begränsad delegering och RBCD är olika konfigurationer och de är ömsesidigt uteslutande. När en klientdelstjänst begär ett ärende till en serverdelstjänst kontrollerar KDC först klientdelstjänsten för begränsad delegering. Om begränsad delegering inte har konfigurerats för klientdelstjänsten kontrollerar KDC serverdelstjänsten för resursbaserad begränsad delegering. På grund av den här sekvensen har begränsad delegering företräde framför resursbaserad delegering.
Microsoft Edge stöder som standard inte obegränsad delegering. Om du använder obegränsad delegering kan du läsa Kerberos obegränsad dubbelhoppsautentisering med Microsoft Edge (Chromium) för mer information om den konfiguration som du behöver.
Obegränsad delegering rekommenderas inte eftersom det inte begränsar vilka tjänster det autentiserade kontot kan interagera med.
Topologityper som stöds
De olika delegeringstyperna ställer olika krav på topologin. I följande tabell visas tre vanliga typer av topologi och vilka typer av delegering (om några) som stöds för varje typ.
Topologityp | Obegränsad delegering | Begränsad delegering | RBCD |
---|---|---|---|
Alla tjänster finns i en enda domän | Stöds (rekommenderas inte) | Understödd | Understödd |
Front-end- och back-end-tjänster finns i olika domäner | Stöds (rekommenderas inte) | Stöds inte | Understödd |
Frontend- och backend-tjänster finns i olika (betrodda) skogsstrukturer | Stöds (rekommenderas inte) | Stöds inte | Stöd för* |
* Kontrollera att front-end-tjänstens tjänstkonto kan autentiseras över förtroendet mot den betrodda domänkontrollanten.
Felsöka specifika delegeringstyper
Konfigurationsinformationen för delegering varierar beroende på vilken typ av delegering du använder och vilken typ av konto som klientdelstjänsten använder. Mer information om hur du felsöker delegeringsproblem finns i följande artiklar efter behov:
- Felsöka Kerberos-begränsad delegering om du använder ett inbyggt tjänstkonto.
- Felsöka Kerberos RBCD om du använder ett inbyggt tjänstkonto.
- Felsöka Kerberos-begränsad delegering om du använder ett anpassat tjänstkonto.
- Felsöka Kerberos RBCD om du använder ett anpassat tjänstkonto.
Använda ett testscenario för logganalys för att felsöka Kerberos-autentisering
Avancerad Kerberos-testning och felsökning finns i Använda ett testscenario för logganalys för att felsöka Kerberos-autentisering.