Introducción
En la entrega anterior, presentamos cómo integrar múltiples fuentes de datos para realizar búsquedas unificadas. Sin embargo, cuando la búsqueda unificada se hace posible, surge un nuevo desafío: el control de la «información que se puede mostrar» y la «información que no se debe mostrar».
Sería un problema que documentos confidenciales del departamento de recursos humanos aparecieran en los resultados de búsqueda de todos los empleados. En este artículo, utilizaremos la búsqueda basada en roles de Fess para diseñar y construir el control de resultados de búsqueda según la pertenencia y los permisos de los usuarios.
Audiencia objetivo
Personas que necesitan control de acceso en los resultados de búsqueda
Personas que desean construir una plataforma de búsqueda considerando la seguridad de la información corporativa
Personas con conocimientos básicos de Active Directory o LDAP
Escenario
Una empresa tiene 3 departamentos.
Ventas: Gestiona información de clientes, presupuestos y propuestas
Desarrollo: Gestiona documentos de diseño, especificaciones de código fuente y actas de reuniones
Recursos humanos: Gestiona evaluaciones de personal, información salarial y reglamentos laborales
También existen documentos comunes accesibles para todos los departamentos (normativas internas, guías de beneficios, etc.).
La experiencia de búsqueda que se desea lograr es la siguiente:
Los empleados de ventas solo pueden buscar documentos de ventas y documentos comunes
Los empleados de desarrollo solo pueden buscar documentos de desarrollo y documentos comunes
Los empleados de recursos humanos solo pueden buscar documentos de recursos humanos y documentos comunes
La dirección puede buscar todos los documentos
Mecanismo de búsqueda basada en roles
La búsqueda basada en roles de Fess funciona de la siguiente manera:
Durante el rastreo: Se asigna información de rol a los documentos (qué roles pueden acceder)
Al iniciar sesión: Se obtiene la información de rol del usuario (autenticación interna de Fess o integración con autenticación externa)
Durante la búsqueda: Solo se muestran en los resultados los documentos que coinciden con los roles del usuario
Este mecanismo permite que el control de acceso se realice a nivel del motor de búsqueda.
Diseño de roles
Diseño de usuarios y grupos
Primero, organizamos la relación entre usuarios, grupos y roles en Fess.
Configuración de grupos y roles en Fess
Creación de roles
En la pantalla de administración, seleccione [Usuarios] > [Roles]
Cree los siguientes roles
sales_roleengineering_rolehr_rolemanagement_role
Creación de grupos
Seleccione [Usuarios] > [Grupos]
Cree los siguientes grupos
salesengineeringhrmanagement
Creación de usuarios y asignación de roles
Seleccione [Usuarios] > [Usuarios]
Asigne grupos y roles a cada usuario
Asignar permisos en la configuración de rastreo
Para asignar información de control de acceso a los documentos, se especifican los permisos en la configuración de rastreo. Los permisos se introducen en formato {role}nombre_del_rol, {group}nombre_del_grupo, {user}nombre_del_usuario, separados por saltos de línea.
Configuración de rastreo por departamento
Servidor de archivos de ventas
[Rastreador] > [Sistema de archivos] > [Crear nuevo]
Configure lo siguiente
Ruta:
smb://fileserver/sales/Permisos: Introduzca
{role}sales_roley{role}management_roleseparados por saltos de línea
Con esta configuración, los documentos rastreados desde el servidor de archivos de ventas solo serán visibles en los resultados de búsqueda para los usuarios que posean sales_role o management_role.
Servidor de archivos de desarrollo
[Rastreador] > [Sistema de archivos] > [Crear nuevo]
Configure lo siguiente
Ruta:
smb://fileserver/engineering/Permisos: Introduzca
{role}engineering_roley{role}management_roleseparados por saltos de línea
Servidor de archivos de recursos humanos
[Rastreador] > [Sistema de archivos] > [Crear nuevo]
Configure lo siguiente
Ruta:
smb://fileserver/hr/Permisos: Introduzca
{role}hr_roley{role}management_roleseparados por saltos de línea
Documentos comunes
[Rastreador] > [Web] o [Sistema de archivos] > [Crear nuevo]
Permisos: Deje el valor predeterminado
{role}guest
De forma predeterminada, se introduce automáticamente {role}guest. Dado que todos los usuarios, incluidos los usuarios invitados, poseen el rol guest, todos los usuarios pueden ver los resultados de búsqueda.
Integración con autenticación externa
En entornos empresariales reales, en la mayoría de los casos se desea integrar con un servicio de directorio existente en lugar de utilizar la gestión de usuarios propia de Fess.
Integración con Active Directory / LDAP
Fess es compatible con la integración LDAP y permite realizar la autenticación y la asignación de roles utilizando la información de usuarios de Active Directory.
Para habilitar la integración LDAP, se configura la información de conexión LDAP en el archivo de configuración de Fess.
Los principales elementos de configuración son los siguientes:
URL del servidor LDAP
Bind DN (cuenta de conexión)
Base DN de búsqueda de usuarios
Base DN de búsqueda de grupos
Mapeo de atributos de usuario
Cuando la integración LDAP está habilitada, los usuarios pueden iniciar sesión en Fess con sus cuentas de Active Directory. La información de los grupos a los que pertenecen se refleja automáticamente como roles, por lo que no es necesario configurar manualmente los roles para cada usuario en Fess.
Integración SSO
Como configuración más avanzada, también es posible la integración con inicio de sesión único (SSO). Fess es compatible con los siguientes protocolos SSO:
OpenID Connect (OIDC): Entra ID (Azure AD), Keycloak, etc.
SAML: Integración con diversos IdP
SPNEGO/Kerberos: Autenticación integrada de Windows
Con la integración SSO, los usuarios pueden acceder automáticamente a Fess con sus credenciales habituales, y la información de roles también se refleja automáticamente. Los detalles de la integración SSO se tratarán en profundidad en la Parte 15: «Plataforma de búsqueda segura».
Verificación del funcionamiento
Una vez completada la configuración de la búsqueda basada en roles, verifiquemos el funcionamiento.
Procedimiento de verificación
Inicie sesión con un usuario de ventas y busque «presupuesto» → Verifique que solo se muestren documentos de ventas y documentos comunes
Inicie sesión con un usuario de desarrollo y busque con la misma palabra clave → Verifique que no se muestren documentos de ventas
Inicie sesión con un usuario de la dirección y busque con la misma palabra clave → Verifique que se muestren documentos de todos los departamentos
Puntos de verificación
Que los documentos sin permisos no aparezcan en absoluto en los resultados de búsqueda
Que los documentos comunes se muestren para todos los usuarios
El comportamiento de búsqueda sin haber iniciado sesión (alcance de la vista de invitado)
Consideraciones de diseño
Granularidad de los roles
La granularidad de los roles se determina según la estructura organizativa y los requisitos de seguridad.
Granularidad gruesa: Configurar roles por departamento (escenario de este artículo)
Ventaja: Configuración simple, fácil de administrar
Desventaja: No permite un control de acceso detallado dentro del departamento
Granularidad fina: Configurar roles por proyecto o equipo
Ventaja: Permite un control de acceso detallado
Desventaja: El número de roles aumenta y la administración se vuelve compleja
Se recomienda comenzar con una granularidad gruesa y refinar según sea necesario.
Integración con ACL del servidor de archivos
Al rastrear servidores de archivos, también es posible utilizar la información de ACL (listas de control de acceso) de los archivos para el control de permisos. En este caso, la configuración de permisos del sistema de archivos se refleja directamente en el control de visualización de los resultados de búsqueda.
Si desea aprovechar las ACL del servidor de archivos, consulte los elementos de configuración relacionados con permisos en la configuración de rastreo.
Resumen
En este artículo, diseñamos y construimos el control de resultados de búsqueda por departamento utilizando la búsqueda basada en roles de Fess.
Diseño y registro de roles, grupos y usuarios
Asignación de roles en la configuración de rastreo
Reflejo automático de roles mediante integración con Active Directory / LDAP
Opciones de integración SSO (OIDC, SAML, SPNEGO)
La búsqueda basada en roles permite ofrecer la comodidad de la búsqueda unificada mientras se garantiza la seguridad de la información. Aquí concluye la sección de fundamentos. A partir de la próxima entrega, abordaremos la sección de soluciones prácticas, comenzando con la construcción de un hub de conocimiento para equipos de desarrollo.