Gestion de la Seguridad
Gestión de la seguridad en un sistema/solución desarrollado con O3 Planner
Un sistema/solución desarrollado con O3 Planner contiene 3 capas o niveles de permisos:
- Nivel 0: Permisos del servidor de bases de datos sobre las tablas. Estos permisos se gestionan mediante aplicaciones cliente del manejador de base de datos.
- Nivel 1: Permisos del servidor de O3 Planner sobre los objetos de análisis y simuladores. Estos permisos se gestionan mediante la aplicación O3 Administrador del Servidor (O3 AdmServer, en adelante) y la aplicación web del simulador.
- Nivel 2: Permisos del servidor de O3 Planner sobre los objetos que componen el simulador. Estos permisos se gestionan mediante la aplicación O3 AdmServer y la aplicación web del simulador.
Además, a nivel de la configuración inicial del servidor de O3 Planner, se define el valor por defecto de los permisos para los distintos tipos de objetos.
La gestión de la seguridad está basada en la definición de permisos sobre los tipos de objetos mencionados en los niveles anteriores que se otorgan o denegan a roles y usuarios. Los roles y usuarios se definen utilizando la aplicación O3 AdmServer.
Las reglas de "juego" generales entre los niveles se resumen a continuación.
- Si el nivel inferior denega permisos, dicha acción se propaga independientemente de lo definido en los niveles superiores,
- Si el nivel inferior otorga permisos, dependiendo de la aplicación cliente (web simulador o página inicio de O3 Portal), será el acceso que se tendrá. Si se denegan permisos en web simulador, no habrá acceso mediante la web del simulador. Sin embargo, habrá acceso mediante la página inicio de O3 Portal.
- En el mismo nivel,
- si un usuario pertenece a un y sólo un rol y tiene el valor de permiso "Por defecto", entonces el permiso es aquel definido a nivel de la configuración inicial del servidor,
- si un usuario pertenece a más de un rol y tiene el valor de permiso "Por defecto" en alguno de ellos, entonces el permiso que posee es el más restrictivo de aquellos definidos explícitamente (es decir, tendrá el acceso denegado a una acción sobre un objeto si en alguno de los roles el acceso está denegado).
E.g. supongamos un usuario que pertenece a 3 roles y que el valor de permiso a nivel de la configuración inicial del servidor es "Denegar" para un cierto objeto. Supongamos que los valores de permiso para el objeto son los siguientes para los roles: en uno, "Por defecto" (o lo que es lo mismo en estos casos, "no definido") y en los otros dos, "Permitir". Entonces su valor de permiso será "Permitir". En cambio, de los últimos dos, si uno fuera "Denegar", entonces su valor de permiso es "Denegar". Si todos tienen el valor de permiso "Por defecto", entonces su valor de permiso es "Permitir".
Permisos "Por defecto"
Los permisos definidos a nivel de la configuración del servidor se encuentran en el archivo GServer.properties ubicado en el directorio <O3>/jboss/server/<CONFIG_NAME>/ideasoft-o3. Si se desea cambiar la configuración inicial, editar o crear el archivo GServer_custom.properties e incluir las properties y los valores que se desean modificar.
A continuación se provee un resúmen específico para O3 Planner de casos típicos de uso. Por más detalle de la aplicación O3 AdmServer consultar el manual correspondiente
|
Caso de uso |
---|---|
Roles y Usuarios |
|
Simuladores |
|
Cubos |
|
Tableros, Dashboards y Modelos de cubos |
|
Objetos que componen un simulador
|
Ingreso al O3 Server Administrator
- Abrir el O3 Server Administrator
- En pestaña Opciones del Servidor, escribir el host donde se encuentra el servidor al cual se quiere conectar.
- En pestaña Opciones J2EE, verificar que está seleccionado el checkbox Conexión al servidor J2EE.
- Zona izquierda: Seleccionar la raíz Server
- Zona derecha: Presionar botón Connect
- Ingresar usuario y password
Definiciones de roles a nivel del servidor (nivel 1)
Roles sin privilegios de administrador
El rol se define con la aplicación O3AdmServer por un usuario con privilegio de administrador (en una instalación de demostración se encuentra predefinido el usuario admin/admin).
- Ingresar al O3 AdmServer con el usuario con privilegios de administrador.
- Crear el rol (e.g. "Elaboración de Planes", "Ingreso de Datos")
- En O3 AdmServer,
- habilitar los permisos para dicho rol para los cubos,
- habilitar los permisos para dicho rol para los simuladores, tableros, dashboards y modelos de cubos que se requieran. En particular, para los simuladores es el .sim.
Control sobre cambios en el modelo de simulación
Permitir "Write" sobre <simulador>.sim significa ofrecer la posibilidad de modificar el modelo de simulación. Definir con precaución a quien se delega esta importante responsabilidad.
Rol con privilegio de administrador
Se trata de un rol que tiene, en particular, el privilegio de otorgar permisos dentro de la aplicación web del simulador.
El rol se define con la aplicación O3AdmServer pero el privilegio se define usando la aplicación O3Browser ingresando con un usuario que pertenezca al rol "Manager" predefinido en O3AdmServer.
- Ingresar al O3 AdmServer (consultar con el instalador por usuario y password)
- Crear el rol que tendrá privilegio de administrador (e.g. "AdminSimulador")
- Ingresar al O3 Browser (consultar con el instalador por usuario y password)
- En O3 Browser, acceder a Herramientas > Componentes > Administracion > Grants Management y habilitar todas las opciones del prodructo RBAC del rol "AdminSimulador")
- En O3 AdmServer,
- habilitar los permisos para dicho rol para los cubos,
- habilitar los permisos para dicho rol para los simuladores, tableros, dashboards y modelos de cubos que se requieran. En particular, para los simuladores es el .sim. Permitir "Write" significa modificar el modelo de simulación.
- Usando un cliente del manejador de la base de datos, agregar los registros a la tabla rbac_app_permissions mediante el script sql adjunto en el cual debe sustituirse el nombre del rol en caso de que no sea "AdminSimulador".
- Si un usuario de este rol será usado en la configuración del constructor de los cubos (en inglés, builder), se debe habilitar, para este rol, el permiso de lectura para todos los modelos de los cubos involucrados en el simulador.
Definiciones de usuarios a nivel del servidor (nivel 1)
Existen 2 mecanismos provistos por O3 Planner:
- uso de usuarios definidos en un proveedor de LDAP, por ejemplo, active directory de Microsoft, o
- definición de usuarios en una base de datos propia de O3 Planner.
De los usuarios destacamos a los usuarios que tienen la propiedad isAdmin = true. Estos usuarios:
- tienen acceso a la aplicación O3 AdmServer,
- pueden gestionar permisos dentro de la aplicación web si, además, pertenecen a un rol con privilegio de administrador,
- pueden ser usados para configurar el constructor de cubos (builder) si, además, pertenecen a un rol que tiene permiso de lectura sobre los modelos de los cubos.
Verificación/Asignación de usuarios a roles (nivel 1)
Mediante "O3 AdmServer", los usuarios son asignados a los roles. De esta manera adquieren los privilegios de acuerdo al rol.
- Levantar O3 Administrador del Servidor.
- En pestaña "Opciones del Servidor", escribir el host donde se encuentra el servidor.
- En pestaña "Opciones J2EE", verificar que está seleccionado el checkbox "Conexión al servidor J2EE".
- Presionar el botón "Conectar" e ingresar el usuario con privilegio de administrador.
- En la zona de la izquierda, seleccionar "Servicios" > "Seguridad"
- Verificar que el usuario está asignado al rol. Para ello, en la zona de la derecha, seleccionar la pestaña "Roles", luego del panel de la izquierda seleccionar el rol correspondiente y finalmente del panel de la derecha seleccionar la pestaña "Actores". Verificar que el usuario se encuentra en dicha lista. En caso contrario, si se quiere habilitarlo presionar el botón "Add" o "Agregar" y seleccionar el usuario deseado. Luego presionar los botones "Apply" o "Aplicar".
Verificación/Habilitación de permisos a un simulador por parte de un rol (nivel 1)
Se asume que el nombre del simulador es SIM y el nombre del rol es ROL.
- Levantar O3 Administrador del Servidor.
- En pestaña "Opciones del Servidor", escribir el host donde se encuentra el servidor.
- En pestaña "Opciones J2EE", verificar que está seleccionado el checkbox "Conexión al servidor J2EE".
- Presionar el botón "Conectar" e ingresar el usuario con privilegio de administrador.
- En la zona de la izquierda, seleccionar "Servicios" > "Seguridad"
- Verificar que el rol "ROL" tiene permisos para trabajar con el simulador "SIM". Para ello, seleccionar la pestaña "Permisos", luego seleccionar el rol "ROL" del panel de la izquierda y finalmente del panel de la derecha seleccionar el componente que se refiere a "simulaciones" (en gral es la ultima opción). Verificar que el rol tiene el valor "Allow" o "Permitir" en el cruce (Repository, List) y (SIM.sim, Read). El resto de los cruces deberían tener el valor "Heredar" o "Inherit". En caso contrario, si se quiere habilitar su acceso elegir los valores y los cruces que se desean.
Control sobre cambios en el modelo de simulación
Permitir "Write" sobre <simulador>.sim significa ofrecer la posibilidad de modificar el modelo de simulación. Definir con precaución a quien se delega esta importante responsabilidad.
Verificación/Habilitación de acceso a un cubo por parte de un rol (nivel 1)
Se asume que el nombre del rol es ROL.
- Levantar O3 Administrador del Servidor.
- En pestaña "Opciones del Servidor", escribir el host donde se encuentra el servidor.
- En pestaña "Opciones J2EE", verificar que está seleccionado el checkbox "Conexión al servidor J2EE".
- Presionar el botón "Conectar" e ingresar el usuario con privilegio de administrador.
- En la zona de la izquierda, seleccionar "Servicios" > "Cubos" > "Cubos Disponibles"
- Seleccionar el cubo de interés (los cubos de un simulador tienen como nombre <nombre del simulador>-<nombre del componente>).
- En la zona de la derecha, pestaña "General" verificar que ROL aparece como rol autorizado. En caso contrario y quiere habilitarse su acceso, presionar el botón "Agregar". Ver además la nota adjunta.
Nota importante
El proceso de publicación de un modelo de simulación (en inglés, deploy) tiene el siguiente impacto sobre los roles autorizados en los cubos. Cuando se ejecuta una publicación,
- si los cubos del simulador NO existen, se agregan al servidor tomando como roles autorizados aquellos que están definidos para el cubo especificado en la property de nombre sim.cube.template ubicada en el archivo GServer.cfg o GServer_custom.cfg (por defecto, si no hay valor para esta property el cubo es "Demo" provisto en toda instalación de O3). Se llama a este cubo, cubo de referencia (sólamente del punto de vista de los permisos de acceso).
- si los cubos del simulador ya existen, se mantiene lo que está ya definido. Esto último significa que luego de la primera publicación del modelo de simulación, no se toma más en cuenta los roles autorizados para el cubo de referencia, debiéndose agregar el rol a habilitar directamente en el/los cubo(s) de interés.
Verificación/Habilitación de permisos a un tablero/dashboard/modelo de cubo por parte de un rol (nivel 1)
Análogo al caso con simulador, seleccionado el componente "Tablero", "Dashboard" o "Modelo" según corresponda.