Modelo de Seguridad en OpenCms 7: usuario, grupos, OU y roles

Fri Nov 13 18:03:00 CET 2009       Technology For Solutions       Administración, OpenCms

El modelo de seguridad de OpenCms en v6 y anteriores estaba basado en ‘listas de acceso’ (ACL) a los recursos del sistema de archivos virtual (elementos del VFS). A partir de la asignación de permisos a grupos de usuarios se podían determinar los niveles de acceso. OpenCms v7.x introduce el concepto de roles y unidades organizacionales.

La implementación de un modelo de seguridad en OpenCms requiere la utilización de todos los elementos disponibles: usuarios, grupos, roles y unidades organizacionales. Estos elementos se combinan para lograr un esquema de seguridad flexible. A continuación, describiremos cada uno de ellos:

Usuarios

 OpenCms viene con una serie de usuarios pre-cargados: Admin, Export y Guest. Cada uno posee una función dentro de OpenCms: administrar el sistema (Admin), gestionar la exportación desde el VFS al sistema de archivos real (Export) y permitir el acceso al proyecto online (Guest).

A su vez, cada usuario tendrá un grupo asociado, un rol, un sitio y una unidad organizacional (OU). El grupo, sitio y rol pueden ser asignados al momento de la creación. No obstante, la OU debe ser seleccionada con anterioridad. Es decir, el usuario se creará en la OU donde hayamos ingresado para realizar la operación.

Finalmente, en la nueva versión desaparece el tipo de usuario WEBUSER. Los ‘webusers’ son aquellos usuarios que pertenecen a una OU con la marca de ‘webuser’ o simplemente adoptan el rol de webuser por la falta de un rol que les otorgue otra funcionalidad (Guest).

Grupos

En la práctica, los grupos funcionan como organizadores que reúnen usuarios. Esta agrupación luego facilita la asignación de permisos al VFS.

Los grupos poseen una relación con las unidades organizacionales (OU). La creación de grupos respecto de la OU es contextual. Es decir, debemos primero ingresar a una OU y luego crear el grupo. Por defecto, los grupos son creados en la OU raíz /.

La unidad organizacional raíz / posee algunos grupos pre-cargados. El más importante: Administradores.

Los permisos disponibles para asignar a los USUARIOS o GRUPOS en el sistema de archivo de OpenCms son:

  • Publicación directa: permite la publicación de contenido de forma directa sin requerir permisos a nivel del proyecto
  • Leer: permisos para leer un recurso determinado (archivo o carpeta)
  • Escribir: permisos para escribir en un recurso determinado
  • Ver: permite visualizar un recurso o el contenido de una carpeta. Es posible que queramos tener un recurso no visible para los usuarios pero aún así, que puedan leer el contenido del mismo
  • Control: permite configurar permisos a nivel del elemento
  • Responsable: al momento de definir permisos para un elemento, podemos definir un responsable. El responsable de un recurso es utilizado por la funcionalidad NOTIFICACIÓN DE CONTENIDOS para alertar sobre expiración del contenido, disponibilidad del mismo, etc.

Por último, a nivel permisos es posible determinar que un recurso es SOLO PARA USO INTERNO. De esta forma, no será accesible de ninguna forma desde el proyecto ONLINE.

Roles

Los roles son utilizados en OpenCms para asignar determinada funcionalidad a los usuarios. Los roles están pre-cargados y no pueden modificarse:

  • Administrador raíz: los usuarios con este rol tienen todos los permisos en el sistema completo
  • Administrador: los usuarios con este rol tienen todos los permisos en la unidad organizativa dada
  • Gestor de cuentas: los usuarios con este rol puede gestionar usuarios y grupos
  • Gestor de proyectos: los usuarios con este rol pueden gestionar proyectos
  • Gestor de recursos VFS: los usuarios con este rol pueden gestionar todos los recursos de la unidad organizativa dada, cualquier comprobación de permisos es ignorada.
  • Desarrollador de plantillas: los usuarios con este rol pueden gestionar ficheros jsp
  • Usuario del entorno de trabajo: los usuarios con este rol pueden iniciar sesión en el entorno de trabajo
  • Gestor de base de datos: los usuarios con este rol pueden gestionar módulos e importar/exportar datos
  • Gestor del entorno de trabajo: los usuarios con este rol puede gestionar tareas programadas, índices de búsqueda, definiciones de propiedades, histórico de los recursos, y las herramientas del entorno de trabajo

Es fundamental verificar la asignación de roles dado que algunos de ellos pueden sobre-escribir definiciones de seguridad a nivel del usuario.

Unidades Organizacionales

Las unidades organizaciones ofrecen un nivel superior de agrupación para usuarios y grupos. Esta forma de organizar la seguridad proviene de los servicios de directorio LDAP compatibles.

Dentro de la creación de una OU podremos seleccionar una marca de ’solo para webusers’. Mediante este control, el sistema deshabilita la asignación de roles a los usuarios miembros de la OU.
Implementación

 

Conclusiones

En resumen, la implementación de un modelo de seguridad en OpenCms v7 requiere de la definición de las diferentes unidades organizacionales que utilizaremos para agrupar usuarios y grupos. Cada usuarios, recibirá en primera medida la herencia de permisos a los que puede acceder fijado a nivel de los recursos de la OU. Luego, podremos configurar restricciones adicionales para ese usuario a nivel del VFS a través del modelo de permisos.

Finalmente, podremos definir que funcionalidades tiene el usuario disponible mediante la asignación de roles.