Archives: 06/12/2016

Seguridad en instalaciones – Configuración de SQL Server

A continuación enumeraremos las características de la configuración de SQL Server según los casos que se presenten durante la instalación de IGGLOBAL Online

  • IGGLOBAL Online en la misma red del servidor de base de datos para éste caso en particular no es necesaria ninguna configuración especial de conexión. Sólo respetar la IP o nombre de servidor al configurar las connection strings del web.config e info_datos. Si el cliente así lo necesita, será necesario abrir un puerto público en el router de la red que esté redireccionado al puerto de IGGLOBAL Online configurado para permitir el acceso desde dispositivos móviles o dispositivos fuera de la red.
  • IGGLOBAL Online fuera de la red del servidor de base de datos (hosting o similar): para éste caso en particular se necesitará que se abra un puerto público en el router de la red que esté redireccionado al puerto de SQL Server. El número de dicho puerto DEBERÁ SER DISTINTO AL 1433/34 que utiliza SQL Server por defecto para evitar intentos de conexión no deseados. Además es deseable utilizar una password de SA de al menos 64 caracteres para reforzar la seguridad de dicho login.
  • Para todas las configuraciones es REQUERIDO el uso de INTERNET ya que el sistema utiliza componentes disponibles de forma online.
  • En el caso de instalaciones con imágenes de login personalizadas, ésta es la ubicación de las mismas:

Imágenes: /Images/optimized-backgrounds

Logo de empresa: ~/Content/Images/igglobal_logo.png


Instalación/Configuración del servicio de actualización

Requisitos mínimos para la instalacion del servicio:

  • Windows Server 2008
  • Framework .NET 4.5 o superior
  • SQL Server 2008 o superior

Instalación

  • Descargar el Instalador del servicio Aqui o copie esta direccion en su navegador “ftp://201.216.238.246/Updater_Service/setup.exe”
  • Ejecutar Setup.exe
  • En caso de que sea SQL Server 2008 se deben instalar los paquetes:
    • SQLSysClrTypes.msi o descargue desde aqui “ftp://201.216.238.246/Updater_Service/”
    • SharedManagementObjects.msi o descargue desde aqui “ftp://201.216.238.246/Updater_Service/”
    • El orden de instalacion para este caso debe ser si o si SQLSysClrTypes, a continuación SharedManagementObjects y por ultimo el Servicio de Actualización.
  • Una vez instalado el programa, ir a la sección de Servicios de Windows e iniciar el servicio “IGGlobal Updater Service”.
  • Para configurar el Servicio se debe acceder a la URL: http://localhost:5353/ aparecera la siguiente pagina. Aquí debemos configurar los datos de conexión al servidor, y las rutas de descarga del paquete de actualización, tener en cuenta que en el campo “Destino de la nueva base de datos” debe ser una ruta que pueda ser accesible desde el servidor de base de datos. Por ultimo debemos configurar la ruta donde están los sistemas de IGGlobal Classic y OnLine.

up

  • Se debe chequear en el informac que la tabla Info_Datos este cargada con las cadenas de conexion en el campo ConecctionString. Ej: Data Source=SERVER;Initial Catalog=INFORMAC;User Id=USER;Password=PASS;Persist Security Info=True
  • Una vez concluida esta configuracion, haciendo click en “Aceptar” estos datos quedaran guardados y la actualización se ejecutara a las 21 hs.
  • En Caso que se requiera actualizar la version en el mismo instante de configuracion se debe hacer click en “Actualizar Version del Sistema”, esto bloqueara el navegador durante el tiempo necesario para actualizar (puede demorar).
  • Al final de la actualización se vera un mensaje tanto si todo resulto exitoso o si hubo algún problema
  • En la carpeta donde se descarga el paquete de actualizacion se generan archivos txt con la info de las bases actualizadas y si alguna presento un problema. Estos archivos son enviados automaticamente por mail a la cuenta ggonzalez@baseglobal.com.ar

Publicar versión nueva de Classic y Online con el servicio de Actualización

Antes de tener una versión actualizada de los sistemas y bases de datos debemos tener en cuenta lo siguiente:

