Configuración de seguridad
OpenKM puede trabajar con varios gestores de seguridad. Según el valor seleccionado, la forma en que se evalúa el resultado varía. Esta aplicación tiene gestores separados, 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
Gestor del resto de la aplicación:
| Type | Name | Description |
|---|---|---|
| Default | com.openkm.plugin.access.DbSimpleAccessManager | Gestor de seguridad por defecto de OpenKM. Analiza solo el nodo actual, no toda la jerarquía. |
| Recursive | com.openkm.plugin.access.DbRecursiveAccessManager | Analiza toda la jerarquía. Analizar toda la jerarquía llevará más tiempo y puede causar problemas de rendimiento. |
| Read recursive | com.openkm.plugin.access.DbReadRecursiveAccessManager | Analiza toda la jerarquía (solo para acceso de lectura). Analizar toda la jerarquía llevará más tiempo y puede causar problemas de rendimiento. |
| Default file plan | com.openkm.plugin.access.DbFilePlanAccessManagerWrapper | Analiza según el tipo de documento y las restricciones del plan de ficheros. Solo debería habilitarse cuando el plan de ficheros está habilitado. |
La aplicación está configurada por defecto con:
| Field / Property | Type | Description |
|---|---|---|
| security.access.manager | String | com.openkm.plugin.access.DbSimpleAccessManager |
| security.search.evaluation | String | lucene |
Diferencias entre simple y recursive
Sección titulada «Diferencias entre simple y recursive»
okm:root
level-1a
level-2a
level-3a
alpha.doc
beta.doc
gamma.doc
level-3b
level-1b
level-1c
Al usar 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 ese usuario. Cuando el usuario realiza una búsqueda, OpenKM devolverá esos documentos como resultados de búsqueda. Sin embargo, el usuario no podrá acceder a los documentos porque cuando OpenKM intenta acceder a un documento, abrirá cada ubicación de la ruta y fallará al abrir level-2a porque el usuario no tiene permisos. Pero estos documentos sí pueden accederse usando la API. Necesita revocar los permisos de forma recursiva para evitar que el usuario vea estos documentos, de modo que no aparezcan en los resultados de búsqueda.
Al usar recursive, si revoca el permiso de la carpeta level-2a y el usuario intenta ver la carpeta level-3a, OpenKM mostrará un error porque el Access Manager también evalúa el permiso del nodo ancestro level-2a. Cuando el usuario realiza una búsqueda, OpenKM no mostrará estos documentos en los resultados de búsqueda. Tenga en cuenta que esta implementación de Access Manager es más lenta porque necesita evaluar más nodos: cuanto más profundo esté el nodo, más nodos padre deben evaluarse.
Ampliar la seguridad
Sección titulada «Ampliar la seguridad»Puede usar seguridad extendida para descargar ficheros, iniciar workflows, añadir, eliminar o modificar grupos de propiedades (metadatos), o compactar el historial. Para habilitar la evaluación de 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 download y property groups, debería usar la máscara 9216 (1024 + 8192).
| Field / Property | Type | Description |
|---|---|---|
| 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, OpenKM ejecuta la acción. Esto significa que si quiere 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 habilita varios cambios a la vez, haciéndolo mucho más rápido.
| Field / Property | Type | Description |
|---|---|---|
| security.mode.multiple | Boolean | true |
Algunos cambios de seguridad pueden tardar mucho tiempo en completarse porque afectan a muchos nodos. Es buena práctica ejecutarlos como tareas en segundo plano. Para dar soporte a esto, existe un parámetro de configuración llamado security.live.change.node.limit que se usa para establecer el límite de nodos que pueden cambiarse 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.
| Field / Property | Type | Description |
|---|---|---|
| security.live.change.node.limit | Integer | 100 |
Para comprobar el progreso de estas tareas pendientes, vaya a Administration > Statistics > Pending task queue.