jueves, 14 de abril de 2011

Creación de servicios web en tres capas diferentes


El escenario que vamos a crear y configurar consta de tres capas diferenciadas en tres máquinas diferentes.


1 Escenario


  • WEBSERVICES03.ATSPAIN; Windows Server 2008 R2 Standard, están instalados los servicios web.

  • SERVSQL; Windows Server 2008 R2 Standard, es donde está instalada la base de datos

  • Clientes de Navision.

2 Creación y configuración de los servicios Web Crear una cuenta de usuario de dominio tanto para lanzar los servicios y que tenga privilegios de administrador, en este caso usuario “webservices”. No hay problema si el usuario que arranca los servicios web y los servicios de Sql son diferentes, lo importante son los privilegios de administrador. Después de crear la cuenta de usuario de dominio se debería de verificar si el nivel funcional de dominio es de al menos Windows Server 2003. Para ello en el servidor SERVSQL hacer “Ejecutar” y escribir dsa.msc, hacer clic con el botón derecho sobre el dominio donde esté instalado el cliente Navision y elegir la opción “Raise Domain Functional Level”. Instalar los servicios web de Navision en un equipo destinado para ello, en este caso lo instalaremos en el servidor “webservices03”. Para esto arrancar el DVD de Navision y en la opción de instalar componentes seleccionar Server, darle aplicar y dejar instalar.


  • 2.a configuración Servicios web Para configurar los servicios web es necesario ir a los servicios (herramientas admin.-->Servicios).Los dos servicios web de Navision son: - Microsoft Dynamics Nav Business Web Services - Microsoft Dynamics Nav Server En las propiedades de cada uno de estos dos servicios es necesario cambiar el usuario de logueo (pestaña LogOn opción this account)por el usuario que hemos creado anteriormente (webservices).

  • 2.b Fichero configuración de servicios web Los parámetros del servicio Web se configuran en el fichero “CustomSettings” dentro de la carpeta C:\Program Files (x86)\Microsoft Dynamics NAV\60\Service del servidor donde están los web services instalados (Webservices03). Los parámetros más importante a modificar son : - (se indica el servidor de base de datos) - (nombre de la base de datos sobre la que consumen los web service) - (nombre de la instancia del Navision Nav Server, es decir para identificar ese servicio en concreto, por defecto es DynamicsNAV no hace falta cambiarla pero se puede cambiar por ejemplo si hay más servicios instalados y así poder identificarlos) Una vez modificados estos parámetros se arrancan los servicios web. Se recomienda arrancar primero “Microsoft Dynamics Nav Server” y luego “Microsoft Dynamics Nav Business Web Service”.
3 Activar el Object Change Listener (OCL) Monitoriza los cambios de objectos que se producen en la base de datos (Pej. creación de campos en las Pages ), sin esto activado no se pueden conectar los clientes con el servidor. Para poder inicializarlo el servidor de Navision debe tener permisos para la base de datos de Sql. Activar y asignar permisos minimos para el OCL: - Abrir el SQL management studio y luego file --> new-->Query with current connection y escribir las siguientes consultas. Por cada una hay que ejecutar.

  • USE MASTER CREATE LOGIN [ReplaceWithNAVServerAccount] FROM WINDOWS; GO USE [ReplaceWithYourDatabaseName]

  • CREATE USER [ReplaceWithNAVServerAccount] FOR LOGIN [ReplaceWithNAVServerAccount];

  • CREATE SCHEMA [$ndo$navlistener] AUTHORIZATION [ReplaceWithNAVServerAccount];

  • GO ALTER USER [ReplaceWithNAVServerAccount] WITH DEFAULT_SCHEMA = [$ndo$navlistener];

  • GRANT SELECT ON [Object Tracking] TO [ReplaceWithNAVServerAccount];


4 Dar permisos de cuenta de usuario de dominio al directorio del servidor Es necesario darle al directorio del servidor del de “Microsoft dynamics nav server” del equipo donde están los servicios instalados (webservices03) todos los permisos del usuario de cuenta de dominio. - Ir a la carpeta : ProgramData\Microsoft\Microsoft Dynamics NAV\60\ - Propiedades y pestaña “Seguridad” - Seleccionar el usuario de cuenta de dominio y en los permisos poner Allow junto al permiso”Control Total”. - Seleccionar la cuenta “NETWORK SERVICE” y hacer como el usuario Allow junto al permiso de “Control Total” 5 Configuración de la delegación de usuarios Creando los SPN (Service Principal Names ): Hay que crear cuatro spn para el usuario webservices la sintaxis es la siguiente:


  • Setspn –a HTTP/WEBSERVICES03 webservices

  • Setspn –a HTTP/WEBSERVICES03.dominio webservices

  • Setspn –a DynamicsNAV/webservices03:7046 webservices

  • Setspn –a DynamicsNAV/webservices03.dominio:7046 webservices

Para comprobar que se han creado bien hay que ver el listado:

  • Setspn –l webservices

  • HTTP/WEBSERVICES03

  • HTTP/WEBSERVICES03.dominio

  • DynamicsNAV/webservices03:7046

  • DynamicsNAV/webservices03.ATSPAIN:7046
Delegación de acceso a los servicios Sql En el servidor de sql se realiza la delegación de usuarios: - En ejecutar escribir dsa.msc - Elegir buscar en el dominio donde está creado el usuario - Poner webservices y seleccionar resultado de la búsqueda - En la pestaña Delegation poner la opción 2 : o Trust this user for delegation to any service (Kerberos Only). - Aceptar. Comprobar si se puede hacer ping al servidor donde se encuentran los webservices desde el servidor de sql.

No hay comentarios:

Publicar un comentario