En el motor SQLServer de desarrollo se encuentran 2 bases de datos nuevas (INFORMAC_UPDATE y DATOS_UPDATE) estas bases de datos serán actualizadas con los cambios que hay en INFORMAC_DESARROLLO y DATOS_DESA solamente se copiaran cambios de estructura. Para lograr esto en la Solución de VB Studio 2013 que nombramos en la Entrada  “Generar versión del servicio de actualización del sistema”. El proyecto DbUpdater.Console se encargara de esto.

Este proyecto se encuentra en el SourceSafe bajo el proyecto “DbUpdater.root\DbUpdater Sin FirstUpdate” listo para utilizar. Al iniciar este proyecto se copiara toda la estructura principal de las bases de Desarrollo a las de Update y se generaran 2 bases backups en esta ruta del servidor Bg-srv07 “C:\Program Files\Microsoft SQL Server\MSSQL10.DESARROLLO\MSSQL\Backup” estas mismas bases seran luego subidas al Package de actualizacion en el FTP.

Al finalizar este proceso se verán que cosas se han borrado de las bases de desarrollo, deberán ser borradas manualmente de las bases de Update, previo chequeo con el resto del equipo de desarrollo

El nuevo actualizador funciona de la siguiente forma:

Todos los días a las 21 hs el servicio, previamente configurado (en otra entrada se explica como), chequeara en el FTP si hay una nueva versión subida.

En el caso de que exista una nueva versión, esta se descarga y descomprime en la carpeta que se le haya asignado, luego de eso se actualizaran las bases y los archivos.

Una vez claro estos puntos procedemos a los pasos para generar una versión.

  • Luego de actualizar las bases INFORMAC_UPDATE y DATOS_UPDATE, los archivos de backup se generan automáticamente en la carpeta por defecto de backup de SQL Server, podremos proceder a subir estos mismos a la carpeta del FTP designada para esta nueva versión, la carpeta para estos archivos es “DataBasesUpdated”
  • Tambien se deberan subir los archivos de IGGlobal Classic, estos pueden ser los que estan en “IG_GLOBAL_SETUP_V8\Global\Sistema”, la carpeta designada en el FTP es “UPDATE_PACKAGE\Sistema”
  • Y por ultimo tambien es necesario tener generada una version de IGGlobal OnLine, La carpeta designada en el FTP es “UPDATE_PACKAGE\IGGLOBAL_Online”

 


Generar version del servicio de actualizacion de Sistema

Con la Finalidad de tener un nuevo y mas eficiente actualizador de version, se desarrollo un servicio que chequea los cambios que se realizaron en las bases de datos y solo copia dichos cambios. Para poder tener una version de este actualizador se deben llevar a cabo los siguientes pasos.

  • Descargar del Github el proyecto “DbUpdater”

Dicha solución consta de los siguientes proyectos

–DatabaseCompare: Tiene 2 proyectos de comparacion propios del VbStudio 2013 para comparar estructura de las bases de datos Informac_Desarrollo Con Informac_Update y Datos_Desa con Datos_Update

–DbUpdater.Console: Proyecto de consola que en caso de ponerlo como proyecto de inicio y correrlo se copian todos los cambios nuevos que hay en desarrollo a las bases de produccion (Informac_Update y Datos_Update). Tambian genera el backup de estas bases para luego poder subirlas manualmente al FTP, estos backups se crean en la carpeta por defecto para backup del motor SQLServer.

–DbUpdater.Core: Proyecto nucleo del actualizador, toda la logica y procesos estan dentro de el.

–IGGLOBAL.Updater: Proyecto de tipo Servicio que corre sobre windows y genera un mini sitio (IIS). REST Service Web Api. Este proyecto tiene controladores y HTML con javascript para generar una pagina y se conecta al Core.

–IGGlobal UpdateServices Setup: Proyecto de tipo InstallShield LimitedEdition, genera el setup para instalar el servicio. Para esto se descargo la extension para vb Studio del InstallShield, este paquete esta descargado en la carpeta \\BG-SRV03-FS\FileServer\Groups\Desarrollo\InstallShield2015LimitedEdition.Exe

Una vez generado el Setup se instala en el servidor. Requisitos de instalacion

  • Windows Server 2008
  • Framework .NET 4.5 o superior

