Cómo utilizar la autenticación Kerberos en SQL Server

Seleccione idioma Seleccione idioma
Id. de artículo: 319723 - Ver los productos a los que se aplica este artículo
Expandir todo | Contraer todo

En esta página

Resumen

Puede utilizar la autenticación Kerberos con Microsoft SQL Server 2000. SQL Server 2000 es compatible con esta funcionalidad como parte de una típica Microsoft Windows 2000 o Dominio de Active Directory de Microsoft Windows Server 2003 instalación. Con Microsoft Windows 2000 Service Pack 3 (SP3) y Windows Server 2003, puede habilitar Autenticación Kerberos en clústeres de servidores.

Para obtener más información acerca de este agregado funcionalidad, haga clic en el número de artículo siguiente para verlo en el Microsoft Knowledge Base:
235529Compatibilidad con Kerberos en clústeres de servidores basados en Windows 2000

Nota Sólo se puede utilizar esta funcionalidad si está ejecutando Windows 2000 SERVICE PACK 3 o Windows Server 2003.

SQL Server 2000 organización por clústeres de conmutación por error, también usa esta función. Al nombre de la red recurso que depende de SQL Server se encuentra en un clúster basado en Windows 2000, Puede utilizar la autenticación Kerberos en el recurso después de actualizar el equipo a Windows 2000 SP3 o a Windows Server 2003. Para instalar SQL Server conmutación por error, debe tener Microsoft SQL Server 2000 Enterprise Edition o Developer Edition instalado.

Nota Los conceptos y las discusiones en este artículo que se aplican a SQL Server 2000 también se aplican a SQL Server 2005. Para obtener más información acerca de este tema en SQL Server 2005, consulte los siguientes temas en libros en pantalla de SQL Server 2005:
  • Cómo: habilitar la autenticación Kerberos incluidos los servidores virtuales de SQL Server en clústeres de servidores
  • Registro de nombre Principal de servicio
Para obtener más información acerca de cómo asegurarse de que está utilizando la autenticación Kerberos en SQL Server 2005, haga clic en el número de artículo siguiente para verlo en Microsoft Knowledge Base:
909801Cómo asegurarse de que está utilizando la autenticación Kerberos cuando crea una conexión remota a una instancia de SQL Server 2005

Más información

SQL Server puede utilizar la autenticación Kerberos para el servidor clústeres. Puede utilizar la autenticación Kerberos con equipos independientes que está ejecutando SQL Server, o a instancias de SQL Server que se ejecutan en un servidor virtual.

Conectarse a un servidor que ejecute Microsoft Servicios de Internet Information Server y hacer una conexión de Kerberos para SQL Server 2000

En esta sección se describe cómo conectarse a un servidor que se está ejecutando Microsoft Internet Information Services (IIS) para realizar una conexión de Kerberos para un servidor que ejecuta SQL Server.

Nota
antes de realizar el procedimiento de instalación, descargue el Kerbtray y las utilidades de SetSPN.

Para descargar la utilidad Kerbtray, visite el sitio Web de Microsoft: Con Kerbtray.exe, fácilmente puede comprobar o quitar (o ambos) Vales de Kerberos desde cualquiera de los equipos asociados que se están utilizando.

Para descargar la herramienta SetSPN, visite el siguiente sitio Web sitio:
http://www.Microsoft.com/downloads/details.aspx?FamilyID=5fd831fd-ab77-46a3-9cfe-ff01d29e5c46&displaylang=en


El procedimiento siguiente proporciona un ejemplo de un programa de instalación secuencia que utilice la autenticación Kerberos a través de una página IIS para tener acceso a un servidor que ejecuta SQL Server.

Paso 1: Configurar el controlador de dominio

En un controlador de dominio de Active Directory Users and Computers:
  1. Haga clic en el equipo que desea configurar para delegación (servidor de servicios de IIS) y, a continuación, haga clic para seleccionar Confiar en esto equipo para la delegación. Si el equipo que ejecuta SQL Server lo que parece ser el último equipo puesto en contacto con, pero dicho equipo tiene vinculado servidor, también debe conceder permisos de delegación. Si no es el último los equipos de la cadena, deben ser todos los equipos que son intermediarios se confía para delegación.
  2. Conceder permiso de delegación en el servicio de SQL Server cuenta de usuario de dominio de cuenta. Debe tener una cuenta de usuario de dominio para el clúster (Este paso no es necesario para los equipos que son las instalaciones de SQL Server ejecución de SQL Server que está utilizando una cuenta de sistema local):
    1. En el Usuarios carpeta, haga clic en el cuenta de usuario y, a continuación, haga clic en Propiedades.
    2. En el cuadro de diálogo Propiedades de cuenta de usuario, haga clic en el Cuenta ficha.
    3. Bajo Opciones de cuenta, haga clic para seleccionar el Cuenta es de confianza para delegación casilla de verificación. Asegúrese de que que el Cuenta es confidencial y no se puede delegar verificación casilla está desactivada para esta cuenta.

      Nota El derecho 'Se confía para delegación' sólo se requiere para la cuenta de servicio de SQL Server cuando va a delegar las credenciales del servidor de destino SQL a un servidor SQL remoto como en un escenario de doble salto, al igual que las consultas distribuidas (consultas de un servidor vinculado) que utilizan la autenticación de Windows.
    Nota Estos pasos se aplican sólo a Windows 2000 Server. Si está utilizando Windows Server 2003, visite el siguiente sitio Web de Microsoft Developer Network (MSDN):
    http://technet2.Microsoft.com/WindowsServer/en/Library/bef202b0-c8e9-4999-9af7-f56b991a4fd41033.mspx
  3. Utilice la utilidad Kerbtray.exe para verificar que Kerberos entradas se han recibido desde el controlador de dominio y el host:
    1. Haga clic en el icono de Kerbtray en la notificación área y, a continuación, haga clic en Purgar los vales.
    2. Espere a que el icono de Kerbtray verde para cambiar de color verde en amarillo. Tan pronto como en este caso, abra una ventana de símbolo del sistema y ejecutar este ejemplo comando:
      net session * /d
      Esto quitará las sesiones existentes y forzar una nueva sesión en puede establecer y un vale de Kerberos que se recibió.

Paso 2: Configurar el servidor de servicios IIS

  1. Reemplazar los archivos de Wwwroot del sitio Web de forma predeterminada con la muestra archivos .asp. Para crear los archivos .asp de ejemplo, utilice el código que se proporciona en la sección "ASP probar secuencias de comandos para la recuperación de datos de SQL Server".
  2. Agregar el archivo a la carpeta Wwwroot. Para ello, utilice el código de ejemplo en la sección "ASP prueba secuencia de comandos de SQL Server recuperación de datos". Guarde el archivo como Default.asp.
  3. Volver a configurar el servidor Web para que utilice Windows integrada Sólo autenticación:
    1. Haga clic en el servidor Web predeterminado y, a continuación, haga clic en el Carpeta de seguridad.
    2. En la carpeta seguridad, realice los cambios correctos, y a continuación, haga clic para desactivar Acceso anónimo.
    3. Desde el símbolo del sistema, ejecute este comando:
      cscript C:\Inetpub\Adminscripts\adsutil.vbs obtener w3svc/NTAuthenticationProviders
      Si se habilita la negociación , se devuelve lo siguiente:
       NTAuthenticationProviders : (STRING) Negotiate,NTLM
      Para obtener más información, haga clic en el número de artículo siguiente para verlo en Microsoft Knowledge Base:
      215383Cómo configurar IIS para que admita el protocolo Kerberos y el protocolo NTLM para la autenticación de red
    Notas
    • Debe instalar Microsoft Data Access (MDAC) 2.6 o posterior, en el servidor de servicios de IIS. Para ello (y para hacer que las herramientas disponibles para fase de prueba), instalar las herramientas de cliente de SQL Server 2000 en el servidor Web. A instalar sólo MDAC 2.6 o posterior (sin necesidad de instalar las herramientas de cliente), visite el siguiente sitio Web de Microsoft:
      http://msdn2.Microsoft.com/en-us/Data/aa937730.aspx
    • IIS es un sistema común de nivel medio. Sin embargo, IIS no es el sistema de nivel medio sólo. Si IIS no es el sistema de nivel intermedio en su entorno, siga los pasos adecuados para su sistema de nivel intermedio.
  4. Compruebe que el
    HKLM\SW\MS\MSSQLSERVER\Client\DSQUERY
    valor está presente en el registro. Si no se muestra el valor, agregarlo como
    DSQUERY:Reg_SZ:DBNETLIB
    .
  5. Utilice la utilidad Kerbtray.exe para verificar que Kerberos entradas se han recibido desde el controlador de dominio y el host:
    1. Haga clic en el icono de Kerbtray en el área de notificación y, a continuación, haga clic en Purgar los vales.
    2. Espere a que el icono de Kerbtray verde para cambiar de color verde en amarillo. Tan pronto como en este caso, abra una ventana de símbolo del sistema y ejecutar este ejemplo comando:
      net session * /d
      Esto quitará las sesiones existentes y forzar una nueva sesión en puede establecer y un vale de Kerberos que se recibió.

