NAV 2016: Autentificación de SQL Server

por | 14 octubre, 2015

Continuamos con las novedades de la nueva versión de Dynamics NAV.

Revisando la consola de administración de los servicios de NAV 2016 podemos ver que en la parte de la derecha han añadido una nueva opción denominada «Database credentials». Pero bien, ¿Para que sirve?

Como muchos sabréis, hasta la versión NAV 2015 el usuario que comunica el servicio con el motor de la base de datos en SQL debería de ser un usuario del dominio (Autentificación de Windows). Pues bien, en la nueva versión ya disponemos de la opción para poder «conectar» ambos servicios mediante autentificación de SQL.

La autentificación de Windows tiene el inconveniente de que se debe de crear un usuario específico para esto en el Active Directory. No se aconseja reutilizar el de ningún usuario dado que si este cambia la contraseña, se deshabilita o se elimina la cuenta el servicio de Dynamics NAV dejará de funcionar. Yo hasta la versión NAV2015 lo que hago es crear un usuario propio para esto, sin directivas de contraseña, para así garantizarme el funcionamiento del servicio sin que nadie modifique ningún criterio del usuario.

¿Como conectamos la instancia de NAV mediante Autentifiación de SQL Server?

Pues bien, para realizar esto deberemos de seguir tres pasos básicos:

  1. Crear e importar la Key de encriptación.
  2. Configurar el SQL Server
  3. Configurar el Servicio de NAV (Microsoft Dynamics NAV Server)

Crear e importar la key de encriptación

Lo primero que tenemos que tener claro es que los entornos multitenant no se configuran igual que los entornos que no lo son. Pero si bien es cierto, la forma de crear la key es la misma.

Cuando usamos la autentificación de SQL Server, Microsoft Dynamics NAV necesita una clave para encriptar las credenciales (nombre de usuario y contraseña) con la que el servicio de NAV se conecta con la base de datos en SQL Server. Esta clave se deberá de importar en el sistema en el que se encuentra instalado el servicio de NAV. En los entornos multitenant, la clave se importará en el equipo de la base de datos.

Para crear la clave de encriptación usaremos la Administration Shell de Dynamics NAV 2016. En ella encotnraremos el comando New-NAVEncryptionkey. Con esto crearemos nuestro fichero .key

New-NAVEncryptionKey [-KeyPath] <String> [-Force] [-Password <SecureString> ] [-Confirm] [-WhatIf] [ <CommonParameters>]

Ejemplo:

novedades_nav2016_autentificacion_sql_server_1

Esto nos ha generado en la ruta c:\Temp el fichero ClaveTest.key

El siguiente paso es instalar la clave en el equipo donde se encuentra el servicio. Para ello usaremos el comando Import-NAVEncryptionkey

novedades_nav2016_autentificacion_sql_server_2

Con esto ya tendremos nuestra clave instalada. En el caso de que ya exista una en el sistema podremos forzar la instalación con el parámetro -force.

Para más info: Gestión de claves para autentificación de SQL Server

Configurar el SQL Server

La configuración de SQL Server es bastante sencilla si estas familiarizado con el Magnament Studio. En caso de no estarlo, te aquí podrás consultar el proceso mucho más detallado: Configure SQL Authentification on the Database

Básicamente lo que tenemos que hacer es crear un nuevo inicio de sesión (o usar, si queréis, uno existente) dentro del SQL. Los pasos a seguir son:

  1. Configurar la instancia del SQL para que permita un modo de autentificación mixta (Windows y SQL Server). Esto lo podemos hacer desde las propiedades de la instancia en el SQL Management Studio en la pestaña de Seguridad. Ahí marcaremos la opción de «Modo de autentificación de Windows y SQL Server». Más info: Change Server Authentication Mode
  2. Ahora desde Seguridad, crearemos un nuevo Inicio de sesión. En este punto deberemos de indicarle que la autentifación del usuario es SQL Server. Le daremos un nombre de inicio y una contraseña. Más info: Create a login
  3. Asignaremos nuestro nuevo inicio de sesión a la base de datos de Dynamics NaV con el rol de db_owner.

Configurar el Servicio de NAV (Microsoft Dynamics NAV Server)

Ahora ya sólo nos falta configurar el servicio para que se conecte con la nueva autentificación. Aquí deberemos tener en cuenta, que no es lo mismo los entornos que son multitenant que los que no. Yo lo he hecho en un entorno que no lo es, si necestáis hacerlo para una configuración multitenant encontraréis toda la info aquí: Configure SQL Server Authentication on Microsoft NAV Server Instance

Abrimos la consola de administración de Microsoft Dynamics NAV Server y nos iremos a la acción de «Database credentials» (a la derecha del panel). En esta acción pusaremos el botón «Edit» para que se habilite la edición y cambiaremos el campo Database Authentication Type a SQL Authentication.
En el campo Database User Name configuraremos el nombre del usuario de nuestro inicio de sesión que hemos creado y en el campo Password su contraseña.
Ahora haremos click en el bóton «Save» y aceptaremos el diálogo que nos avisa de que hasta que reiniciemos el servicio los cambios no tendrán efecto.

Ahora reiniciaremos el servicio y ya tendremos nuestra instancia autentificada por el método SQL Server 🙂

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *