¿Por qué MS SQL Server utiliza la autenticación NTLM?

12

Windows Server 2008 R2.

SQL Server 2008 R2 instalado.

El servicio MSSQL se ejecuta como sistema local.

El FQDN del servidor es SQL01.domain.com.

SQL01 se une a un dominio de Active Directory llamado domain.com.

La siguiente es la salida de setspn:

C:\> setspn -L sql01
...
MSSQLSvc/SQL01.domain.com:1433
MSSQLSvc/SQL01.domain.com
WSMAN/SQL01.domain.com
WSMAN/SQL01
TERMSRV/SQL01.domain.com
TERMSRV/SQL01
RestrictedKrbHost/SQL01    
RestrictedKrbHost/SQL01.domain.com
HOST/SQL01.domain.com
HOST/SQL01

Luego inicio el estudio de administración de SQL Server y me conecto a SQL01 de esta manera:

ingrese la descripción de la imagen aquí

Luego ejecuto la siguiente consulta:

SELECT auth_scheme FROM sys.dm_exec_connections WHERE session_id = @@spid 

Y el resultado es NTLM. ¿Por qué el resultado no es Kerberos? Los SPN parecen ser correctos para usar la cuenta del sistema local. El servidor no está en un clúster o utiliza un CNAME.

Ryan Ries
fuente
¿Qué tal si solo respondemos la pregunta para que la comunidad pueda beneficiarse?
mdpc

Respuestas:

15

Es porque me estaba conectando a SQL Server localmente, desde el mismo servidor que alojaba SQL Server. Cuando me conecto desde otra máquina en la red, el mecanismo de autenticación utilizado es Kerberos, como se esperaba.

SQL Server siempre usará NTLM si se conecta localmente. Kerberos solo se usa si se conecta de forma remota.

Esta publicación del Blog de Protocolos de SQL Server , aunque fechada, dice lo mismo:

1) Kerberos se utiliza cuando se realiza una conexión remota a través de TCP / IP si se presenta SPN.

2) Kerberos se utiliza al hacer una conexión tcp local en XP si se presenta SPN.

3) NTLM se usa cuando se realiza una conexión local en WIN 2K3.

4) NTLM se utiliza sobre la conexión NP.

5) NTLM se utiliza a través de la conexión TCP si no se encuentra SPN.

Ryan Ries
fuente
3
wow, todo este trabajo (investigación) que he estado haciendo durante horas con SPN y delegación, ¡y esto fue todo! :)
wchoward