myapplicationgenerator http://www.myappgen.com info@ myappgen.com copyright Carlos Leggio
Seguridad de las Aplicaciones En los desarrollos de aplicaciones empresariales actuales el tema de seguridad está tomando cada vez mayor importancia. Las necesidades de las empresas en esta materia no se centran en una sola herramienta sino en una serie de ellas. Existen herramientas orientadas a la seguridad de las aplicaciones y existen otras netamente centradas en los datos. El punto referente a los datos se encuentra muy bien cubierto por cada base de datos, así tenemos que bases de datos como: MySql, Oracle, Db2, Sql Server, Informix disponen de un conjunto de elementos con los cuales se controla adecuadamente la seguridad en lo referente a creación, actualización y acceso a los datos. En cuanto a las aplicaciones, los mecanismos de seguridad están orientados a crear accesos diferenciados a las distintas funciones de la aplicación, de acuerdo al usuario que la está utilizando. Así, el vendedor no debe poder registrar los asientos contables y el contador no debe poder alterar el plan de ventas. Además, aún teniendo acceso a la misma ventana, también puede ser necesario ocultar columnas en las listas o aplicar filtros para limitar el conjunto de datos que se muestran en las consultas o informes; así, utilizando la misma consulta, cada vendedor tendrá acceso sólo a sus ventas, mientras que el supervisor accederá a las ventas de todos los vendedores. Todas las aplicaciones construidas con myappgen, tienen disponibles estas funcionalidades; es más, no se pueden construir aplicaciones sin tener habilitado el módulo de seguridad. Pero lo verdaderamente innovador en el módulo de seguridad construido por myappgen, es que el administrador de la aplicación define las restricciones de acceso mientras está ejecutando la aplicación; así, en cualquier programa de la aplicación, el administrador puede entrar en el modo de edición de seguridad, definir restricciones para cualquier componente de la ventana y luego seguir ejecutando la aplicación y ver inmediatamente como queda la ventana al aplicar las restricciones. Con este mecanismo se simplifica el trabajo de administración de seguridad, volviéndose un proceso sumamente intuitivo que no requiere de mucha capacitación y está al alcance de cualquier empleado al que se le encargue esta responsabilidad. Además de los mecanismos de seguridad restrictivos, están los mecanismos informativos que nos permiten auditar la utilización de la aplicación. Así, en caso necesario, existe la posibilidad de saber el histórico de las modificaciones de los registros, o sea, cuál usuario hizo la modificación, cuándo la realizó y qué dato fue modificado. Entonces, las funciones de seguridad disponibles en las aplicaciones construidas con myappgen son las siguientes: 1. Logon de la aplicación. 2. Restricciones en los componentes visuales de la aplicación. 3. Auditoría de archivos de la aplicación. A continuación pasaremos a explicar cada una de estas herramientas.
Logon de la aplicación Todas las aplicaciones generadas por myappgen incorporan automáticamente la pantalla de Logon; así, no se puede acceder a la aplicación si no se proporciona correctamente el logon y password. Cuando se ingresa por primera vez a la aplicación debe utilizar el logon y password proporcionado por el administrador de la aplicación; la aplicación le exigirá el cambio de este password, de esta manera, ni siquiera el administrador de la aplicación podrá conocer su password. No obstante, presionando el botón Ch.Pass., se puede acceder a esta ventana y cambiar el password en cualquier momento. Es importante mencionar que los grupos de usuarios pueden tener definido un límite de vigencia del password. En este caso, al finalizar el periodo de vigencia, la aplicación exigirá a todos los usuarios del grupo que cambien su antiguo password por otro nuevo. Desde la pantalla de logon también se puede cambiar el password del correo electrónico. Presione Mail Pass y efectúe la modificación desde la siguiente pantalla. Como se puede ver en la siguiente figura, la pantalla de logon también dispone de un modo extendido al cual se accede apretando Show Options. Normalmente esta opción se utiliza sólo al instalar la aplicación para indicar el servidor y directorio donde se encuentra el archivo que contiene la información sobre los drivers de la base de datos. Este tema será explicado en el Anexo: Instalación de la Aplicación en el Cliente.
Restricciones de acceso en los componentes visuales de la aplicación. El manejo de estas restricciones de seguridad permite que la aplicación cambie sus características, dependiendo del usuario que ingresó en la misma. Así evitamos que los empleados de ventas puedan hacer asientos contables o emitir informes de contabilidad, o inhibimos a los supervisores de ventas el registro de facturas. Esta funcionalidad se obtiene haciendo que determinados elementos de la aplicación estén inhabilitados o incluso invisibles para todos los usuarios del grupo con restricción; existen también otros casos en los que se necesita ocultar columnas en las listas, o limitar el acceso a un subconjunto de datos, o restringir la cantidad de registros en un informe. Todas estas necesidades están contempladas en el Administrador de Seguridad de las aplicaciones creadas con myappgen. El administrador ejecuta la aplicación con su logon y define las restricciones de acceso mientras está ejecutando la aplicación; así, en cualquier ventana puede entrar en el modo de edición de seguridad, definir restricciones para cualquier componente de la ventana y luego seguir ejecutando la aplicación y ver inmediatamente como queda la ventana al aplicar las restricciones. Para definir las restricciones el Administrador ingresa a la aplicación y por el hecho de tener el rol de administrador se despliegan los botones de manejo de restricciones en todas las pantallas e informes. Presionando el botón desde cualquier pantalla de la aplicación se accede al módulo de seguridad desplegándose los botones que dan acceso a sus principales funciones.
Posteriormente debemos seleccionar el grupo para el cual deseamos definir restricciones. Una vez seleccionado el grupo podemos comenzar a definir las restricciones (alt+clic en cualquier componente). Luego de finalizar la definición de restricciones para el grupo, se puede entrar en el modo aplicar restricciones y ver cómo le aparecerá esta ventana o informe a los usuarios de ese grupo. Ahora que hemos finalizado esta breve presentación de cómo el Administrador de Seguridad maneja las restricciones de la aplicación, le explicaremos el detalle del funcionamiento en los siguientes temas del Manual. Definir Restricciones en la Aplicación. Mostrar Restricciones de la Aplicación. Datos Básicos.
Definir Restricciones en la Aplicación El módulo de Administración de Seguridad permite definir restricciones tanto para las ventanas con sus respectivos componentes visuales, como también para los informes de la aplicación. Debido a que el manejo de las restricciones para ventanas e informes presenta algunas diferencias en su metodología de trabajo, se explicarán de forma separada ambos casos. Definir Restricciones en Ventanas y en sus componentes visuales internos Se puede definir restricciones para ingresar la ventana, en este caso, se exigirá que se digite un password; también se pueden dejar el acceso libre a la ventana y definir restricciones para los componentes visuales de la ventana tales como Menús, Items de Menús, Paneles, Tabs, Listas, Prompt de Textos, Textos, Botones, etc. Las restricciones en los componentes visuales se utiliza cuando necesitamos por ejemplo inhabilitar la opción de menú Informes de Contabilidad, ocultar columnas en la lista de Empleados, filtrar los registros que serán desplegados, impedir que se pueda escribir en el campo Nombre, o dejar oculto el botón Agregar. Es importante indicar que el proceso de definición de restricciones para este tipo de elementos de la aplicación consta de dos modos de trabajo: el de definir restricciones y el de aplicar restricciones. A continuación le presentamos un caso práctico que aclara el funcionamiento de estos dos modos de trabajo. Supongamos que los usuarios del Grupo User no deben visualizar el campo Total. Para acceder al módulo de Seguridad y definir las restricciones, debe presionar el botón desde cualquier ventana de la aplicación. Alternativamente, si usted está en el Menú Principal puede elegir las opciones indicadas.
A continuación debemos seleccionar el grupo para el que necesitamos definir restricciones. Desde cualquier pantalla presione el botón y desde la lista Select Group seleccione el grupo y confirme con Select row. Ahora, podemos definir las restricciones para el grupo seleccionado. En el formulario Country presione alt+clic sobre Total y posteriormente en el formulario Update Restriction seleccione con clic en Invisible y confirme con Ok. Presione alt + clic Repita los mismos pasos para el valor Total. Por último, para ver inmediatamente las restricciones aplicadas al grupo User, presione el botón Applay Restrictions. Observe que estas restricciones no están aplicadas en el grupo administrador. Presionando el botón Exit se sale del módulo de Administración de Seguridad y se continúa ejecutando la aplicación como usuario del grupo administrador. En este ejemplo el grupo administrador no tiene ninguna restricción para este formulario.
Definir Password en una Ventana Se utiliza en aquellas ventanas donde sólo pueden acceder los usuarios autorizados. Para esto se puede restringir el acceso a la ventanas definiendo un password. En la lista presione clic en el botón. Desde el formulario se digita el Password, Confirm Password y se presiona Ok. Para ingresar a esta ventana desde el modo aplicar restricciones se deberá proporcionar el password correspondiente. Definir Restricción en un Tab Para ocultar un Tab primero presione alt + clic sobre el Tab, luego desde el formulario de restricción seleccione con clic en Invisible y confirme con Ok. Definir Restricciones en una Lista Usted dispone de las siguientes restricciones: ocultar toda la lista, ocultar columnas específicas, e indicar filtros para las listas. Para acceder al formulario de restricción debe presionar alt+clic sobre la lista. Presione alt + clic
Presionando alt + clic en el título de la columna se marca con invisible; si vuelve a presionar se desmarca. También desde el formulario puede marcar o desmarcar las columnas en Invisible Columns. Utilice el campo Filter Condition para poner filtros que limitan los registros disponibles para los usuarios del grupo. Doble clic trae el campo a Filter Condition Para ocultar toda la lista seleccione con clic en Invisible Table. Definir Restricciones en un Texto Los textos tienen tres tipos de restricciones y usted puede elegir más de una restricción. Invisible: Indica que el texto quedará invisible. Disable: Indica que el texto quedara inhabilitado. Read Only: Indica que el texto quedará en modo de lectura, o sea, no se puede escribir nada sobre el mismo. Presione alt + clic
Definir Restricciones en un Botón Como se observa en la siguiente figura los botones tienen sólo dos tipos de restricciones: Invisible y Disable. Presione alt + clic La definición de restricciones de los restantes elementos son similares al caso del texto o del botón; por este motivo únicamente serán presentadas por medio de ejemplos visuales. Los siguientes elementos de la figura: Spinner, List y Tree no pueden ser generados desde myappgen, pero pueden tener restricciones porque usted puede agregar estos elementos desde la aplicación generada. Es importante que cada elemento que usted agregue tenga definido el atributo Name por ser un requisito obligatorio para el módulo de seguridad.
Definir Restricciones en Informes de la aplicación Se pueden poner restricciones en los informes, los informes de totales y las consultas de totales. En estos informes se define como restricción un filtro con el fin de que determinados grupos de usuarios sólo puedan ver un subconjunto del informe. La definición de este filtro no impide que los informes tengan sus propios filtros y que ellos se apliquen de forma conjunta. En el caso de los informes no se hace distinción en cuanto a los modos definir restricciones y aplicar restricciones. En un informe para aplicar el filtro sólo debe escribirlo en el formulario de definición de filtro y confirmar con Ok; para borrar el filtro en el mismo formulario se deja el filtro en blanco y vuelve a confirmar con Ok. A continuación presentamos un caso práctico que aclara el proceso de definición de restricciones para los informes. Supongamos que los usuarios del Grupo User no deben visualizar los registros del tipo Ef. Primero indicamos que deseamos definir restricciones para el Grupo User. En el Report Preview presione el botón y en la lista Select Group seleccione el grupo y confirme con Select row.
A continuación definimos el filtro. En el Report Preview presione el botón el filtro y confirme con Ok., escriba Cuando usted confirma el filtro, éste queda automáticamente aplicado en el informe. Si usted desea borrar el filtro debe volver al formulario de filtro, poner el filtro en blanco y presionar Ok. Este procedimiento también es aplicable para los informes de totales y las consultas de totales. En los informes de totales los botones del Administrador de Seguridad se encuentran también en el Report Preview. En el caso de las consultas de totales se encuentran en la lista tal como se observa en la siguiente figura.
Cuando usted define filtros para las consultas de totales e informes de totales, un punto muy importante a tener en cuenta es que el filtro será aplicado a todas las definiciones de usuario que existan. En este ejemplo tenemos tres definiciones de usuario para el Query.
Mostrar Restricciones de la Aplicación Al llegar a este punto del Manual usted ya sabe como definir restricciones en las ventanas e informes de sus aplicaciones. Se habrá dado cuenta que el mecanismo de trabajo es muy simple y rápido, pero por otra parte las restricciones se encuentran distribuidas por toda la aplicación y esto nos crea algunas dificultades cuando necesitamos saber que restricciones fueron aplicadas a un grupo de usuarios; en este caso, tendríamos que recorrer todas las ventana de la aplicación y verificar si existe alguna restricción. Para salvar este inconveniente, la Lista de Restricciones permite manejar de forma centralizada las restricciones de todos los grupos o de un grupo en particular. Para acceder a la Lista de Restricciones debe presionar el botón Show Restrictions. Este botón se encuentra disponible tanto en las ventanas como en los informes. En las dos siguientes figuras se observa la Lista de Restricciones para el Grupo User. Para ver todas las restricciones seleccione el nodo Procs with Restrictions. Para ver las restricciones de una ventana o de un informe, seleccione el nombre del Procedure.
En la Lista de Restricciones se visualiza del lado izquierdo a todos los procedimientos que tienen restricciones, y del lado derecho las restricciones de los controles de cada procedure. Si al estar ejecutando un procedure determinado presiona el botón Show Restrictions, entonces se abre la ventana de la Lista de Restricciones posicionada en el nombre del procedure que se está ejecutando. Allí se pueden ver todas las restricciones de ese procedure y borrar las que fuesen necesarias. Si deseamos borrar todas las restricciones del Grupo Adm, debemos posicionarnos sobre Procs with Restrictions y seguir el mismo procedimiento anterior.
Datos Básicos Mediante esta opción se definen los grupos de seguridad y en cada grupo, sus usuarios correspondientes. Por otra parte, la opción Default Colors permite definir los colores con que se marcarán cada tipo de restricción. Grupo de Seguridad En este catastro se registran los grupos de seguridad con sus atributos. Estos atributos definen las propiedades que tendrán todos los usuarios pertenecientes a ese grupo. Al registro del grupo se puede acceder desde el menú principal o también presionando el botón Update Groups desde cualquier ventana de la aplicación. En la lista Security Group se puede catastrar el grupo y sus usuarios. Atributos del Grupo: Grupo: Código del grupo. Descripción: Nombre del grupo. Administrador: Indica si el grupo es del tipo administrador. Cambiar Password: Exigirá cambio de password y sugiere 30 días de validez. Cantidad de Días: Indica la cantidad de días de vigencia del password.
Usuarios Se registra a los usuarios identificados por su logon, los usuarios pertenecen a un grupo y pueden estar Activos o Inactivos. Se puede acceder al catastro de usuarios tanto desde el Menú como desde el botón Update Users disponible en cada ventana. Para catastrar a los usuarios se utilizan los botones de la lista y se registran los datos que se muestran en la figura de la derecha. Logon: Código del usuario. Grupo: Grupo al cual pertenece el usuario. Observación: Si un usuario no pertenece a un grupo del tipo administrador, al entrar en la aplicación no tiene disponibles los botones del Administrador de Seguridad. Nombre: Nombre del usuario. Password y Pass Last Change: Estos campos se actualizan automáticamente al cambiar el password desde la ventana de Logon. Estos campos también tienen como función volver a habilitar a un usuario inhabilitado. Email: Cuenta de correo electrónico del usuario. Cuando registra por primera vez este campo se crea un registro en el Address Book del módulo de Mail. Categoría: sirve para agrupar usuarios, por ejemplo internos, externos, etc.
Para inhabilitar a un usuario, se selecciona al usuario y se presiona el botón Disable the Current User. En el formulario de confirmación debe presionar el botón Disable. Una vez que un usuario fue inhabilitado, ya no podrá acceder a ninguna aplicación de la empresa. Para volver a habilitarlo el Administrador deberá modificar los campos Password y Pass Last Change. En el primer campo debe poner el nuevo password que proporcionará al usuario, y en el segundo la fecha actual del sistema.
Default Color Desde esta opción puede configurar dos tipos de información: 1. Los colores de foreground y background que se aplicarán a los componentes visuales en el modo definir restricciones. 2. Font Folder: o carpeta del sistema operativo donde se encuentran los drivers de fonts. Esta información se utiliza en los informes, es una información del tipo global que no se encuentra enmarcada en el módulo de seguridad. Para acceder a la opción de Default Colors debe elegir las opciones de Menú que se muestran en la siguiente figura.
Control de auditoría de archivos de la aplicación Con el logon y el manejo de restricciones se puede limitar el acceso de los usuarios a la aplicación, a determinadas ventanas, informes o inclusive a algunos componentes de las ventanas. Con el Control de Auditoría no se apunta a restringir el acceso, sino más bien a dejar un registro de quién actualizó algún archivo de la base de datos. Puede ser importante, por ejemplo, saber quien grabó un asiento contable, quien emitió una factura, quién liberó el desembolso de una orden de pago, quién borró algunos ítems de la factura. Estas funciones se encuentran integradas a las aplicaciones generadas con myappgen. El funcionamiento del módulo de auditoría es muy simple y bastante automatizado, solamente se debe indicar los archivos necesitan ser auditados y la herramienta se encarga de crear los registros necesarios. Además, permite ver el histórico de auditoría para cada archivo desde la misma pantalla donde se registran sus datos o en forma centralizada, para todos los archivos auditados desde la lista Audit Log. El control de auditoría es una herramienta opcional y se incorpora sólo en aquellas aplicaciones que en el momento de ser creadas desde myappgen tienen habilitada la opción Audit Manager. La explicación detallada del funcionamiento de este módulo se trata en los siguientes temas del Manual. 1. Configuración del Log de Auditoría. 2. Auditoría de los Registros de una Lista. 3. Log de Auditoría de la Aplicación.
Configuración del Log de Auditoría El control de auditoría se efectúa en todos aquellos archivos especificados en el formulario Configuración del Log de Auditoría. Para acceder elija las opciones indicadas en la figura de abajo. Para especificar los archivos guardarán registros de auditoría, debe seleccionarlos desde Available Files y luego presionar el botón Select. Para eliminar el control de auditoría debe seleccionar desde Selected Files y presionar el botón UnSelect. Debido a que la auditoria se registra por cada operación de actualización de cada archivo auditado, el histórico suele tener muchos registros; además, si no se tiene algún mecanismo de limpieza seguirá creciendo indefinidamente, por lo que, para salvar este inconveniente se establece el parámetro de Cantidad Máxima de Registros. Cuando se exceda este valor el sistema eliminará los registros más antiguos, hasta que el histórico nuevamente se reduzca a la cantidad máxima de registros. Este proceso de eliminación de registros de auditoría es una tarea periódica programada, y se ejecuta desde el servidor de runtimemgr.
Auditoría de los Registros de una Lista Cuando usted actualiza un archivo que tiene control de auditoría se crea automáticamente un registro por cada operación de actualización. Para poder ver los registros de auditoría de una lista debe posicionarse en el registro y luego presionar el botón Audit record operations. Como se observa en la figura de la lista Registry of Modifications, por cada operación de actualización se puede visualizar quién efectuó la operación, en qué fecha y hora. Para cada operación en particular se puede ver el valor actual y anterior de cada campo. En la lista de campos no aparecen los campos del tipo fórmula. Para acceder al histórico de registros borrados, desde el histórico de auditoría se presiona el botón Select a Deleted Record. El histórico Browse Deleted Records le permite seleccionar un registro borrado y a continuación, ver sus registros de auditoría.
Log de Auditoría de la Aplicación La lista Audit Log muestra todos los registros de auditoría para todos los archivos de la aplicación que hayan sido registrados por esa aplicación o por otras que comparten el mismo archivo. Por otro lado, no se ven los registros de archivos que no son utilizados por su aplicación. En la figura se muestran registros de Ordenes e Item, pero en la base de datos existen otros registros que no los ve porque su aplicación no usa esos archivos. Para acceder a la lista elija desde el Menú Principal las opciones indicadas en la figura de abajo. Recuerde que le hemos indicado que existe en el runtimemgr un proceso periódico programado para borrar los ítems más antiguos de esta lista. En una aplicación en producción la cantidad de registros de esta lista es enorme, por lo que la opción de filtrado se convierte en una funcionalidad indispensable para obtener la información de auditoría que requiera. A diferencia de otras herramientas que utilizan la interface de filtro estándar, Audit Log usa una interface especializada que se muestra en la figura de abajo. Cuando selecciona uno de estos controles se incorpora automáticamente al texto de definición del filtro, el campo o la condición que haya elegido. Ver el ejemplo de la figura derecha. Presentaremos algunos ejemplos que nos aclaren el funcionamiento de esta ventana de definición del filtro. Condición de Filtro: Todos los registros modificados por jperez en un rango de fechas.
Condición de Filtro: Todos los registros borrados y que tengan el siguiente rango de códigos. Condición de Filtro: Todos los registros del archivo ITEM. El campo dat.file corresponde al nombre del archivo en la aplicación, que es distinto al nombre de la tabla en la base de datos. Condición de Filtro: Todos los registros de la tabla de la base de datos de nombre BASICO.ORDERS. Condición de Filtro: Todos los registros disponibles para esta aplicación. La condición en blanco significa todos los registros.