Servidor de Búsqueda Basado en Elasticsearch con Fess ~ Edición de Búsqueda Basada en Roles
Introducción
Este artículo presenta la función de búsqueda basada en roles, que es una de las características distintivas de Fess.
Este artículo utiliza Fess 15.3.0 para la explicación. Para el método de construcción de Fess, consulte la edición de introducción.
Lectores Objetivo
Personas que desean construir un sistema de búsqueda en sistemas con autenticación como sitios de portal
Personas que desean construir un entorno de búsqueda según los permisos de visualización
Entorno Necesario
El contenido de este artículo ha sido verificado en el siguiente entorno.
Ubuntu 22.04
OpenJDK 21
Búsqueda Basada en Roles
La búsqueda basada en roles de Fess es una función que diferencia los resultados de búsqueda según la información de autenticación del usuario autenticado. Por ejemplo, el empleado de ventas A que tiene el rol de departamento de ventas verá información del rol de departamento de ventas en los resultados de búsqueda, pero el empleado técnico B que no tiene el rol de departamento de ventas no la verá incluso si busca. Al utilizar esta función, es posible realizar búsquedas separadas por departamento o cargo para usuarios que han iniciado sesión en portales o entornos de inicio de sesión único.
Por defecto, la búsqueda basada en roles de Fess puede diferenciar los resultados de búsqueda según la información de usuario gestionada por Fess. Además de esto, también se puede utilizar en integración con información de autenticación de LDAP o Active Directory. Además de estos sistemas de autenticación, la información de rol también se puede obtener de las siguientes ubicaciones.
Parámetros de solicitud
Encabezados de solicitud
Cookies
Información de autenticación J2EE
Como método de uso, en servidores de portal o sistemas de inicio de sesión único tipo agente, se puede pasar información de autenticación a Fess guardando la información de autenticación en cookies para el dominio y ruta donde opera Fess durante la autenticación. Además, en sistemas de inicio de sesión único tipo proxy inverso, se puede obtener información de rol en Fess agregando información de autenticación a parámetros de solicitud o encabezados de solicitud al acceder a Fess. De esta manera, al integrarse con varios sistemas de autenticación, es posible diferenciar los resultados de búsqueda para cada usuario.
Configuración para Usar la Búsqueda Basada en Roles
Se asume que Fess 15.3.0 está instalado. Si aún no lo ha instalado, instálelo consultando la edición de introducción.
Esta vez se explicará la búsqueda por roles utilizando la función de gestión de usuarios de Fess.
Descripción General de la Configuración
Esta vez se crearán dos roles: departamento de ventas (sales) y departamento técnico (eng). El usuario taro pertenecerá al rol sales y podrá obtener resultados de búsqueda de https://www.n2sm.net/, y el usuario hanako pertenecerá al rol eng y podrá obtener resultados de búsqueda de https://fess.codelibs.org/.
Creación de Roles
Primero acceda a la pantalla de administración. http://localhost:8080/admin/
Desde Usuario > Rol > Crear nuevo, ingrese «sales» en el nombre y cree el rol sales. Cree el rol eng de manera similar.
Lista de roles 
Creación de Rol para Rastreador
Presione Usuario > Rol > sales > Crear nuevo rol para rastreador. Ingrese «Departamento de Ventas» en el nombre, mantenga el valor como «sales» y presione [Crear]. Entonces, se agregará la configuración de Departamento de Ventas a la lista de Rastreador > Rol.
De manera similar, registre el nombre del rol para rastreador del rol eng como «Departamento Técnico».
Lista de roles para rastreador 
Creación de Usuarios
Cree los usuarios taro y hanako desde Usuario > Usuario > Crear nuevo con la siguiente configuración.
| Taro | Hanako | |
| Nombre de usuario | taro | hanako |
| Contraseña | taro | hanako |
| Rol | sales | eng |
Verificación de Usuarios Registrados
Con la configuración actual, hay tres usuarios que pueden iniciar sesión en Fess: admin, taro y hanako. Verifique que pueda iniciar sesión con cada uno. Acceda a http://localhost:8080/admin/ e inicie sesión con el usuario admin para mostrar la pantalla de administración normalmente. A continuación, cierre sesión del usuario admin. Haga clic en el botón en la parte superior derecha de la pantalla de administración.
Botón de cierre de sesión 
Ingrese el nombre de usuario y contraseña e inicie sesión con taro o hanako. Si el inicio de sesión es exitoso, se mostrará la pantalla de búsqueda de http://localhost:8080/.
Adición de Configuración de Rastreo
Registre los objetivos de rastreo. Esta vez, los usuarios con rol de departamento de ventas solo podrán buscar en https://www.n2sm.net/, y los usuarios con rol de departamento técnico solo podrán buscar en https://fess.codelibs.org/. Para registrar estas configuraciones de rastreo, haga clic en Rastreador > Web > Crear nuevo para crear la configuración de rastreo web. Esta vez use la siguiente configuración. Los demás valores son predeterminados.
| N2SM | Fess | |
| Nombre | N2SM | Fess |
| URL | https://www.n2sm.net/ | https://fess.codelibs.org/ |
| URL a rastrear | https://www.n2sm.net/.* | https://fess.codelibs.org/.* |
| Número máximo de accesos | 10 | 10 |
| Intervalo | 3000 milisegundos | 3000 milisegundos |
| Rol | Departamento de Ventas | Departamento Técnico |
Inicio del Rastreo
Después de registrar la configuración de rastreo, presione [Iniciar ahora] desde Sistema > Programador > Default Crawler. Espere un momento hasta que se complete el rastreo.
Búsqueda
Después de completar el rastreo, acceda a http://localhost:8080/, busque una palabra como «fess» sin iniciar sesión y verifique que no se muestren resultados de búsqueda. A continuación, inicie sesión con el usuario taro y busque de manera similar. Dado que el usuario taro tiene el rol sales, solo se mostrarán los resultados de búsqueda de https://www.n2sm.net/.
Pantalla de búsqueda con rol sales 
Cierre sesión del usuario taro e inicie sesión con el usuario hanako. Al buscar de manera similar que antes, dado que el usuario hanako tiene el rol eng, solo se mostrarán los resultados de búsqueda de https://fess.codelibs.org/.
Pantalla de búsqueda con rol eng 
Resumen
Se ha presentado la búsqueda basada en roles, que es una de las funciones de seguridad de Fess. Se explicó centrándose en la búsqueda basada en roles utilizando información de autenticación J2EE, pero dado que la transferencia de información de autenticación a Fess es una implementación genérica, creo que puede corresponder a varios sistemas de autenticación. Dado que es posible diferenciar los resultados de búsqueda según los atributos del usuario, también es posible realizar sistemas que requieren búsqueda según los permisos de visualización, como sitios de portal internos o carpetas compartidas.