Instalación y configuración
1. Requisitos de software
- Sistema operativo Windows 10 o superior; o Windows Server 2016 o superior en caso de servidores.
- .Net Core Runtime 8.0 Hosting Bundle, descargable desde el siguiente enlace: (https://dotnet.microsoft.com/en-us/download/dotnet/8.0) Importante que sea el Hosting Bundle.
- IIS 7.5 o superior incluido en el SO
- Novasoft Enterprise Web 6.0.0 o superior
- Postman Opcional para realizar pruebas. Se puede descargar en el siguiente enlace: (https://www.postman.com/downloads/)
2. Instalación y Configuración
2.1 Instalación Scripts de BD
Si el paquete de instalación recibido contiene un empaquetado o script de base de datos, este se debe ejecutar sobre el servidor de BD donde esté instalado Enterprise Web usando una cuenta con privilegios de “sysadmin” que permita la creación de objetos en dicha base de datos. Si hay mas de una base de datos de Novasoft Enterprise Web, se debe ejecutar en todas estas.
Este paquete de scripts solo debe ejecutarse sobre la versión 4.0 de Enterprise Web o superior Valide la documentación asociada al paquete si aplica
2.2 Instalación y Configuración Web API
Para estas instrucciones, se asume que IIS está instalado y su carpeta raíz está en C:\inetpub\wwwrooot y en el sitio web por defecto. Si desea instalar en otra ruta, debe tener en cuenta dicha ruta para las instrucciones posteriores. Así mismo, se asume que ya se han instalado los requisitos de software.
- Copie la carpeta suministrada en la ruta c:\inetpub\wwwroot.
- Abra el Administrador de Internet Information Services, haga clic derecho sobre la opción “Grupos de Aplicaciones” y seleccione “Agregar grupo de aplicaciones…”.
- Especifique un nombre para el nuevo grupo, especifique las opciones como se ven en la imagen a continuación, y haga clic en Aceptar.
- Seleccione el grupo recién creado y haga clic en la opción Configuración Avanzada del panel derecho.
- En la sección “Modelo de Proceso”, cambie la opción de Identidad a “LocalSystem”. Haga clic e Aceptar
- En el panel izquierdo, seleccione dentro del sitio por defecto, la carpeta donde está el Web
API; haga clic derecho y seleccione la opción Convertir en Aplicación
- En la ventana que aparece, haga clic en Seleccionar para cambiar el grupo de aplicación. Seleccione el grupo de aplicación creado anteriormente y haga clic en Aceptar hasta volver a la ventana principal del Administrador de IIS.
2.3 Configuración Conexiones, Llave para Token JWT y Llave politicas
2.3.1 Conexiones
En el servidor donde esté instalado el sitio de Novasoft Enterprise Web, ubique la carpeta Conexiones y copie el archivo Conexiones.xml a la carpeta raíz del Web API. En este ejemplo c:\inetpub\wwwroot\NovasoftWebAPI. Si lo desea, puede crear nuevas conexiones, en ese caso, en lugar de copiar el archivo XML de conexiones, copie el ejecutable Administrador de Conexiones.exe a la carpeta raíz del Web API, y ejecútelo para crear las conexiones a las BD de Novasoft Enterprise Web.
2.3.2 Llave para generación Token JWT
Dentro de la carpeta raíz del Web API ej. C:\inetpub\wwwroot\NovasoftWebAPI, abra en un editor de texto el archivo appsettings.json. Ubique la propiedad “key” dentro de “JWT”, y reemplace el valor por una llave de su preferencia.
Recomendaciones para la llave JWT:
- Que sea igual o mayor a 64 caracteres para que el token generado sea más seguro.
- Que no contenga caracteres especiales.
- Que contenga caracteres alfanuméricos con mayúsculas y minúsculas.
- Usar un generador aleatorio de contraseñas para que dicha llave sea compleja, por ejemplo: (https://www.grc.com/passwords.htm)
2.3.3 Llave para políticas CORS
Las políticas CORS controlan qué recursos pueden ser accedidos por otros dominios. Se basan en encabezados HTTP para permitir o restringir el acceso. Ayudan a proteger la seguridad y privacidad de las aplicaciones web. Son necesarias cuando se realizan solicitudes desde un dominio diferente al del recurso.
Dentro de la carpeta raíz del Web API ej. C:\inetpub\wwwroot\NovasoftWebAPI, abra en un editor de texto el archivo appsettings.json. Ubique la propiedad CorsPolicy y reemplace el valor por el listado de encabezados HTTPS a los cuales se les otorgara permisos para hacer el consumo de la Web Api. https://example.com
2.3.4 Llave para Url ReportServer
El ReportServer es un servicio de Reporting Services que permite generar los informes, se estableció este parámetro para que se pueda configurar la ruta del servicio en donde se encuentran alojados los reporte.
Dentro de la carpeta raíz del Web API ej. C:\inetpub\wwwroot\NovasoftWebAPI, abra en un editor de texto el archivo appsettings.json. Ubique la propiedad UrlReportServer y reemplace el valor por la ruta para acceder al ReportServer al momento de hacer el consumo de la Web Api que generan estos reportes. (http://localhost/ReportServer/)
2.3.5 Formato de Fecha para Reporting Services
Para poder configurar el formato de fecha que maneja el servidor de informes, se estableció un parámetro llamado DateFormatRS en el appsettings.json, para que al momento de generar los reportes desde la API, no se generen inconsistencias en el proceso.
El formato que se debe establecer allí es el mismo formato de fecha que usa el servidor de reportes Reporting Services.
2.3.6 Llave Configuración TimeOut por Peticiones
En algunos escenarios, pueden presentarse consultas pesadas o procedimientos complejos como reportes extensos o cálculos intensivos que pueden tardar varios minutos en completarse. Para evitar que la aplicación quede esperando indefinidamente en estos casos, se ha incorporado un nuevo parámetro de configuración que permite controlar el tiempo máximo de espera para la ejecución de comandos SQL.
Con la configuración actual definida en el estándar, la aplicación esperará hasta 300 segundos, 5 minutos antes de interrumpir automáticamente la operación por exceder el tiempo límite.
Este valor es completamente modificable de acuerdo con las necesidades y preferencias del usuario. Para ajustar el tiempo de espera timeout de las consultas SQL, debe acceder al archivo appsettings.json, ubicado en la carpeta raíz del sitio de APIs:
C:\inetpub\wwwroot\NovasoftWebAPI_600.
Abra el archivo con un editor de texto de su preferencia, ubique la propiedad CommandTimeout dentro de la sección Database y establezca el valor deseado en segundos.
2.3.7 Llave Configuración Límite de Peticiones por IP
Para prevenir ataques de fuerza bruta como múltiples intentos de contraseña en el endpoint /Login, proteger los recursos del servidor frente a abusos o sobrecargas, y mejorar la seguridad y estabilidad del sistema, se ha implementado una nueva configuración llamada IpRateLimiting.
Esta configuración permite limitar la cantidad de solicitudes requests que un cliente puede realizar a la API desde una dirección IP específica dentro de un período de tiempo determinado.
Con la configuración definida actualmente en el estándar, la limitación se aplica únicamente al endpoint de inicio de sesión POST:/api/Cuenta/Login.
En este caso, solo se permiten 5 solicitudes por minuto desde una misma IP. Si se supera este límite, la API responderá con el código de error 429 Too Many Requests. Una vez transcurrido el minuto, se podrán realizar nuevas solicitudes
Para aplicar esta restricción a uno o más endpoints del sitio de Apis, debe editar el archivo appsettings.json, ubicado en la carpeta raíz del sitio de APIs:
C:\inetpub\wwwroot\NovasoftWebAPI_600
- Abra el archivo con un editor de texto de su preferencia.
- Busque la propiedad IpRateLimiting.
- Dentro de ella, ubique la sección GeneralRules, que es un arreglo de objetos donde se especifican los endpoints a los que se les aplicará esta limitación.
- Agregue el endpoint o los endpoints que se les aplicará esta limitación guiarse de la configuración del endpoint Login
3. Gestión de Usuario y Permisos
El Web API valida varias opciones de seguridad no solo el usuario y la contraseña, lo que permite tener un control mas detallado de lo que puede hacer dicho usuario. Dichas validaciones son:
- Que el usuario sea activado para uso del Web API. Un usuario de Enterprise Web no podrá hacer uso del Web API, si no está activo para su uso.
- Las políticas de seguridad definidas en Enterprise Web Caducidad de contraseñas, complejidad, etc.
- Acceso a la aplicación a la que pertenezcan las operaciones requeridas CXC, TES, etc.
- Acceso al tipo de operación requerido GET, POST, etc.
- Por lo anterior, en esta sección, de describe como realizar la configuración del usuario que accederá al Web API.
3.1 Creación de Usuario
El acceso al Web API se hace a través de un usuario creado dentro de la aplicación Novasoft Enterprise Web de la siguiente manera:
- Cree un nuevo grupo, que será específico para el usuario de Web API, para ello ingrese a GENERALES/ADMINISTRACIÓN/Grupos/Roles.
- Ingresar a la aplicación GENERALES, y seleccionar la opción ADMINISTRACIÓN/Usuarios y cree un nuevo usuario.
-
Diligencie los datos requeridos, teniendo en cuenta lo siguiente:
- La autenticación tiene que ser de tipo Novasoft
- La contraseña debe ser digitada, no generada automáticamente, para que pueda ser usada en la conexión.
- Asignar el usuario al grupo creado previamente.
- Activar el indicador Habilitar Usuario para Web API
-
Guarde los cambios.
3.2 Gestión Permisos
Los permisos que se manejan en el Web API son diferentes a los que se conceden en Enterprise Web para un usuario normal, por eso se recomienda la creación de un grupo nuevo solo para el usuario de Web API. Un usuario creado para uso de Web API, no podrá iniciar sesión directamente en Enterprise Web puesto que está restringido únicamente al consumo de servicios web.
Para gestionar los permisos del usuario del web API, siga los siguientes pasos:
- Ingrese a GENERALES dentro de Enterprise Web y seleccione la opción ADMINISTRACIÓN/Permisos Web API.
- Seleccione el usuario de Web API.
- Para cada aplicación, seleccione los tipos de petición permitidos que tendrá el usuario de Web API teniendo en cuenta lo siguiente:
- Permiso GET: Para operaciones de consulta o Permiso POST: Para operaciones que ejecutan procesos o crean nuevos registros.
- Permiso PUT: Para operaciones que reemplazan registros existentes.
- Permiso PATCH: Para operaciones que actualizan parcialmente registros existentes.
- Permiso DELETE: Para operaciones que realizan borrado de registros.
Si desea saber que con que operaciones cuenta cada aplicación y que tipo de petición realiza, remítase a la documentación de operaciones de la aplicación deseada, o ingrese a la documentación de Swagger como se indica dentro de este mismo documento en la sección Acceso Documentación del Web API.
English
Español

English
Español

