Introducción a la Configuration Manager Kerberos para SQL Server

Se aplica a:  SQL Server

Número de KB original: 2985455

Una configuración de Kerberos incorrecta en la red puede provocar varios errores de conectividad en Microsoft SQL Server. Kerberos Configuration Manager para SQL Server es una herramienta de diagnóstico que le ayuda a solucionar problemas de conectividad relacionados con Kerberos que afectan a SQL Server, SQL Server Reporting Services (SSRS) y SQL Server Analysis Services (SSAS). En este artículo se proporciona información sobre cómo usar la herramienta de Configuration Manager Kerberos y cómo interpretar la salida de la herramienta para corregir problemas de Kerberos que afectan a SQL Server.

Funciones de la Configuration Manager Kerberos

Kerberos Configuration Manager puede realizar las siguientes tareas:

  • Recopile información sobre el sistema operativo, las instancias de Microsoft SQL Server y Always On agentes de escucha del grupo de disponibilidad instalados en un servidor.
  • Informe de todas las configuraciones de nombre de entidad de seguridad de servicio (SPN) y delegación en el servidor.
  • Identificar posibles problemas en spns y delegaciones.
  • Corrija posibles problemas de SPN.

Escenarios de uso

Esta herramienta le ayuda a solucionar los problemas de las siguientes excepciones:

  • 401

    Nota: Este mensaje de error es para errores HTTP, errores de SSRS y otros errores similares.

  • No se puede generar el contexto de SSPI
  • Error de inicio de sesión del usuario "NTAUTHORITY\ANONYMOUS LOGON"
  • Error de inicio de sesión para el usuario '(null)'
  • Error de inicio de sesión del usuario (vacío)

Nota

Antes de empezar a solucionar problemas, se recomienda revisar los requisitos previos y, a continuación, revisar la lista de comprobación general para solucionar errores relacionados con la conectividad.

Nota

Si tiene acceso de administrador al equipo basado en SQL Server, también puede ejecutar la herramienta Comprobación de la configuración de conectividad de SQL en ese equipo y, a continuación, revisar la salida para comprobar la configuración de SPN de la instancia de SQL Server.

Descarga de la herramienta

Esta herramienta está disponible para su descarga desde el Centro de descarga de Microsoft:

Microsoft Kerberos Configuration Manager para SQL Server

Nota

Puede descargar e instalar la herramienta en cualquier equipo del dominio que pueda conectarse al equipo basado en SQL Server.

Permisos

Para solucionar problemas de conectividad que afectan a SQL, SSRS y SSAS, conéctese al equipo de destino (que hospeda el servicio) mediante una cuenta de usuario de dominio que tenga permisos administrativos para ese equipo.

Opcional: si desea usar la herramienta para corregir los problemas de SPN identificados por la herramienta, la cuenta de dominio debe tener el permiso De escritura validada en el nombre principal del servicio .

Uso de la herramienta

Una vez finalizada la instalación, inicie el KerberosConfigMgr.exe binario; para ello, vaya a la carpeta de instalación. De forma predeterminada, la ubicación es C:\Archivos de programa\Microsoft\Kerberos Configuration Manager para SQL Server.

Para obtener información sobre cómo iniciar una aplicación como administrador o como un usuario diferente, consulte Uso de Ejecutar para iniciar una aplicación como administrador.

Use una de las siguientes opciones para empezar a solucionar problemas:

  • Para conectarse a un equipo remoto basado en SQL Server, escriba los valores adecuados para Nombre de servidor, Nombre de usuario de dominio y Contraseña.

    Nota

    La herramienta de Configuration Manager Kerberos usa una API de Windows para consultar y mostrar información sobre la configuración de Kerberos para el equipo SQL Server. Por lo tanto, escriba siempre el nombre del equipo que hospeda la instancia de SQL Server, incluso si está solucionando problemas relacionados con Kerberos para una instancia con nombre.

  • Para conectarse a un servidor local, seleccione Conectar para analizar la configuración de Kerberos. En este caso, no es necesario especificar el nombre del servidor, el nombre de usuario de dominio o la contraseña.

    Nota

    La cuenta que inicia la herramienta debe ser una cuenta de administrador local. Para obtener información sobre cómo iniciar una aplicación como administrador o como un usuario diferente, consulte Uso de Ejecutar para iniciar una aplicación como administrador.

Una vez que la conexión se realiza correctamente, todos los SPN relacionados se muestran en la captura de pantalla siguiente.

Captura de pantalla de una vista de las tres pestañas de la Configuration Manager Kerberos.

En esta captura de pantalla, la interfaz de usuario tiene las pestañas siguientes:

  • Sistema: muestra la información del usuario y la información de la máquina.

  • SPN: muestra la información del nombre principal de servicio (SPN) sobre cada una de las instancias de SQL Server que se encuentran en el servidor de destino y proporciona detalles como el SPN necesario y su estado.

  • Generar: ayuda a encontrar SPN que faltan y configurados. También le ayuda a generar el script de generación de SPN.

    1. Seleccione Generar.
    2. En el cuadro de diálogo que se abre, proporcione un nombre (en este caso, "generateSPNs"), establezca Guardar como tipo como el archivo Mgr(.cmd) de configuración de Kerberos y, a continuación, seleccione Guardar.

    Cuadro de diálogo para proporcionar un nombre para el archivo CMD.

