Visual Guard: Article in DotNetMania - Application Security, Membership, Authentication and Permissions

Laboratorio.net - Visual Guard .NET

El reciente caso aparecido en la televisión nacional, donde una factura recibida por un usuario mostraba los apellidos de éste cambiados por palabras ofensivas, ha puesto en evidencia una vez más la importancia de que las aplicaciones a través de las cuales los empleados manipulan los datos con que las empresas operan realicen una correcta autenticación y registro de actividad de sus usuarios. Este mes presentamos Visual Guard .NET, un cómodo y útil marco de trabajo que permite gestionar de una manera eficiente y centralizada los usuarios, roles y permisos de una aplicación y asegurar el acceso de los usuarios a cada uno de los elementos de la misma.

¿Qué nos ofrece Visual Guard?

Visual Guard simplifica enormemente tareas como las siguientes:

Gestionar los usuarios y roles de una aplicación y sus posibilidades de acceso

El producto permite realizar la autenticación de usuarios (creados especialmente o provenientes de un Directorio Activo o una base de datos de SQL Server u Oracle) y su autorización para el acceso a una aplicación o partes de ella en base a un conjunto de roles y permisos creados por nosotros y almacenados en una base de datos de cualquiera de los tipos anteriores o en un fichero encriptado. Toda esa información de seguridad se almacenará en un repositorio que podrá o no compartirse entre diferentes aplicaciones. El formulario de autenticación puede ser personalizado según nuestros deseos.

Permitir o impedir el acceso a aplicaciones o partes de ellas.

En base a los datos suministrados durante la fase de autenticación, el motor de Visual Guard autorizará o no el acceso del usuario a una aplicación o a partes específicas de ella, como menús o formularios.

Filtrar y proteger los datos confidenciales

En dependencia de la identidad del usuario, ciertos elementos de la aplicación que muestren datos confidenciales podrán ser ocultados o hechos de solo lectura para impedir su visualización y/o modificación.

Personalizar la interfaz de usuario

También en función de la identidad del usuario, será posible (y muy fácil) modificar la interfaz de usuario de los formularios que componen la aplicación, por ejemplo mostrando u ocultando botones, campos, pestañas de un cuaderno, etc.

Figura 1. Consola de administración

Figura 2. Diálogo de autenticación estándar

Parametrizar la lógica de negocio de la aplicación

Otra cosa que puede ser necesaria y que Visual Guard hace muy sencilla es la parametrización de la lógica de negocio en función de los usuarios y roles. Por ejemplo, es común que un vendedor “corriente” tenga fijado un importe máximo de pedido inferior al de sus jefes. Visual Guard ajustará la regla de validación correspondiente en función del usuario actual.

¿Cómo funciona Visual Guard?

Visual Guard consta de dos componentes fundamentales:

  • La Consola de administración de Visual Guard (figura1), una herramienta para la edición visual de los usuarios, mecanismos de autenticación a utilizar, roles, permisos, acciones a llevar a cabo en casos de que un usuario no tenga ciertos permisos, etc. La Consola de administración permite actuar sobre un repositorio de seguridad, en el que se almacena toda esa información para una aplicación o grupo de aplicaciones específico. Este repositorio podrá almacenarse en una base de datos SQL Server u Oracle o en un fichero encriptado.

  • El motor de ejecución de Visual Guard, un conjunto de ensamblados a los que harán referencia las aplicaciones y que modificará el comportamiento de éstas en función de la identidad del usuario actual y de los permisos que tenga asignados en el repositorio de seguridad de la aplicación. Como parte del motor se incluye un proveedor de membresía (membership), mediante el cual los desarrolladores podrán gestionar programáticamente los usuarios y roles. La tabla 1 muestra los ensamblados que componen
    el motor.
Ensamblado Contenido
Novalys.VisualGuard.Security Las clases principales de Visual Guard. La referencia a esteensamblado es obligatoria.
Novalys.VisualGuard.Security.File Clases necesarias para acceder a un repositorio almacenado en un fichero.
Novalys.VisualGuard.Security.Oracle Clases necesarias para acceder a un repositorio almacenado en una base de datos de Oracle (8i o superior).
Novalys.VisualGuard.Security.SQLServer Clases necesarias para acceder a un repositorio almacenado en una base de datos de SQL Server (2000 o superior)
Novalys.VisualGuard.Security.WebForm Clases necesarias para integrar Visual Guard en una aplicación o servicio ASP.NET.
Novalys.VisualGuard.Security.WinForm Clases necesarias para integrar Visual Guard en una aplicación Windows Forms.

Figura 3. La aplicación de ejemplo, utilizada por un administrador

Figura 4. La aplicación de ejemplo, utilizada por un empleado de recursos humanos británico

El motor de ejecución de Visual Guard modificará el comportamiento de las aplicaciones en función de la identidad del usuario

En tiempo de ejecución, el motor de Visual Guard:

  1. Gestiona la autenticación del usuario. La figura 2 muestra el diálogo de autenticación estándar,utilizado en la aplicación de ejemplo que acompaña al producto. Como hemos comentado anteriormente, usted puede suministrar su propio diálogo, si lo prefiere.
  2. Se conecta al repositorio y recupera los permisos del usuario.
  3. Ajusta dinámicamente la aplicación en función de esos permisos. Por ejemplo, cuando se abre un formulario, el motor de Visual Guard oculta controles y filtra datos según sea necesario. Las figuras 3 y 4 muestran la aplicación de ejemplo mientras está siendo utilizada por un administrador y un empleado del departamento de Recursos humanos de la oficina del Reino Unido, respectivamente. En el segundo caso, solo están visibles los clientes británicos, y no se permite al usuario la inserción o borrado de clientes.

El proceso de integración

El proceso de integración del motor de Visual Guard dentro de cualquier proyecto que estemos desarrollando constará típicamente de los siguientes pasos:

  1. Agregar los ensamblados de Visual Guard al proyecto y activar la seguridad.
  2. Implementar el formulario de autenticación de Visual Guard (o definir uno propio).
  3. Crear un repositorio de seguridad y registrar el proyecto dentro de ese repositorio.
  4. Los desarrolladores, utilizando la Consola, añaden al repositorio los permisos asociados al proyecto.
  5. El proyecto es compilado y desplegado.
  6. Una vez desplegado el proyecto, el administrador:
    a) Define roles y les asocia permisos de entre los existentes en el repositorio.
    b) Crea usuarios y los asocia a roles específicos.
    Observe que no se requieren conocimientos o habilidades técnicas especiales para administrar la seguridad.

Conclusiones

A lo largo de este artículo hemos intentado mostrar las principales posibilidades que nos ofrece Visual Guard para ayudarnos a crear aplicaciones seguras y personalizables en función de la identidad del usuario que las utiliza en cada momento. Se invita al usuario a descargar la versión de evaluación y probar las aplicaciones de ejemplo que se incluyen con el producto.

Octavio Hernández es Mentoring Team Leader de Plain Concepts, editor técnico de dotNetManía y tutor de campusMVP. Es MVP de C# desde 2004, MCSD y MCT

FEBRERO 2008 - DotNetManía - www.dotnetmania.com