
Tenemos un servicio .Net de Windows que utiliza un Httplistener y autentica solicitudes mediante Kerberos. Cuando los usuarios se conectan a través de su navegador, un error en el registro de eventos de los usuarios muestra un ID de evento Kerberos 4:
El cliente Kerberos recibió un error KRB_AP_ERR_MODIFIED del servidor$nombre de usuario$. El nombre de destino utilizado fue HTTP/$servername$.$domain$.com.au. Esto indica que el servidor de destino no pudo descifrar el ticket proporcionado por el cliente. Esto puede ocurrir cuando el nombre principal del servidor de destino (SPN) está registrado en una cuenta distinta de la cuenta que utiliza el servicio de destino. Asegúrese de que el SPN de destino solo esté registrado en la cuenta utilizada por el servidor. Este error también puede ocurrir si la contraseña de la cuenta del servicio de destino es diferente a la configurada en el Centro de distribución de claves Kerberos para ese servicio de destino. Asegúrese de que el servicio en el servidor y el KDC estén configurados para usar la misma contraseña. Si el nombre del servidor no está completamente calificado y el dominio de destino ($dominio$.COM.AU) es diferente del dominio del cliente ($dominio$.COM.AU), verifique si hay cuentas de servidor con nombres idénticos en estos dos dominios. o utilice el nombre completo para identificar el servidor.
Por alguna razón, el servidor que informa es el usuario que ejecuta el servicio. La primera línea:
El cliente Kerberos recibió un error KRB_AP_ERR_MODIFIED del servidor$nombre de usuario$.
Cada sitio web (incluido Server Fault) tiene soluciones para este error relacionado con problemas de SPN, pero siempre tiene un nombre de servidor en el error. No puedo encontrar el mensaje anterior con un nombre de usuario.
Hemos probado con diferentes usuarios y cambia la parte anterior del mensaje de error. Todas las cuentas de dominio tienen el mismo problema. Si ejecutamos el servicio como cuenta del sistema local no tenemos este problema, pero eso nos causa otros problemas con el servicio (necesita una cuenta de dominio para otros permisos). No tenemos, nunca hemos tenido, ningún servidor con el mismo nombre que los nombres de usuario que hemos probado.
¿Alguien ha visto este problema con el nombre de usuario que aparece aquí antes? ¿Cuál es la solución?
Todos los servidores son Windows 2012 (no R2).
Respuesta1
Me alegra que hayas resuelto tu propio problema, pero no parece que entiendas por qué lo que ejecutaste resolvió el problema.
En pocas palabras, el SPN debe configurarse en el objeto apropiado. Parece que tenía el SPN configurado en el objeto de la computadora en AD que estaba ejecutando el servicio. Es por eso que las cosas comenzaron a funcionar si cambiaba el servicio para que se ejecutara como SISTEMA. Pero si lo cambia para que se ejecute como un usuario de dominio, deberá mover el SPN a ese usuario. Y es importante que tumover(léase: eliminarlo de la cuenta de la computadora) y no soloCopiarél. Los SPN duplicados arruinarán las cosas.
Respuesta2
Encontré la solución aquí:http://blogs.technet.com/b/dcaro/archive/2013/07/04/fixing-the-security-kerberos-4-error.aspx
Corrí:
setspn -A HTTP/$servername$.$domain$.com.au $username$
y eso soluciono el problema