Se crea el archivo generateSPNss.cmd y puede ejecutarlo en un símbolo del sistema. El contenido del archivo generateSPNss.cmd será similar al siguiente ejemplo:

:: This script is generated by the Microsoft® SQL Server® Kerberos Configuration Manager tool.

:: The script may update the system information, SPN settings and Delegation configurations of a given server.

:: SPN and Delegation configuration updates require Windows Domain Administrator permission to execute.

:: A Domain Admin should review the configurations recommended by this tool and take appropriate actions to enable Kerberos authentication.

:: Please contact Microsoft Support if Kerberos connection problem persists.

:: The file is intended to be run in domain `<DomainName>.com`"

:: Corrections for MSSQLSvc/`<HostName>.<DomainName>.com` **SetSPN -s MSSQLSvc/`<HostName>`. `<DomainName>`.com UserName** 
  • Use SetSPN para crear un SPN en la cuenta de servicio para SQL Server.

  • Use Corregir para corregir problemas y agregar SPN. Solo puede agregar un SPN si tiene los permisos necesarios. Al seleccionar Corregir, se muestra la siguiente sugerencia de herramientas:

    Captura de pantalla de la opción Corregir para agregar SPN.

    Nota

    La herramienta proporciona los comandos Fix y Generate solo para instancias predeterminadas e instancias con nombre que tienen puertos estáticos. En el caso de las instancias con nombre que usan puertos dinámicos, se recomienda cambiar de puertos dinámicos a estáticos o proporcionar los permisos necesarios para que la cuenta de servicio registre y anule el registro del SPN cada vez que se inicie el servicio SQL. De lo contrario, tendrá que anular manualmente el registro y volver a registrar los SPN correspondientes cada vez que se inicie el servicio. Para obtener más información, consulte Registro de un nombre de entidad de seguridad de servicio para conexiones Kerberos.

  • Delegación: use delegación para identificar los problemas que afectan a la configuración de la cuenta de servicio para la delegación. Esto es especialmente útil para solucionar problemas del servidor vinculado. Por ejemplo, si la desprotección de SPN está bien, pero sigue experimentando problemas que afectan a las consultas del servidor vinculado, esto podría indicar que la cuenta de servicio no está configurada para delegar credenciales. Para obtener más información, vea el tema De los Libros en línea en Configuración de servidores vinculados para delegación.

    Captura de pantalla de la pestaña Delegación.

Interpretación y actuación en el diagnóstico de la Configuration Manager Kerberos

