MMD III: Esquema de seguridad

Las aplicaciones en tres capas, lo que incluye en parte a las aplicaciones web, normalmente establecen su estructura de permisos y visibilidad de los datos en la capa intermedia.

En el caso de las aplicaciones en 2 capas, como Criterium CyP, se suele establecer la seguridad a nivel de aplicación cliente. Este sistema parece un residuo histórico que no tiene sentido en la actualidad.
Las primeras bases de datos, (Btrieve, CISAM, ...) eran un fichero binario ilegible por los humanos y muy complicado de leer por los ordenadores si no se sabía la estructura exacta del mismo. En este sentido un sistema de seguridad basado en el cliente era suficiente.
Posteriormente nacieron formatos de tabla que integraban la definición de los campos contenidos en el propio fichero. Esto hacía mas sencilla su lectura a los programas de ordenador. Es el caso de Dbase, Paradox, FoxPro y recientemente Access. El establecer los permisos a nivel de aplicación cliente ya no era suficiente, ya que los usuarios avanzados podían acceder de forma directa a los datos saltándose dicha protección. Es increíble la cantidad de aplicaciones, basadas en tablas planas e incluso servidores SQL, que siguen manteniendo este obsoleto sistema de protección. No hay duda que la "protección por oscuridad" los sigue protegiendo de la mayoría de los usuarios, sin embargo solo hay que tener un poco de inquietud y curiosidad para saltarse estas medidas de protección. Este es un engañoso método de seguridad que por supuesto no hemos considerado. Algunos programadores, mas preocupados por la seguridad de sus datos, ingeniaron métodos para encriptar los datos o directamente usaron los que incorporaban de serie las propias bases de datos, que la mayoría de las veces eran muy sencillos de evitarse ya que se trata de métodos estándar muy conocidos
Hay un método aún mas básico que el anterior que está basado en la accesibilidad a los menús por parte de los usuarios. La verdad es que esto hace que necesariamente se tenga que limitar la flexibilidad y libertad a la hora de moverse entre distintas ventanas por parte del usuario. Este es un método muy básico y por tanto solo aplicable a aplicaciones también muy básicas.

Criterium CyP funciona sobre un servidor SQL. Inicialmente se estableció un sistema de permisos basado en el rol asignado al usuario. Al menos en la base de datos utilizada en nuestro ERP no hay posibilidad de conectar a los datos con más de un rol. Debido a esto este método tiene numerosas limitaciones a la hora de usarlo en un entorno de producción pequeño donde un mismo usuario tiene asignados numerosos roles de trabajo distintos y que además son muy cambiantes. Este problema es menor en las grandes organizaciones donde las tareas de cada usuario están establecidas de forma más rígida y estable.
Para solventar este problema, sin necesidad de multiplicar innecesariamente el número de roles creados para soportar todas las posibles opciones de combinación de roles mas básicos, hemos establecido un método basado en permisos asignados individualmente a cada usuario a partir de los permisos concedidos a los roles a los que pertenece. Viene a ser un sistema acumulativo de asignación de permisos basado en roles. De esta forma mantenemos la granulidad de los permisos sobre roles básicos.
Nuestro método en la capa de datos nos permite un control estupendo de los datos a los que puede acceder cada usuario y lo que puede hacer con ellos. El usuario no puede saltarse esa limitación accediendo directamente a la base de datos con alguna herramienta de administración específica o estableciendo conexiones ODBC/JDBC/ADO. Es más, el usuario puede utilizar este último tipo de conexiones para extraer y analizar la información de la base de datos, pero sin posibilidad de vulnerar sus asignaciones de privilegios en los datos.
En nuestro caso ni siquiera habría que utilizar otros productos o tecnologías para realizar esta "minería de datos no autorizada", Criterium CyP incluye potentes herramientas que podrían utilizarse para ello si se usara un esquema de seguridad basado en la aplicación cliente. El editor de informes permite hacer consultas SQL de forma directa a la base de datos. Además hemos programado expresamente la posibilidad de definir y guardar sentencias SQL mediante formularios específicos. Esta es una estupenda herramienta para montar cuadros de mando basados en la consulta directa de los datos.
En Criterium CyP cualquier usuario puede acceder a cualquier formulario o informe, cosa distinta es que pueda ver los datos mostrados en los mismos. Esto nos abre unas posibilidades a la hora de montar métodos de trabajo que no tienen otros programas. Sería una pena tener que restringir potencia tan solo para evitar un deficiente diseño del esquema de seguridad de los datos. Además, serviría de poco ya que podrían utilizarse otras herramientas para saltarse esa limitación impuesta.

Producto: