Nota
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
En este artículo se usa una implementación hipotética de cliente y servidor para demostrar los enfoques de solución de problemas de autenticación Kerberos.
Entorno y configuración
El usuario "John" pertenece al
contoso.com
dominio.Todos los servidores del sistema de nombres de dominio (DNS) del dominio son controladores de dominio.
John ha iniciado sesión en un equipo cliente que está configurado de la siguiente manera:
Nombre y dominio:
Client1.contoso.com
Sistema operativo: Windows 11
Explorador: Microsoft Edge
Aplicación de supervisión: Monitor de red (instalado desde Microsoft Network Monitor)
Configuración de opciones de Internet: todos los
contoso.com
sitios pertenecen a la zona de intranet local
En el equipo cliente, John se conecta a un servidor de destino que está configurado de la siguiente manera:
Nombre y dominio:
IISServer.contoso.com
Sistema operativo: Windows Server 2019
Servicio de destino: sitio web que se ejecuta en Internet Information Services (IIS)
Cuenta de servicio de destino: la cuenta de computadora (el servicio funciona en el contexto de
IISServer.contoso.com
)Puerto de servicio de destino: puerto TCP 80
Configuración de autenticación (configurada en Internet Information Services Manager):
La autenticación de Windows está habilitada.
La lista de proveedores de autenticación habilitados incluye Negotiate, como se muestra en la captura de pantalla siguiente:
Configuración de auditoría de inicio de sesión: la auditoría de éxitos y la auditoría de fallos de inicio de sesión están habilitadas.
Nota:
De forma predeterminada, todos los sistemas operativos Windows Server tienen habilitada la auditoría de inicio de sesión de éxito y error. Para comprobar esta configuración, abra una ventana de comandos con privilegios de administrador y, a continuación, ejecute el siguiente comando:
auditpol /get /Subcategory:"logon"
Si la configuración está habilitada, este comando genera la siguiente salida:
System audit policy Category/Subcategory Setting Logon/Logoff Logon Success and Failure
Si no ve este resultado, ejecute el siguiente comando para habilitar el registro de auditoría de éxito y fallo:
auditpol /set /subcategory:"Logon" /Success:enable /Failure:enable
Flujo de autenticación esperado
En el diagrama siguiente se muestra la secuencia de mensajes de solicitud y respuesta de Kerberos y las rutas de acceso de esos mensajes en el entorno que se describe en la sección anterior.
El proceso se inicia cuando el usuario John, que ha iniciado sesión en el equipo Client1.contoso.com
cliente, abre un explorador de Microsoft Edge y se conecta a IISServer.contoso.com
.
El paso 1 se produce en el equipo cliente e incluye los pasos siguientes:
- El servicio de resolución DNS almacena en caché
IISServer.contoso.com
para comprobar si esta información ya está almacenada en caché. - El servicio de resolución DNS comprueba el archivo HOSTS (C:\Windows\System32\drivers\etc\Hosts) para cualquier mapeo de
IISServer.contoso.com
. - El servicio de cliente DNS envía una consulta DNS al servidor DNS preferido (tal como se ha configurado en las opciones de configuración de IP).
El paso 2 se produce en el servidor DNS (controlador de dominio) e incluye los pasos siguientes:
- El servicio de servidor DNS comprueba sus zonas configuradas, localiza el registro "A" del host y lo resuelve a la dirección IP
IISServer.contoso.com
192.168.2.104
. - El servidor DNS devuelve la dirección IP al equipo cliente.
El paso 3 se produce en el equipo cliente e incluye los pasos siguientes:
- El equipo cliente realiza un protocolo de enlace de tres vías TCP con
IISServer.contoso.com
mediante el puerto TCP 80. - El equipo cliente envía una solicitud HTTP anónima a
IISServer.contoso.com
.
El paso 4 se produce en el servidor de destino e incluye los pasos siguientes:
- El servicio web (que se ejecuta como
IISServer.contoso.com
) recibe la solicitud deClient1.contoso.com
. - El servicio web envía un mensaje de respuesta a
Client1.contoso.com
que contiene una respuesta de desafío "HTTP 401". el mensaje especifica Negotiate como proveedor de autenticación preferido y NTLM como proveedor de autenticación secundario.
El paso 5 se produce en el equipo cliente e incluye los pasos siguientes:
- El ordenador cliente recibe el mensaje de respuesta al desafío de
IISServer.contoso.com
. - El proceso de Microsoft Edge comprueba que
IISServer.contoso.com
pertenece a la zona de intranet local. Por lo tanto, el proceso de autenticación debe usar Kerberos en lugar de NTLM. - El proceso de Microsoft Edge llama a LSASS.exe para buscar un ticket de servicio para
IISServer.contoso.com
. - En este caso, el equipo cliente no tiene un ticket de servicio apropiado. El proceso de Microsoft Edge envía una solicitud al Centro de distribución de Kerberos (KDC) para un vale.
El paso 6 se produce en el controlador de dominio e incluye los pasos siguientes:
- El controlador de dominio (servicio KDC) recibe la solicitud de
Client1.contoso.com
y busca el servicio que usa el SPNHTTP\IISServer.contoso.com
(oHOST\IISServer.contoso.com
). - El controlador de dominio identifica el servicio solicitado como el servicio web que se ejecuta en el contexto de
IISServer.contoso.com
. - El controlador de dominio envía una respuesta al equipo cliente que incluye una incidencia de servicio para el
IISServer.contoso.com
servicio web.
El paso 7 se produce en el controlador de dominio e incluye los pasos siguientes:
- El proceso de Microsoft Edge crea un mensaje de Protocolo de aplicación Kerberos (AP) que incluye el vale de servicio.
- El proceso de Microsoft Edge envía el mensaje AP a
IISServer.contoso.com
en respuesta al mensaje de respuesta de desafío "HTTP 401".
El paso 8 se produce en el servidor web e incluye los pasos siguientes:
- El proceso de IIS consulta el proceso de LSASS.exe local.
- El LSASS.exe proceso descifra el vale y, a continuación, crea un token para el usuario que incluye un ID de sesión y las membresías de grupo de John.
- El proceso LSASS.exe devuelve al proceso de IIS un identificador para el token.
- El proceso de IIS comprueba la información del grupo en el token para asegurarse de que John tiene permiso para acceder a la página solicitada.
- El proceso de IIS envía la página solicitada al explorador.
Uso de Network Monitor para registrar una prueba de autenticación
Siga estos pasos para recopilar datos de seguimiento en un entorno similar al descrito en la sección Entorno y configuración . Durante esta prueba, los componentes del sistema deben interactuar de la manera que se describe en la sección Flujo de autenticación esperado .
Nota:
Para usar los procedimientos de esta sección, debe pertenecer al grupo administradores local:
- En el equipo cliente, abra una ventana de comandos con privilegios administrativos y, a continuación, ejecute
ipconfig /flushdns
. - Abra Network Monitor e inicie la grabación.
- Abra Microsoft Edge. En la barra de direcciones, escriba
http://iisserver.contoso.com
. - Cuando finalice la operación de Microsoft Edge, detenga la grabación en el Monitor de red.
Revise los datos que genera la prueba de autenticación.
La prueba de autenticación genera la siguiente información:
- Datos de seguimiento de Network Monitor
- Datos de tickets
- Datos de eventos de éxito de auditoría y fallo de auditoría para eventos de autenticación
El resto de esta sección proporciona más detalles sobre los datos que genera el flujo de autenticación.
Revisión de los datos de seguimiento para eventos significativos
En los datos de seguimiento, busque información similar a los siguientes extractos de seguimiento:
Consulta DNS al controlador de dominio para el registro "A" del host
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
Respuesta DNS del servicio DNS en el controlador de dominio:
3006 00:59:30.0743438 DCA.contoso.com Client1.contoso.com DNS DNS:QueryId = 0x666A, QUERY (Standard query), Response - Success, 192.168.2.104
Solicitud anónima del proceso de Microsoft Edge en
Client1.contoso.com
al servidor web IISIISServer.contoso.com
:3027 00:59:30.1609409 Client1.contoso.com iisserver.contoso.com HTTP HTTP:Request, GET / Host: iisserver.contoso.com
Mensaje de respuesta de desafío HTTP 401 de
IISServer.contoso.com
aClient1.contoso.com
: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
Solicitud de vale de servicio desde
Client1.contoso.com
al controladorDCA.contoso.com
de dominio para el servicio que usaHTTP/iisserver.contoso.com
como SPN (también conocido como mensaje de solicitud de TGS):3034 00:59:30.1834048 Client1.contoso.com DCA.contoso.com KerberosV5 KerberosV5:TGS Request Realm: CONTOSO.COM Sname: HTTP/iisserver.contoso.com
Respuesta de vale de servicio de
DCA.contoso.com
que incluye el vale de servicio paraIISServer.contoso.com
(también conocido como mensaje de respuesta de TGS):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
Segunda solicitud del proceso de Microsoft Edge desde
Client1.contoso.com
haciaIISServer.contoso.com
. Este mensaje incluye el vale de servicio: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
Mensaje del servidor IIS a
Client1.contoso.com
. Este mensaje indica que el usuario está autenticado y autorizado: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)
Verifique la información del ticket en el equipo cliente.
En un símbolo del sistema de comandos del ordenador cliente, ejecute klist tickets
. La salida debe ser similar al fragmento siguiente:
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
Revisión de eventos de auditoría en el servidor de destino
En el Visor de eventos de IISServer.contoso.com
, vaya al registro Registros de Windows>Seguridad para revisar los eventos de inicio de sesión. Busque instancias del identificador de evento 4624 o 4625 y compruebe los campos siguientes:
- Palabras clave: Auditoría correcta o Error de auditoría
- Tipo de inicio de sesión: 3 (inicio de sesión de red)
- Identificador de seguridad en el campo Nuevo inicio de sesión : Contoso\John
- Dirección de red de origen: dirección IP del equipo cliente
- Proceso de inicio de sesión y paquete de autenticación: Kerberos
El texto completo del registro de eventos es similar al siguiente extracto:
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
Solución de problemas del flujo de trabajo de autenticación
Revise los seguimientos de red para observar qué paso produce un error para que pueda restringir la ubicación en el proceso en el que se produce el problema. Use esta información para determinar qué métodos de solución de problemas pueden ayudarle a solucionar el problema.
Comprobación de la conectividad de red
Si parece haber un problema en las comunicaciones DNS o TCP, compruebe las siguientes interacciones:
Compruebe que puede resolver el nombre del servidor de destino (
IISServer.contoso.com
) desde el equipo cliente (Client1.contoso.com
).Compruebe que el servidor DNS resuelve correctamente la dirección IP del servidor de destino. Para ello, abra una ventana de PowerShell y ejecute el siguiente cmdlet:
Resolve-DnsName -Name IISServer.contoso.com
La salida de este cmdlet debe ser similar al fragmento siguiente:
Name Type TTL Section IPAddress ---- ---- --- ------- --------- IISServer.contoso.com A 1200 Answer 192.168.2.104
Compruebe que los puertos de red necesarios están abiertos entre el equipo cliente y el servidor de destino. Para ello, ejecute el siguiente cmdlet:
Test-NetConnection -Port 80 IISServer.contoso.com
La salida de este cmdlet debe ser similar al fragmento siguiente:
ComputerName : IISServer.contoso.com RemoteAddress : 192.168.2.104 RemotePort : 80 InterfaceAlias : Ethernet 2 SourceAddress : 192.168.2.101 TcpTestSucceeded : True
Verifique la información del ticket en el ordenador del cliente
Abra una ventana estándar del símbolo del sistema (en lugar de una ventana del símbolo del sistema administrativa) en el contexto del usuario que intenta acceder al sitio web.
Ejecute los siguientes comandos, en el orden especificado:
klist purge klist get http/iisserver.contoso.com
La salida de estos comandos debe ser similar al fragmento siguiente:
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
Este extracto indica que el boleto se recuperó correctamente. Los detalles del ticket se etiquetan como "#1>" en la sección Tickets en caché.
Compruebe que el servicio web IIS se ejecuta en el servidor IIS mediante las credenciales predeterminadas.
Abra una ventana estándar de PowerShell (en lugar de una ventana administrativa de PowerShell) en el contexto del usuario que intenta acceder al sitio web:
invoke-webrequest -Uri http://IIsserver.contoso.com -UseDefaultCredentials
La salida de estos comandos debe ser similar al fragmento siguiente:
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...
Revise el registro de eventos de seguridad en el servidor de destino.
En el Visor de eventos del servidor de destino, vaya al registro de Windows>de seguridad. Busque instancias del identificador de evento 4624 (auditoría correcta) o 4625 (error de auditoría).
Comprobación de que otros servicios funcionan correctamente
Para comprobar que otros servicios del servidor de destino pueden procesar la autenticación Kerberos, siga estos pasos:
En el servidor de destino, cree un recurso compartido de archivos o identifique un recurso compartido de archivos existente que se usará para realizar pruebas. Asegúrese de que, en calidad de "John", tiene permiso de lectura en la carpeta.
En el equipo cliente, inicie sesión (como el usuario "John") y, a continuación, abra el Explorador de Windows.
En la barra de direcciones, escriba \\IISServer.contoso.com \Software$.
En el servidor de destino, abra el Visor de eventos y, a continuación, revise los eventos de seguridad. Verifique si hay nuevos eventos de ID de evento 4624 o ID de evento 4625.
En el equipo cliente, ejecute el
klist tickets
comando en el símbolo del sistema. La salida del comando debe incluir un vale de servicio paraCIFS/IISServer.contoso.com
, como se muestra en el fragmento siguiente:#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