Revise el diagnóstico de la herramienta haciendo referencia a la columna Estado . En función del estado, siga los pasos adecuados para resolver el problema.

  • Estado: correcto

    Más información: El elemento seleccionado está configurado correctamente. Vaya al siguiente elemento de la salida.

    Acción: no se requiere ninguna acción.

  • Estado: falta el SPN necesario

    Más información: Este estado se notifica si falta el nombre de entidad de seguridad de servicio (SPN) que se menciona en la columna SPN requerido para la cuenta de inicio de SQL Server en Active Directory.

    Acción: siga estos pasos para comprobar si se resuelven los problemas del SPN:

    1. Seleccione Corregir para revisar la información en el cuadro de diálogo Advertencia .
    2. Seleccione para agregar el SPN que falta a Active Directory.
    3. Si la cuenta de dominio tiene los permisos necesarios para actualizar Active Directory, el SPN necesario se agregará a Active Directory.
    4. Si la cuenta de dominio no tiene los permisos necesarios para actualizar Active Directory, use Generar o Generar todo para generar el script que ayudará al administrador de Active Directory a agregar los SPN que faltan.
    5. Una vez agregados los SPN, vuelva a ejecutar Kerberos Configuration Manager para comprobar que se resuelven los problemas de SPN.
  • Estado: TCP debe estar habilitado para usar la configuración de Kerberos.

    Más información: Este estado se muestra si TCP no está habilitado en el equipo cliente.

    Acción: siga estos pasos para habilitar el protocolo TCP/IP para la instancia de SQL Server:

    1. En Administrador de configuración de SQL Server - Consola, expanda SQL Server Configuración de red.

    2. En Consola, seleccione Protocolos para <instance name>.

    3. En Detalles, seleccione TCP/IP y, a continuación, seleccione Habilitar.

    4. En Consola, seleccione SQL Server Servicios.

    5. En Detalles, seleccione SQL Server para <instance name>.

    6. Seleccione Reiniciar para detener y reiniciar el servicio de SQL Server. Para obtener más información, consulte la sección Habilitar o deshabilitar un protocolo de red de servidor.

  • Estado: puerto dinámico

    Más información: Este estado se muestra para las instancias con nombre que usan puertos dinámicos (configuración predeterminada). En entornos en los que necesita usar Kerberos para conectarse a SQL Server, debe establecer la instancia con nombre para que use un puerto estático y usar ese puerto al registrar el SPN. De lo contrario, el SPN registrado en Active Directory dejará de ser válido la próxima vez que una instancia con nombre empiece a escuchar en un nuevo puerto distinto del que se registró en el SPN.

    Nota

    Esta recomendación solo se aplica a entornos que dependen del registro de SPN manual.

    Acción: siga estos pasos para configurar la instancia de SQL Server para usar un puerto estático:

    1. En Administrador de configuración de SQL Server - Consola, expanda SQL Server Configuración de red, protocolos para <instance name>y, a continuación, haga doble clic en TCP/IP.
    2. En Propiedades de TCP/IP, seleccione Escuchar todo en el protocolo.
    3. Si Escuchar todo está establecido en , cambie a Direcciones IP y desplácese hasta la parte inferior de la ventana para buscar la configuración IPAll .
    4. Elimine el valor actual en Puertos dinámicos TCP y escriba un número de puerto en el puerto TCP.
    5. Seleccione Aceptar y reinicie la instancia de SQL Server. Para obtener más información, vea Configurar un servidor para escuchar en un puerto TCP específico.
    6. Si Escuchar todo está establecido en No, cambie a Direcciones IP y compruebe todas las direcciones IP que aparecen en los nodos IP1 y IP2. Para las direcciones establecidas en Habilitado, quite el valor actual en Puertos dinámicos TCP y, a continuación, establezca un valor en Puerto TCP.
    7. Seleccione Aceptar y reinicie la instancia de SQL Server para que la configuración surta efecto. Para obtener más información, vea Configurar un servidor para escuchar en un puerto TCP específico.
  • Estado: SPN duplicado

    Más información: Es posible que encuentre este escenario si el mismo SPN está registrado en cuentas diferentes en Active Directory.

    Acciones: siga estos pasos para agregar un SPN a Active Directory:

    1. Seleccione Corregir.

    2. Compruebe la información en el cuadro de diálogo Advertencia .

    3. Seleccione para agregar el SPN que falta a Active Directory.

      • Si la cuenta de dominio tiene los permisos necesarios para actualizar Active Directory, se eliminará el SPN incorrecto.

      • Si la cuenta de dominio no tiene los permisos necesarios para actualizar Active Directory, use Generar o Generar todo para generar el script necesario que puede proporcionar al administrador de Active Directory para quitar los SPN duplicados.

    4. Una vez quitados los SPN, vuelva a ejecutar Kerberos Configuration Manager para comprobar que se resuelven los problemas de SPN.

    Nota

    Cuando se inicia una instancia del motor de base de datos de SQL Server, SQL Server intenta registrar el SPN para el servicio SQL Server. Cuando se detiene la instancia, SQL Server intenta anular el registro del SPN. Para que esto ocurra, la cuenta de servicio de SQL Server requiere los permisos adecuados en Active Directory. Pero si la cuenta de servicio no tiene estos derechos, no se produce el registro de SPN automático y debe trabajar con el administrador de Active Directory para registrar estos SPN para que las instancias de SQL puedan habilitar la autenticación Kerberos. Para obtener más información, consulte Registro de un nombre de entidad de seguridad de servicio para conexiones Kerberos.

    Nota

    En entornos donde SQL está agrupado, no se recomienda el registro automático de SPN porque puede tardar más tiempo en anular el registro del SPN y volver a registrar el SPN en Active Directory que el tiempo necesario para que SQL Server se conecten. Si el registro de SPN no se produce a tiempo, esto podría impedir que SQL Server se conecte porque el administrador del clúster no puede conectarse a la instancia de SQL Server.

Opciones adicionales

Para generar la lista de SPN desde la línea de comandos:

  1. Vaya a la línea de comandos.

    Nota

    Para solucionar problemas de conectividad que afectan a SSRS, abra una ventana del símbolo del sistema administrativo.

  2. Cambie a la carpeta que contiene KerberosConfigMgr.exe.

  3. Escriba KerberosConfigMgr.exe -q -l.

  4. Para obtener más opciones de línea de comandos, escriba KerberosConfigMgr.exe -h.

Para guardar la información de configuración de Kerberos de un servidor:

  1. Conéctese al servidor de Windows de destino.
  2. Seleccione Guardar.
  3. Especifique la ubicación en la que desea guardar el archivo. Puede estar en una unidad local o un recurso compartido de red. El archivo se guardará en .xml formato.

Para ver la información de configuración de Kerberos de un servidor desde el archivo guardado:

  1. Seleccione Cargar.
  2. Abra el archivo XML generado por kerberos Configuration Manager.

Para ver los archivos de registro de esta herramienta:

De forma predeterminada, se genera un archivo de registro cada vez que se ejecuta la aplicación en la carpeta de datos de la aplicación: %APPDATA%\Microsoft\KerberosConfigMgr.

Para obtener ayuda, use cualquiera de los métodos siguientes:

  • Mantenga el puntero del mouse sobre el comando para generar una información sobre herramientas.
  • Ejecute KerberosConfigMgr.exe -h en el símbolo del sistema.
  • Seleccione el botón Ayuda de la barra de herramientas.

Vea también