F-16 Servicios Generales

REVISIÓN 00
SEPTIEMBRE 2016

 1. PUESTO

Servicios Generales.

2. Dependencia

Gerente de Administración.

3. Función

Efectuar las tareas de limpieza y mantenimiento de la compañía.

4. Responsabilidad y Autoridad

Las tareas específicas de su función son:

  • Realizar tareas de orden y mantenimiento de las áreas de trabajo de la compañía.
  • Comprar y administrar los insumos de trabajo.

 5. Nivel educativo

  • Título secundario (deseable)

F-12 Programador Jr.

REVISIÓN 01
OCTUBRE 2018

 


 1.Puesto

Programador Jr.

2.Dependencia

Programador Ssr.

3.Función

Realizar tareas de programación.

4.Responsabilidad y Autoridad

Las tareas específicas de su función son:

  • Programación de desarrollos nuevos y modificaciones.
  • Realizar pruebas sobre desarrollos y modificaciones.
  • Actualización de la documentación del IG.
  • Testear los desarrollos y modificaciones.
  • Actualización de DES y resolución de INC.
  • Actualización de INC detallando la resolución del problema.
  • Brindar soporte técnico de sistemas a las demás áreas de la organización.
  • Informar al responsable de área sobre la detección de No conformidades.

5. Conocimientos básicos

  • Manejo de herramientas de desarrollo (Visual Basic, Crystal Reports, SQL Server, C#, .NET, S2 Framework).

6. Nivel educativo

  • Estudiante universitario/terciario (excluyente).

CONTROL DE CAMBIOS PARA LA REVISIÓN ACTUAL

Ubicación

Motivo del cambio

Descripción del cambio

Dependencia Modificación Se modificó la dependencia de analista programador a Programador Ssr

Seguridad en botones u otros controles (instructivo)

Como ejemplo, aplicamos seguridad por usuario y empresa para ocultar – mostrar un botón

Ocultaremos un botón en:

/Crm/Cuenta

Vista:

en “Helpers.vbhtml” agregamos un helper.

@helper button_new_contact(ByVal baseWebPage As IGGlobal.Mvc.CustomMvcViewPageBase, ByVal field As String)

@<button @baseWebPage.GetNgHideAttr(field) ng-click=“nuevoContacto()” style=float: right; class=“btn btn-outline btn-primary btn-sm” type=“button”>

Nuevo

</button>

End Helper

En “cuenta.vbhtml”

Reemplazamos :

<button ng-click=”nuevoContacto()” style=”float: right;” class=”btn btn-outline btn-primary btn-sm” type=”button”>

Nuevo

</button>

por:

@Helpers.button_new_contact(Me, “button_new_contact”)

Controlador JS:

Nada nuevo, obviamente existe la función “nuevoContacto()”

Controlador MVC (VB.net):

Nada nuevo.

Base de datos:

insertar dos registros:

Definimos: Base de datos, Usuario, URL, IdNombre, el “1” representa “Invisible”

insert into Info_Seg_Formularios_Sistema_Defaults

values (‘BARRIOS_PRIVADOS’,‘SUPERBP’,‘/Crm/Cuenta’,‘button_new_contact’,,0,1,,)

Definimos:  URL, IdNombre,Descripción

insert into Codigos_Seg_Formularios_Sistema_Campos

values(‘/Crm/Cuenta’,‘button_new_contact’,‘button_new_contact’)

—-Fin—-


Login – Bloqueo de usuarios basado en Token

A partir de la versión 8.8.1 de IGGLOBAL el módulo Online contará con un control de bloqueo de usuarios basado en token.

Funciona de la siguiente manera:

  1. El usuario ingresa sus credenciales y, una vez que el sistema lo autentica de forma correcta, se almacena en la máquina actual del usuario una cookie que contiene un token de acceso (que expira a las 8 horas)
  2. Durante las 8 horas que el token es válido, el usuario podrá ingresar al sistema tantas veces lo desee pero sólo desde la máquina en la que inicialmente se autenticó.
  3. Si durante ese lapso él u otra persona desea utilizar el mismo usuario desde otra terminal el sistema indicará que el usuario se está utilizando desde otra terminal.