Paso 3: Configurar el servicio de SQL Server para crear SPN dinámicamente

Para ello, debe conceder los siguientes valores de control de acceso para la cuenta de servicio de SQL Server en el servicio de directorio de Active Directory:
  • Leer nombrePrincipalDeServicio
  • Escribir nombrePrincipalDeServicio
Advertencias
  • Si utiliza el complemento de edición de Interfaces de servicio de Active Directory (ADSI), la utilidad LDP o los clientes de 3 de LDAP y modifica los atributos de objetos de Active Directory de manera incorrecta, se producen problemas graves. Para resolver estos problemas, tendrá que volver a instalar Microsoft Exchange 2000 Server o Microsoft Exchange Server 2003. En algunos casos, tendrá que volver a instalar Microsoft Windows 2000 Server o Microsoft Windows Server 2003 y, a continuación, vuelva a instalar Microsoft Exchange 2000 Server o Exchange Server 2003. No podemos garantizar que se pueden resolver estos problemas. Modificar estos atributos bajo su responsabilidad.
  • Debe ser iniciado sesión como administrador del dominio. Como alternativa, debe pedir a su administrador de dominio para conceder los permisos apropiados y los derechos de usuario correspondiente a la cuenta de inicio de SQL Server.
Para configurar el servicio de SQL Server para crear SPN dinámicamente cuando se inicia el servicio de SQL Server, siga estos pasos:
  1. Haga clic en Inicio, haga clic en Ejecutar, tipo Adsiedit.mscy, a continuación, haga clic en ACEPTAR.

    Nota La herramienta ADSIEdit se incluye en las herramientas de soporte técnico de Windows. Para obtener las herramientas de soporte técnico de Windows, visite el siguiente sitio Web de Microsoft:
    http://www.Microsoft.com/downloads/details.aspx?FamilyId=6EC50B78-8BE1-4E81-B3BE-4E7AC4F0912D&displaylang=en
  2. En el edición de ADSI snap-in, expanda [[De dominioNombre de dominio], expanda DC = NombreDeDominioRaíz, expanda CN = Users, haga clic en CN = Nombre de cuenta y, a continuación, haga clic en Propiedades.

    Notas
    • Nombre de dominio es un marcador de posición para el nombre del dominio.
    • NombreDeDominioRaíz es un marcador de posición para el nombre del dominio raíz.
    • Nombre de cuenta es un marcador de posición para la cuenta que especifique para iniciar el servicio de SQL Server.
    • Si especifica la cuenta Sistema Local para iniciar el servicio de SQL Server Nombre de cuenta es un marcador de posición para la cuenta de que usas para iniciar sesión en Microsoft Windows.
    • Si especifica una cuenta de usuario de dominio para iniciar el servicio de SQL Server Nombre de cuenta es un marcador de posición para la cuenta de usuario de dominio.
  3. En el CN = Nombre de cuenta Propiedades cuadro de diálogo, haga clic en el Seguridad ficha.
  4. En el Seguridad ficha, haga clic en Avanzada.
  5. En el Configuración de seguridad avanzada diálogo cuadro, asegúrese de que SELF se muestra en Entradas de permisos.

    If SELF no es aparece, haga clic en Agregary, a continuación, agregar SELF.
  6. Bajo Entradas de permisos, haga clic en SELFy, a continuación, haga clic en Editar.
  7. En el Entrada de permiso cuadro de diálogo, haga clic en el Propiedades ficha.
  8. En el Propiedades ficha, haga clic en Sólo este objeto en el Se aplica a lista y, a continuación, haga clic para seleccionar las casillas de verificación correspondientes a los siguientes permisos en Permisos:
    • Leer nombrePrincipalDeServicio
    • Escribir nombrePrincipalDeServicio
  9. Haga clic en ACEPTAR dos veces.

    Nota Para obtener ayuda con este proceso, póngase en contacto con soporte técnico de Active Directory y mencione este artículo de Microsoft Knowledge Base.

    Nota Para utilizar la herramienta dsacls para determinar si la cuenta self tiene el permiso Escribir ServicePrincipalName, utilice los comandos dsacls . La sintaxis es la siguiente:
    dsacls <distinguished_Name_of_service_account>
    Si la cuenta self tiene el permiso de escritura principal de servicio, consulte el siguiente resultado:
    Allow NT Authority\SELF SPECIAL ACCESS for Validated Write to Service principal name
    WRITE PROPERTY
    La herramienta dsacls es parte de las herramientas de soporte.
  10. En el CN = Nombre de cuenta Propiedades cuadro de diálogo, haga clic en Editor de atributos.
  11. Bajo Atributos, haga clic en servicePrincipalName en el Atributo columna y, a continuación, haga clic en Editar.
  12. En el Editor de cadena multivalor diálogo cuadro, quite los nombres principales de servicio (SPN) para las instancias de SQL Server que utilice esta cuenta de servicio de SQL Server.

    Advertencia Sólo debe eliminar los SPN para las instancias de SQL Server que está trabajando actualmente. Las otras instancias de SQL Server que utilice esta cuenta de servicio será capaces de quitar los SPN que están relacionados con estas instancias de la próxima vez que inicie estas instancias.
  13. Salga del complemento de edición de ADSI.
Después de seguir estos pasos, también se eliminan los problemas SPN si cambia el puerto TCP/IP o el nombre de dominio de las nuevas instalaciones de SQL Server 2005 o de las instancias existentes de SQL Server 2005.

Importante: Se recomienda no conceda WriteServicePrincipalName a la cuenta de servicio SQL cuando se cumplen las condiciones siguientes:
  • Hay varios controladores de dominio.
  • Está agrupada de SQL Server.
En este escenario, el SPN de SQL Server puede ser eliminado debido a la latencia de replicación de Active Directory. Esto puede causar problemas de conectividad a la instancia de SQL Server.

Se supone que tiene los siguientes:
  • Una instancia virtual de SQL denominada Sqlcluster con dos nodos: el nodo A y el nodo B.
  • El nodo A es autenticado por el controlador de dominio A y nodo B es autenticado por el controlador de dominio B.


Puede ocurrir lo siguiente:
  1. La instancia Sqlcluster está activa en el nodo A y registrado el SPN SQL en un controlador de dominio durante el inicio de...
  2. La instancia Sqlcluster conmuta al nodo B cuando el nodo A se apaga normalmente.
  3. La instancia Sqlcluster borrarse del registro su nombre SPN de un controlador de dominio durante el proceso de cierre en el nodo A.
  4. El SPN se quita del controlador de dominio A, pero aún no se haya replicado el cambio al controlador de dominio B.
  5. Cuando se inicia en el nodo B, la instancia de Sqlcluster intenta registrar el SPN de SQL con el controlador de dominio B. Desde entonces, el SPN aún existe el nodo B no registra el SPN.
  6. Después de algún tiempo, el controlador de dominio A replica la eliminación del SPN (desde el paso 3) al controlador de dominio B como parte de la replicación de Active Directory. El resultado final es que no existe ningún SPN válido para la instancia SQL en el dominio y, por tanto, verá que los problemas de conexión a la instancia de Sqlcluster.

Nota Este problema se corrigió en SQL Server 2012.


Paso 4: Configurar los equipos cliente

  1. Para cada cliente que se conectará, compruebe que Microsoft Internet Explorer está configurado para utilizar la autenticación de Windows:
    1. En el Explorador de Internet, en el Herramientasmenú, haga clic en Opciones de Internet.
    2. Haga clic en el Avanzada ficha.
    3. Bajo Seguridad, haga clic para seleccionar Habilitar la autenticación integrada de Windows (requiere reinicio), y, a continuación, haga clic en ACEPTAR.

Paso 5: Probar la configuración

Para cada equipo que está involucrada:
  1. Inicie sesión en el equipo y, a continuación, utilice Kerbtray.exe para comprobar que el equipo puede obtener un vale de Kerberos válido desde el dominio controlador.
  2. Utilice Kerbtray.exe para quitar todas las entradas en el equipo.
  3. Crear y conectarse a la página Web que devuelve el SQL Datos del servidor.

    Nota Reemplazar NOMBREDESERVIDORSQL con el nombre de el equipo que ejecuta SQL Server:
    • Si se devuelven los datos, esta página muestra el tipo de autenticación Negotiatey los datos de SQL Server para el resultado de la sp_helpdb procedimiento almacenan que debe devolver una lista de las bases de datos el servidor que se está conectando a través del.Página ASP.
    • Si tienes auditoría activada en SQL Server, en el Registro de la aplicación se verá que la conexión es de "confianza".

Secuencia de comandos de prueba ASP para la recuperación de datos de SQL Server

Aquí es una secuencia de comandos de prueba ASP para los datos de SQL Server. Si utiliza este ejemplo de código, asegúrese de que reemplaza NOMBREDESERVIDORSQL con el nombre del equipo que es ejecución de SQL Server.
<%@ Language=VBScript %>
<HTML>
<HEAD>
<META NAME="GENERATOR" Content="Microsoft Visual Studio 6.0">
</HEAD>
<BODY>
<%="'auth_user' is" & request.servervariables("auth_user")%>
<P>
<%="'auth_type' is" & request.servervariables("auth_type")%>
<P>
Connections string is " Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=pubs;Data Source=SQLSERVERNAME 
<P>
<%
	set rs = Server.CreateObject("ADODB.Recordset")
	set cn = Server.CreateObject("ADODB.Connection")
	cn.Open "Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=pubs;Data Source=SQLSERVERNAME"
	rs.open "MASTER..sp_helpdb",cn
	Response.Write cstr(rs.Fields.Count) +"<BR>"
	while not rs.EOF
		Response.Write cstr(rs(0))+"<BR>"
		rs.MoveNext
	wend
	rs.Close
	cn.Close
	set rs = nothing ' Frees memory reserved by the recordset.
	set cn = nothing ' Frees memory reserved by the connection.
%>
</BODY>
</HTML>
					

Cómo recopilar una lista del principio de servidor de Active Directory información de nombre

Para recopilar una lista de nombre principal del servidor de Active Directory (SPN) obtener información, escriba el comando siguiente en uno de los controladores de dominio donde betaland es el nombre de dominio NetBIOS y NewoutputUsers.txt es el nombre del archivo de salida que utilizas los resultados de puerto. Si no utiliza una ruta de acceso completa, el archivo se coloca en la carpeta actual, donde se ejecuta la línea de comandos. En este ejemplo comando consulta todo el dominio:
LDIFDE -d "CN = Users, DC =betaland"servicePrincipalName -l -F NewoutputUsers.txt
Esta sintaxis crea un archivo llamado NewoutputUsers.txt que contiene información que es similar a la salida en el nivel de dominio" sección de salida de NewouputUsers.txt"en este artículo.

Este resultado puede ser un desafío cuando se reúnan para todo un dominio. Por lo tanto, al límite de la información recopilada para un nombre de usuario específico, utilice la sintaxis siguiente, donde Nombre de usuario es el nombre de usuario y betaland es el dominio que se está consultando:
LDIFDE -d "CN =Nombre de usuarioDC =betaland"servicePrincipalName -l -F NewoutputUsers.txt
Recopilar la información para un usuario específico se reduce en gran medida la datos que se deben buscar a través de. Si recopila la información para un conjunto dominio, busque el nombre de usuario específico del servidor en cuestión. En el ejemplo de salida, consulte:
  • Entradas para los servidores que ya no existen, pero que no estaban quitar completamente de Active Directory.
  • El usuario"Nombre de usuario"ha válido Información de SPN acerca de los diez servidores diferentes.
Además, puede utilizar el servicio Active Directory Las interfaces de herramienta (ADSI) para corregir las entradas de Active Directory que no son válidas.

Advertencia Si utiliza el complemento de edición de ADSI, la utilidad LDP o cualquier otro Cliente LDAP versión 3 y modifica incorrectamente los atributos de activo Objetos de directorio, puede provocar problemas graves. Estos problemas pueden exigir volver a instalar Microsoft Windows 2000 Server, Microsoft Windows Server 2003 Microsoft Exchange 2000 Server, Microsoft Exchange Server 2003 o Windows y Exchange. Microsoft no puede garantizar que los problemas que se producen si se modifica incorrectamente la solución de los atributos de objeto de Active Directory. Modificar Estos atributos bajo su responsabilidad.

Salida de nivel de dominio de NewouputUsers.txt

	dn: CN=User Name,CN=Users,DC=betaland
	changetype: add
	servicePrincipalName: MSSQLSvc/CLUSTERDEFAULT.betaland:1257
	servicePrincipalName: MSSQLSvc/INST3.betaland:3616
	servicePrincipalName: MSSQLSvc/INST2.betaland:3490
	servicePrincipalName: MSSQLSvc/SQLMAN.betaland:1433
	servicePrincipalName: MSSQLSvc/VSS1.betaland:1433
	servicePrincipalName: MSSQLSvc/INST1.betaland:2536
	servicePrincipalName: MSSQLSvc/INST4.betaland:3967
	servicePrincipalName: MSSQLSvc/SQLVIRTUAL1.betaland:1434
	servicePrincipalName: MSSQLSvc/SQLVIRTUAL.betaland:1433
	servicePrincipalName: MSSQLSvc/SQLBUSTER.betaland:1315

Referencias

Para obtener más información acerca de la delegación de cuentas de seguridad, vea el tema "Delegación de cuentas de seguridad" en los libros en pantalla de SQL Server.

Para obtener más información, haga clic en los siguientes números de artículo para verlos en Microsoft Knowledge Base:
262177Cómo habilitar el registro de sucesos de Kerberos
321708 Cómo utilizar la herramienta de diagnóstico de red (Netdiag.exe) en Windows 2000
326985 Cómo solucionar problemas de Kerberos en IIS
244474 Cómo hacer que Kerberos Use TCP en lugar de UDP en Windows Server 2003, Windows XP y en Windows 2000

Propiedades

Id. de artículo: 319723 - Última revisión: domingo, 07 de abril de 2013 - Versión: 2.0
La información de este artículo se refiere a:
  • Microsoft SQL Server 2000 Standard Edition sobre las siguientes plataformas
    • Microsoft Windows Server 2003, Enterprise Edition (32-bit x86)
    • Microsoft Windows Server 2003, Datacenter Edition (32-bit x86)
  • Microsoft SQL Server 2005 Standard Edition
  • Microsoft SQL Server 2005 Developer Edition
  • Microsoft SQL Server 2005 Enterprise Edition
  • Microsoft SQL Server 2005 Express Edition
  • Microsoft SQL Server 2005 Workgroup Edition
Palabras clave: 
kbinfo kbmt KB319723 KbMtes
Traducción automática
IMPORTANTE: Este artículo ha sido traducido por un software de traducción automática de Microsoft (http://support.microsoft.com/gp/mtdetails) en lugar de un traductor humano. Microsoft le ofrece artículos traducidos por un traductor humano y artículos traducidos automáticamente para que tenga acceso en su propio idioma a todos los artículos de nuestra base de conocimientos (Knowledge Base). Sin embargo, los artículos traducidos automáticamente pueden contener errores en el vocabulario, la sintaxis o la gramática, como los que un extranjero podría cometer al hablar el idioma. Microsoft no se hace responsable de cualquier imprecisión, error o daño ocasionado por una mala traducción del contenido o como consecuencia de su utilización por nuestros clientes. Microsoft suele actualizar el software de traducción frecuentemente.
Haga clic aquí para ver el artículo original (en inglés): 319723

Enviar comentarios

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com