@
leyendo...
Tecnología

Un poco de Kerberos, SQL Server y el error SSPI

Como muchos de ustedes saben, trato de aportar y a veces contribuyo en el foro TechNet en castellano de SQL Server. Y, parodiando una famosa frase, “lo que pasa en el foro se queda en el foro”, jeje.

Sin embargo, una pregunta reciente en dicho foro me hizo “desempolvar” un documento que hice en enero de 2010 sobre Kerberos, Excel Services y MOSS 2007, el cual estoy revisando para validar que todavía es útil y que puede ofrecer valor, para postearlo más adelante. En este documento, había un procedimiento, particularmente para SQL Server 2008, que indica como habilitar Kerberos para usarlo como mecanismo de autenticación desde los clientes hacia la base de datos en SQL Server.

Kerberos, es un protocolo de seguridad ofrecido por Microsoft dentro de su esquema SSP o Security Support Provider. Kerberos ofrece un esquema de autenticación en donde los clientes obtienen tiquetes desde un KDC o centro de distribución Kerberos, los cuales se les presentan a los servidores con los servicios que se quieren acceder mediante las credenciales que van en los tiquetes. Para ciertos escenarios, Kerberos ofrece una solución elegante… Bueno, pero este no es el propósito de este post, jeje, el propósito de este post es compartir con ustedes como habilitar SQL Server 2008 o SQL Server 2008 R2 para trabajar con Kerberos y para, entre otras cosas, no tener el error SSPI que sale a veces cuando un usuario se quiere conectar a la plataforma de base de datos.

La base de soporte Microsoft tiene un excelente artículo, tal vez un poco largo, titulado Cómo solucionar el mensaje de error “No se puede generar contexto SSPI”. Esa debe ser la primera fuente de consulta para resolver un tema de éstos; incluso el GuilleSQL tiene un excelente artículo sobre el tema: Cannot Generate SSPI context y setspn.exe en SQL Server. Además, este documento Microsoft, ofrece documentación sobre el tema. Sin embargo, coloco aquí un sencillo paso a paso que les ayudará con lo planteado anteriormente:

Voy a poner un ejemplo para configurar el acceso a un servidor SQL Server 2008 llamado SQL01 con una cuenta de servicio SQLEngine en el dominio ACME:

SetSPN –A MSSQLSvc/SQL01:1433 ACME\SQLEngine
SetSPN –A MSSQLSvc/SQL01.ACME.COM:1433 ACME\SQLEngine

Luego, deben configurar la cuenta de servicio para el acceso Kerberos mediante delegación. Para ello se debe realizar el siguiente procedimiento para la cuenta SQLEngine:

1. En el controlador de dominio o en una máquina con acceso a éste, abrir la aplicación Active Directory Users and Computers.
2. Ubicar la cuenta; recordar que es la cuenta SQLEngine.
3. Buscar el tab Delegation en el menú “Properties”. Este tab no aparece si no se han habilitado los permisos vía SPN a esta cuenta.
4. Seleccionar la opción “Trust this user for delegation to any service (Kerberos only)” y presionar el botón de comando Apply.
5. Buscar el tab “Account” en el menú “Properties”. En la lista de opciones bajo el título “Account options”, ubicar la opción “Do not require Kerberos preauthentication” y marcar la casilla, si no está marcada.
6. Presionar el botón de comando OK.

Para saber si está funcionando, usen el siguiente query en SQL Server:

select session_id,auth_scheme,net_transport,client_net_address
from sys.dm_exec_connections
where @@SPID = session_id

Si en el campo auth_scheme se ven valores ‘Kerberos’, entonces se han configurado adecuadamente las conexiones hacia el servidor SQL Server 2008. Ya con esto, no deberían tener problemas con los temas de errores SSPI.

Como les dije, reviso el documento con lo Kerberos y SharePoint y se los comparto mas adelante.

Saludos.

About these ads

Comentarios

2 comentarios en “Un poco de Kerberos, SQL Server y el error SSPI

  1. Disculpa la ignorancia, jeje, pero como y donde se introduce:
    SetSPN –A MSSQLSvc/SQL01:1433 ACME\SQLEngine
    SetSPN –A MSSQLSvc/SQL01.ACME.COM:1433 ACME\SQLEngine
    es via consola DOS??

    gracias de antemano

    Publicado por Jhonatan Medina | diciembre 2, 2011, 8:29 PM
    • Hola Jhonatan, gracias por el comentario. Esos comandos se introducen mediante consola DOS, en efecto. Mi sugerencia es correrlos en el controlador del dominio, pidiendo permiso y corriendo la consola con privilegios elevados.

      Saludos.

      Publicado por Guillermo Taylor | diciembre 2, 2011, 10:01 PM
Seguir

Recibe cada nueva publicación en tu buzón de correo electrónico.

Únete a otros 45 seguidores

A %d blogueros les gusta esto: