Configuración de la seguridad
OpenKM puede trabajar con varios gestores de seguridad; según el valor seleccionado, la forma en que se evalúa el resultado difiere. Esta aplicación dispone de gestores independientes, uno para el motor de búsqueda y otro para el resto de la aplicación.
Gestores del motor de búsqueda:
- lucene.
- am_more, am_window o am_limited.
Gestores del resto de la aplicación:
| Tipo | Nombre | Descripción |
|---|---|---|
| Default | com.openkm.plugin.access.DbSimpleAccessManager | Gestor de seguridad predeterminado de OpenKM. Analiza únicamente el nodo actual, no toda la jerarquía. |
| Recursive | com.openkm.plugin.access.DbRecursiveAccessManager | Analiza toda la jerarquía. Analizar toda la jerarquía requerirá más tiempo y puede causar problemas de rendimiento. |
| Read recursive | com.openkm.plugin.access.DbReadRecursiveAccessManager | Analiza toda la jerarquía (solo para el acceso de lectura). Analizar toda la jerarquía requerirá más tiempo y puede causar problemas de rendimiento. |
| Default file plan | com.openkm.plugin.access.DbFilePlanAccessManagerWrapper | Analiza los documentos en función del tipo de documento y de las restricciones del cuadro de clasificación. Solo debe habilitarse cuando el cuadro de clasificación (file plan) esté habilitado. |
Por defecto, la aplicación está configurada con:
| Campo / Propiedad | Tipo | Descripción |
|---|---|---|
| security.access.manager | String | com.openkm.plugin.access.DbSimpleAccessManager |
| security.search.evaluation | String | lucene |
Diferencias entre simple y recursivo
Sección titulada «Diferencias entre simple y recursivo»
okm:root
level-1a
level-2a
level-3a
alpha.doc
beta.doc
gamma.doc
level-3b
level-1b
level-1c
Al utilizar simple, si revoca el permiso de la carpeta level-2a y el usuario intenta ver la carpeta level-3a, OpenKM seguirá mostrando los documentos a este usuario. Cuando el usuario realice una búsqueda, OpenKM devolverá estos documentos como resultados de la búsqueda. Sin embargo, el usuario no puede acceder a los documentos porque, cuando OpenKM intenta acceder a un documento, abre cada ubicación de la ruta y fallará al abrir level-2a porque el usuario no tiene derechos. No obstante, a estos documentos se puede acceder mediante la API. Debe aplicar la revocación de forma recursiva para evitar que el usuario vea estos documentos, de modo que no se muestren en los resultados de la búsqueda.
Al utilizar recursive, si revoca el permiso de la carpeta level-2a y el usuario intenta ver la carpeta level-3a, OpenKM informará de un error porque el Access Manager también evalúa el permiso del nodo ancestro level-2a. Cuando el usuario realice una búsqueda, OpenKM no mostrará estos documentos en los resultados de la búsqueda. Tenga en cuenta que esta implementación del Access Manager es más lenta porque necesita evaluar más nodos: cuanto más profundo es el nodo, más nodos padre deben evaluarse.
Ampliación de la seguridad
Sección titulada «Ampliación de la seguridad»Puede utilizar la seguridad extendida para descargar ficheros, iniciar flujos de trabajo, añadir, eliminar o modificar grupos de propiedades (metadatos) o compactar el historial. Para habilitar la evaluación de la seguridad extendida, debe cambiar el valor del parámetro security.extended.mask.
Valores:
- DOWNLOAD = 1024;
- START_WORKFLOW = 2048;
- COMPACT_HISTORY = 4096;
- PROPERTY_GROUP = 8192;
Por ejemplo, para habilitar la descarga y los grupos de propiedades debe utilizar la máscara 9216 (1024 + 8192).
| Campo / Propiedad | Tipo | Descripción |
|---|---|---|
| security.extended.mask | Integer | 9216 |
Configuración para cambios de seguridad que tardan mucho tiempo
Sección titulada «Configuración para cambios de seguridad que tardan mucho tiempo»Por defecto, cuando cambia la seguridad de un nodo en la vista estándar, cada vez que hace clic para conceder o revocar un permiso, la acción la ejecuta OpenKM. Esto significa que, si desea cambiar la seguridad de 10 usuarios, se envían 10 comandos al servidor. Esto se convierte en un problema cuando cada cambio afecta a varios cientos (o incluso miles) de nodos. Existe un parámetro de configuración de seguridad alternativo llamado security.mode.multiple que permite realizar varios cambios a la vez, por lo que es más rápido.
| Campo / Propiedad | Tipo | Descripción |
|---|---|---|
| security.mode.multiple | Boolean | true |
Algunos cambios de seguridad pueden tardar mucho tiempo en completarse porque afectan a muchos nodos. Es una buena práctica realizarlos como tareas en segundo plano. Para ello existe un parámetro de configuración llamado security.live.change.node.limit, que sirve para establecer el límite de nodos que se pueden cambiar en modo «live» o «en tiempo real». Por defecto este valor es 100, lo que significa que cualquier cambio que afecte a más de 100 nodos se realizará automáticamente como una tarea en segundo plano.
| Campo / Propiedad | Tipo | Descripción |
|---|---|---|
| security.live.change.node.limit | Integer | 100 |
Para comprobar el progreso de estas tareas pendientes, vaya a Administration > Statistics > Pending task queue.