Felsökningsvägledning för Kerberos-autentisering
Den här guiden ger dig de grundläggande begrepp som används vid felsökning av Kerberos-autentiseringsproblem.
Checklista för felsökning
Ett Kerberos-relaterat fel är ett symptom på att en annan tjänst misslyckas. Kerberos-protokollet förlitar sig på många tjänster som måste vara tillgängliga och fungera korrekt för att all autentisering ska kunna äga rum.
Om du vill avgöra om ett problem uppstår med Kerberos-autentisering kontrollerar du systemhändelseloggen efter fel från alla tjänster (till exempel Kerberos, kdc, LsaSrv eller Netlogon) på klienten, målservern eller domänkontrollanten som tillhandahåller autentisering. Om det finns sådana fel kan det också finnas fel som är associerade med Kerberos-protokollet.
Felgranskningar i målserverns säkerhetshändelselogg kan visa att Kerberos-protokollet användes när ett inloggningsfel inträffade.
Innan du inspekterar Kerberos-protokollet kontrollerar du att följande tjänster eller villkor fungerar korrekt:
- Nätverksinfrastrukturen fungerar korrekt och alla datorer och tjänster kan kommunicera.
- Domänkontrollanten är tillgänglig. Du kan köra kommandot
nltest /dsgetdc:<Domain Name> /force /kdc
(till exempelnltest /dsgetdc:contoso.com /force /kdc
) på klienten eller målservern. - DNS (Domain Name System) är korrekt konfigurerat och löser värdnamn och tjänster på rätt sätt.
- Klockorna synkroniseras över hela domänen.
- Alla viktiga uppdateringar och säkerhetsuppdateringar för Windows Server är installerade.
- All programvara, inklusive programvara från andra länder än Microsoft, uppdateras.
- Datorn startas om om du kör ett serveroperativsystem.
- De nödvändiga tjänsterna och servern är tillgängliga. Kerberos-autentiseringsprotokollet kräver att en fungerande domänkontrollant, DNS-infrastruktur och nätverk fungerar korrekt. Kontrollera att du kan komma åt dessa resurser innan du börjar felsöka Kerberos-protokollet.
Om du har undersökt alla dessa villkor och fortfarande har autentiseringsproblem eller Kerberos-fel måste du leta efter en lösning. Problemen kan orsakas av hur Kerberos-protokollet konfigureras eller hur andra tekniker som fungerar med Kerberos-protokollet konfigureras.
Kända problem och lösningar
Problem med Kerberos-delegering
I ett typiskt scenario skulle personifieringskontot vara ett tjänstkonto som tilldelats till ett webbprogram eller datorkontot för en webbserver. Det personifierade kontot skulle vara ett användarkonto som kräver åtkomst till resurser via ett webbprogram.
Det finns tre typer av delegering med Kerberos:
Fullständig delegering (obegränsad delegering)
Fullständig delegering bör undvikas så mycket som möjligt. Användaren (klientdelsanvändare och serverdelsanvändare) kan finnas i olika domäner och även i olika skogar.
Begränsad delegering (endast Kerberos och protokollövergång)
Användaren kan komma från valfri domän eller skog, men klientdelen och serverdelstjänsterna ska köras i samma domän.
Resursbaserad begränsad delegering (RBCD)
Användaren kan komma från valfri domän och klientdels- och serverdelsresurser kan komma från valfri domän eller skog.
Vanligaste felsökning av Kerberos-delegering
- Tjänstens huvudnamn saknas eller dupliceras
- Namnmatchningsfel eller felaktiga svar (fel IP-adresser har angetts för en server)
- Stora Kerberos-biljetter (MaxTokenSize) och miljön har inte konfigurerats korrekt
- Portar som blockeras av brandväggar eller routrar
- Tjänstkontot har inte rätt behörighet (tilldelning av användarrättigheter)
- Klient- eller serverdelstjänster som inte finns i samma domän och begränsad delegeringskonfiguration
Mer information finns i:
- Begränsad delegering för CIFS misslyckas med ACCESS_DENIED fel
- Konfigurera begränsad delegering för ett anpassat tjänstkonto
- Konfigurera begränsad delegering på NetworkService-kontot
Enkel inloggning (SSO) har brutits och frågor om autentisering en gång
Föreställ dig följande scenarier:
- Ett klient- och serverprogram som Microsoft Edge- och IIS-server (Internet Information Services). IIS-servern har konfigurerats med Windows-autentisering (Förhandla).
- Ett klient- och serverprogram som en SMB-klient och SMB-server. Som standard konfigureras SMB-servern med Negotiate Security Support Provider Interface (SSPI).
En användare öppnar Microsoft Edge och bläddrar på en intern webbplats http://webserver.contoso.com
. Webbplatsen är konfigurerad med Negotiate och den här webbplatsen uppmanar till autentisering. När användaren har angett användarnamnet och lösenordet manuellt får användaren autentisering och webbplatsen fungerar som förväntat.
Kommentar
Det här scenariot är ett exempel på en klient och server. Felsökningstekniken är densamma för alla klienter och servrar som konfigurerats med integrerad Windows-autentisering.
Integrerad Windows-autentisering bryts på användarnivå eller datornivå.
Metoder för felsökning
Granska klientkonfigurationen för en integrerad autentiseringsinställning som kan aktiveras på program- eller datornivå. Till exempel skulle alla HTTP-baserade program leta efter att webbplatsen ska finnas i en betrodd zon när du försöker utföra integrerad autentisering.
Öppna inetcpl.cpl (Internetalternativ), som alla HTTP-baserade program använder för Internet Explorer-konfigurationer, och granska om webbplatsen är konfigurerad som lokalt intranät.
Program har också en konfiguration för att utföra integrerad Windows-autentisering.
Microsoft Edge eller Internet Explorer har en inställning Aktivera integrerad Windows-autentisering som ska aktiveras.
Granska programkonfigurationen och klientdatorn kan hämta en Kerberos-biljett för ett angivet namn på tjänstens huvudnamn (SPN). I det här exemplet är
http/webserver.contoso.com
SPN .Lyckat meddelande när du hittar SPN:
C:>klist get http/webserver.contoso.com Current LogonId is 0:0x9bd1f A ticket to http/webserver.contoso.com has been retrieved successfully.
Felmeddelande när du inte hittar SPN:
C:>klist get http/webserver.contoso.com klist failed with 0xc000018b/-1073741429: The SAM database on the Windows Server does not have a computer account for this workstation trust relationship.
Identifiera och lägg till respektive SPN till lämpliga användar-, tjänst- eller datorkonton.
Om du har upptäckt att SPN:erna kan hämtas kan du kontrollera om de är registrerade på rätt konto med hjälp av följande kommando:
setspn -F -Q */webserver.contoso.com
Problem med identifiering av autentiserings-DC
Programservrar som konfigurerats med integrerad Windows-autentisering behöver domänkontrollanter (DCs) för att autentisera användaren/datorn och tjänsten.
Oförmågan att kontakta en domänkontrollant under autentiseringsprocessen leder till fel 1355:
Den angivna domänen finns inte eller kunde inte kontaktas
Det går inte att komma åt en resurs som konfigurerats med integrerad Windows-autentisering med fel 1355
Kommentar
Felmeddelanden kan skilja sig från programsynpunkt, men innebörden av felet är att klienten eller servern inte kan identifiera en domänkontrollant.
Här är exempel på sådana felmeddelanden:
-
Följande fel inträffade vid försök att ansluta till domänen Contoso:
Antingen finns inte den angivna domänen eller så kunde den inte kontaktas. -
Det gick inte att hitta domänkontrollanten för domänen contoso.com
-
Det gick inte att kontakta domänkontrollanten 1355
De främsta orsakerna till problemet
DNS-felkonfiguration på klienten
Du kan köra
ipconfig /all
kommandot och granska listan med DNS-servrar.DNS-felkonfiguration på domänkontrollanterna i en betrodd domän eller skog
Nätverksportar blockerade mellan klienten och domänkontrollanterna
DC Discovery-portar: UDP 389 (UDP LDAP) och UDP 53 (DNS)
Felsökningsanvisningar
nslookup
Kör kommandot för att identifiera eventuella DNS-felkonfigurationer.- Öppna nödvändiga portar mellan klienten och domänkontrollanten. Mer information finns i Konfigurera en brandvägg för Active Directory-domäner och -förtroenden.
Testscenario för logganalys
Miljö och konfiguration
Klientdator
Client1.contoso.com
(en Windows 11-dator) ansluter domänenContoso.com
.Användare
John
Användaren tillhör
Contoso.com
och loggar in på klientdatorn.Internetalternativ på klientdatorn
Alla webbplatser är en del av den lokala intranätzonen.
Server
IISServer.contoso.com
(Windows Server 2019) ansluter domänenContoso.com
.Autentiseringskonfiguration
Windows-autentisering är aktiverat.
Autentiseringsprovidrar: Förhandla
Aktiverade leverantörer anges på följande sätt:
Autentiseringsflöde
- Användaren
John
loggar inClient1.contoso.com
på , öppnar en Microsoft Edge-webbläsare och ansluter tillIISServer.contoso.com
. - Klientdatorn utför stegen nedan (steg 1 i diagrammet ovan):
- DNS-matcharen cachelagrar
IISServer.contoso.com
för att kontrollera om den här informationen redan är cachelagrad. - DNS-matcharen kontrollerar HOSTS-filen för mappning av
IISServer.contoso.com
i C:\Windows\System32\drivers\etc\Hosts. - Skicka en DNS-fråga till önskad DNS-server (konfigurerad i IP-konfigurationsinställningarna), som också är en domänkontrollant i miljön.
- DNS-matcharen cachelagrar
- DNS-tjänsten som körs på domänkontrollanten undersöker dess konfigurerade zoner, löser värd-A-posten och svarar med en IP-adress
IISServer.contoso.com
(steg 2 i diagrammet ovan). - Klientdatorn utför en TCP-trevägshandskakning på TCP-port 80 till
IISServer.contoso.com
. - Klientdatorn skickar en anonym HTTP-begäran till
IISServer.contoso.com
. - IIS-servern som lyssnar på port 80 tar emot begäran från
Client1.contoso.com
, tittar på autentiseringskonfigurationen för IIS-servrar och skickar tillbaka ett HTTP 401-utmaningssvar till klientdatorn med Negotiate som autentiseringskonfiguration (steg 3 i diagrammet ovan). - Microsoft Edge-processen som körs på
Client1.contoso.com
vet att IIS-servern är konfigurerad med Negotiate och kontrollerar om webbplatsen är en del av den lokala intranätzonen. Om webbplatsen finns i den lokala intranätzonen anropar Microsoft Edge-processen LSASS.exe för att få en Kerberos-biljett med ett SPNHTTP\IISServer.contoso.com
(steg 5 i diagrammet ovan). - Domänkontrollanten (KDC-tjänsten) tar emot begäran från
Client1.contoso.com
, söker i databasen efter SPNHTTP\IISServer.contoso.com
och sökerIISServer.contoso.com
efter har konfigurerats med detta SPN. - Domänkontrollanten svarar med ett TGS-svar med biljetten för IIS-servern (steg 6 i diagrammet ovan).
- Microsoft Edge-processen på klientdatorn skickar en Ap-begäran (Kerberos Application Protocol) till IIS-webbservern med Kerberos TGS-biljetten utfärdad av domänkontrollanten.
- IIS-processen anropar LSASS.exe på webbservern för att dekryptera biljetten och skapa en token med SessionID- och användargruppmedlemskap för auktorisering.
- IIS-processen får ett handtag från LSASS.exe till token för att fatta auktoriseringsbeslut och tillåta användaren att ansluta med ett AP-svar.
Network Monitor-analys av arbetsflödet
Kommentar
Du måste vara en användare av den lokala gruppen Administratörer för att utföra aktiviteterna nedan.
Installera Microsoft Network Monitor på klientdatorn (
Client1.contoso.com
).Kör följande kommando i ett upphöjd kommandotolkfönster (cmd.exe):
ipconfig /flushdns
Starta nätverksövervakaren.
Öppna Microsoft Edge-webbläsaren och skriv
http://iisserver.contoso.com
.Nätverksspårningsanalys:
DNS-fråga till domänkontrollanten för en värd-A-post:
IISServer.contoso.com
.3005 00:59:30.0738430 Client1.contoso.com DCA.contoso.com DNS DNS:QueryId = 0x666A, QUERY (Standard query), Query for iisserver.contoso.com of type Host Addr on class Internet
DNS-svar från DNS-tjänsten på domänkontrollanten.
3006 00:59:30.0743438 DCA.contoso.com Client1.contoso.com DNS DNS:QueryId = 0x666A, QUERY (Standard query), Response - Success, 192.168.2.104
Microsoft Edge-processen på
Client1.contoso.com
ansluter till IIS-webbservernIISServer.contoso.com
(anonym anslutning).3027 00:59:30.1609409 Client1.contoso.com iisserver.contoso.com HTTP HTTP:Request, GET / Host: iisserver.contoso.com
IIS-servern svarar med HTTP-svar 401: Negotiate och NTLM (konfiguration som utförs på IIS-servern).
3028 00:59:30.1633647 iisserver.contoso.com Client1.contoso.com HTTP HTTP:Response, HTTP/1.1, Status: Unauthorized, URL: /favicon.ico Using Multiple Authetication Methods, see frame details WWWAuthenticate: Negotiate WWWAuthenticate: NTLM
Kerberos-begäran från
Client1.contoso.com
går till domänkontrollantenDCA.contoso.com
med ett SPN:HTTP/iisserver.contoso.com
.3034 00:59:30.1834048 Client1.contoso.com DCA.contoso.com KerberosV5 KerberosV5:TGS Request Realm: CONTOSO.COM Sname: HTTP/iisserver.contoso.com
Domänkontrollanten
DCA.contoso.com
svarar tillbaka med Kerberos-begäran, som har ett TGS-svar med en Kerberos-biljett.3036 00:59:30.1848687 DCA.contoso.com Client1.contoso.com KerberosV5 KerberosV5:TGS Response Cname: John Ticket: Realm: CONTOSO.COM, Sname: HTTP/iisserver.contoso.com Sname: HTTP/iisserver.contoso.com
Microsoft Edge-processen på
Client1.contoso.com
går nu till IIS-servern med en Kerberos AP-begäran.3040 00:59:30.1853262 Client1.contoso.com iisserver.contoso.com HTTP HTTP:Request, GET /favicon.ico , Using GSS-API Authorization Authorization: Negotiate Authorization: Negotiate YIIHGwYGKwYBBQUCoIIHDzCCBwugMDAuBgkqhkiC9xIBAgIGCSqGSIb3EgECAgYKKwYBBAGCNwICHgYKKwYBBAGCNwICCqKCBtUEggbRYIIGzQYJKoZIhvcSAQICAQBugga8MIIGuKADAgEFoQMCAQ6iBwMFACAAAACjggTvYYIE6zCCBOegAwIBBaENGwtDT05UT1NPLkNPTaIoMCagAwIBAqEfMB0bBEhUVFAbF SpnegoToken: 0x1 NegTokenInit: ApReq: KRB_AP_REQ (14) Ticket: Realm: CONTOSO.COM, Sname: HTTP/iisserver.contoso.com
IIS-servern svarar med ett svar om att autentiseringen är klar.
3044 00:59:30.1875763 iisserver.contoso.com Client1.contoso.com HTTP HTTP:Response, HTTP/1.1, Status: Not found, URL: / , Using GSS-API Authentication WWWAuthenticate: Negotiate oYG2MIGzoAMKAQChCwYJKoZIgvcSAQICooGeBIGbYIGYBgkqhkiG9xIBAgICAG+BiDCBhaADAgEFoQMCAQ+ieTB3oAMCARKicARuIF62dHj2/qKDRV5XjGKmyFl2/z6b9OHTCTKigAatXS1vZTVC1dMvtNniSN8GpXJspqNvEfbETSinF0ee7KLaprxNgTYwTrMVMnd95SoqBkm/FuY7WbTAuPvyRmUuBY3EKZEy NegotiateAuthorization: GssAPI: 0x1 NegTokenResp: ApRep: KRB_AP_REP (15)
klist tickets
Kör kommandot för att granska Kerberos-biljetten i kommandoutdata påClient1.contoso.com
.Client: John @ CONTOSO.COM Server: HTTP/iisserver.contoso.com @ CONTOSO.COM KerbTicket Encryption Type: AES-256-CTS-HMAC-SHA1-96 Ticket Flags 0x40a10000 -> forwardable renewable pre_authent name_canonicalize Start Time: 11/28/2022 0:59:30 (local) End Time: 11/28/2022 10:58:56 (local) Renew Time: 12/5/2022 0:58:56 (local) Session Key Type: AES-256-CTS-HMAC-SHA1-96 Cache Flags: 0 Kdc Called: DCA.contoso.com
Granska händelse-ID 4624 på IIS-servern som visar
Success
granskningen:
Som standard
Success
är granskningarna ellerFailure
aktiverade på alla serveroperativsystem i Windows. Du kan kontrollera om granskning är aktiverat med följande kommando.Om du upptäcker att granskning inte är aktiverat aktiverar du granskning. Granska inloggningskategorin i listan nedan. Som du kan se är underkategorin för inloggning aktiverad med
Success and Failure
.C:\>auditpol /get /Subcategory:"logon" System audit policy Category/Subcategory Setting Logon/Logoff Logon Success and Failure
Om du inte ser inloggning med
Success and Failure
kör du kommandot för att aktivera det:C:\>auditpol /set /subcategory:"Logon" /Success:enable /Failure:enable The command was successfully executed.
Granska lyckad säkerhetshändelse-ID 4624 på IISServer.contoso.com
Observera följande fält:
Logon type
: 3 (nätverksinloggning)Security ID
iNew Logon
fält:Contoso\John
Source Network Address
: IP-adressen för klientdatornLogon Process
ochAuthentication Package
:Kerberos
Log Name: Security
Source: Microsoft-Windows-Security-Auditing
Date: 11/28/2022 12:59:30 AM
Event ID: 4624
Task Category: Logon
Level: Information
Keywords: Audit Success
User: N/A
Computer: IISServer.contoso.com
Description:
An account was successfully logged on.
Subject:
Security ID: NULL SID
Account Name: -
Account Domain: -
Logon ID: 0x0
Logon Information:
Logon Type: 3
Restricted Admin Mode: -
Virtual Account: No
Elevated Token: No
Impersonation Level: Impersonation
New Logon:
Security ID: CONTOSO\John
Account Name: John
Account Domain: CONTOSO.COM
Logon ID: 0x1B64449
Linked Logon ID: 0x0
Network Account Name: -
Network Account Domain: -
Logon GUID: {<GUID>}
Process Information:
Process ID: 0x0
Process Name: -
Network Information:
Workstation Name: -
Source Network Address: 192.168.2.101
Source Port: 52655
Detailed Authentication Information:
Logon Process: Kerberos
Authentication Package: Kerberos
Felsöka arbetsflöde för autentisering
Använd någon av följande metoder för att felsöka problemet.
Kontrollera om du kan matcha namnet på IIS-webbservern (
IISServer.contoso.com
) frånClient1.contoso.com
.Kontrollera om DNS-servern svarar på rätt IP-adress för IIS-servern med hjälp av följande cmdlet:
PS C:\> Resolve-DnsName -Name IISServer.contoso.com Name Type TTL Section IPAddress ---- ---- --- ------- --------- IISServer.contoso.com A 1200 Answer 192.168.2.104
Kontrollera om nätverksportarna öppnas mellan klientdatorn och IIS-webbservern (
IISServer.contoso.com
) med hjälp av följande cmdlet:PS C:\> Test-NetConnection -Port 80 IISServer.contoso.com ComputerName : IISServer.contoso.com RemoteAddress : 192.168.2.104 RemotePort : 80 InterfaceAlias : Ethernet 2 SourceAddress : 192.168.2.101 TcpTestSucceeded : True
Kontrollera om du får en Kerberos-biljett från domänkontrollanten.
Öppna en normal kommandotolk (inte en kommandotolk för administratör) i kontexten för användaren som försöker komma åt webbplatsen.
Kör kommandot
klist purge
.Kör kommandot på
klist get http/iisserver.contoso.com
följande sätt:PS C:\> klist get http/iisserver.contoso.com Current LogonId is 0:0xa8a98b A ticket to http/iisserver.contoso.com has been retrieved successfully. Cached Tickets: (2) #0> Client: John @ CONTOSO.COM Server: krbtgt/CONTOSO.COM @ CONTOSO.COM KerbTicket Encryption Type: AES-256-CTS-HMAC-SHA1-96 Ticket Flags 0x40e10000 -> forwardable renewable initial pre_authent name_canonicalize Start Time: 11/28/2022 1:28:11 (local) End Time: 11/28/2022 11:28:11 (local) Renew Time: 12/5/2022 1:28:11 (local) Session Key Type: AES-256-CTS-HMAC-SHA1-96 Cache Flags: 0x1 -> PRIMARY Kdc Called: DCA.contoso.com #1> Client: John @ CONTOSO.COM Server: http/iisserver.contoso.com @ CONTOSO.COM KerbTicket Encryption Type: AES-256-CTS-HMAC-SHA1-96 Ticket Flags 0x40a10000 -> forwardable renewable pre_authent name_canonicalize Start Time: 11/28/2022 1:28:11 (local) End Time: 11/28/2022 11:28:11 (local) Renew Time: 12/5/2022 1:28:11 (local) Session Key Type: AES-256-CTS-HMAC-SHA1-96 Cache Flags: 0 Kdc Called: DCA.contoso.com
Du kommer att upptäcka att du får en Kerberos-biljett för SPN
http/IISServer.contoso.com
iCached Ticket (2)
kolumnen.
Kontrollera om IIS-webbtjänsten körs på IIS-servern med standardautentiseringsuppgifterna.
Öppna en vanlig PowerShell-prompt (inte en PowerShell-administratörsprompt) i kontexten för användaren som försöker komma åt webbplatsen.
PS C:\> invoke-webrequest -Uri http://IIsserver.contoso.com -UseDefaultCredentials PS C:\> invoke-webrequest -Uri http://IIsserver.contoso.com -UseDefaultCredentials StatusCode : 200 StatusDescription : OK Content : <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" cont... RawContent : HTTP/1.1 200 OK Persistent-Auth: true Accept-Ranges: bytes Content-Length: 703 Content-Type: text/html Date: Mon, 28 Nov 2022 09:31:40 GMT ETag: "3275ea8a1d91:0" Last-Modified: Fri, 25 Nov 2022...
Granska händelseloggen Säkerhet på IIS-servern:
- Lyckad händelselogg 4624
- Felhändelselogg 4625
Isoleringsprocess: Du kan använda felsökningsstegen nedan för att kontrollera om andra tjänster på IIS-servern kan bearbeta Kerberos-autentisering.
Förutsättningar:
IIS-servern ska köra en serverversion av Windows.
IIS-servern bör ha en port öppen för tjänster som SMB (port 445).
Skapa en ny resurs eller ge användaren
John
behörighet att läsa på en av mapparna (till exempel Software$) som redan delas på datorn.Logga in på
Client1.contoso.com
.Öppna Utforskaren.
Skriv \IISServer.contoso.com \Software$.
Öppna Säkerhetshändelser på
IISServer.contoso.com
och kontrollera om du ser händelse-ID 4624.Öppna en normal kommandotolk på
Client1.contoso.com
som användarenJohn
.klist tickets
Kör kommandot och granska för biljettenCIFS/IISServer.contoso.com
.#1> Client: John @ CONTOSO.COM Server: cifs/iisserver.contoso.com @ CONTOSO.COM KerbTicket Encryption Type: AES-256-CTS-HMAC-SHA1-96 Ticket Flags 0x40a10000 -> forwardable renewable pre_authent name_canonicalize Start Time: 11/28/2022 1:40:22 (local) End Time: 11/28/2022 11:28:11 (local) Renew Time: 12/5/2022 1:28:11 (local) Session Key Type: AES-256-CTS-HMAC-SHA1-96 Cache Flags: 0 Kdc Called: DCA.contoso.com
Samla in nätverksspårningar på
Client1.contoso.com
. Granska nätverksspårningarna för att se vilket steg som misslyckas så att du kan begränsa stegen ytterligare och felsöka problemet.