Descripción general
Fess soporta la integración con servidores LDAP (Lightweight Directory Access Protocol), lo que permite la autenticación y la gestión de usuarios en entornos empresariales.
La integración LDAP permite:
Autenticación de usuarios (inicio de sesión) con Active Directory u OpenLDAP
Control de acceso basado en grupos y roles
Gestión de usuarios, roles y grupos LDAP desde la pantalla de administración (opcional)
Servidores LDAP compatibles
Fess soporta la integración con los siguientes servidores LDAP:
Microsoft Active Directory
OpenLDAP
389 Directory Server
Apache Directory Server
Otros servidores compatibles con LDAP v3
Requisitos previos
Acceso de red al servidor LDAP
Cuenta de servicio para búsquedas LDAP (Bind DN)
Comprensión de la estructura LDAP (Base DN, nombres de atributos, etc.)
Descripción general de la configuración
La configuración LDAP de Fess se gestiona en dos ubicaciones según el propósito.
- Configuración de conexión y autenticación (pantalla de administración /
system.properties) Configuración relacionada con la conexión al servidor LDAP y la autenticación de inicio de sesión. Se puede configurar desde la sección «LDAP» en la página «Sistema > General» de la pantalla de administración, y se guarda en
app/WEB-INF/conf/system.properties.- Configuración de la función de administración LDAP y comportamiento (
fess_config.properties) Configuración relacionada con la función para gestionar usuarios, roles y grupos LDAP desde la pantalla de administración, y con el comportamiento como la resolución de roles. Estas opciones se definen en
app/WEB-INF/classes/fess_config.properties; edite este archivo para cambiar los valores.
Nota
Si solo se utiliza la autenticación de inicio de sesión, basta con la «Configuración de conexión y autenticación». La «Función de administración LDAP» (ldap.admin.enabled) solo es necesaria cuando se crean, actualizan o eliminan usuarios, roles y grupos del lado LDAP desde la pantalla de administración.
Configuración de conexión y autenticación
Estas configuraciones se pueden establecer desde la sección LDAP en «Sistema > General» de la pantalla de administración, y se guardan en app/WEB-INF/conf/system.properties. También puede editar el archivo directamente.
Ejemplo de configuración (edición directa de system.properties):
Nota
El marcador de posición %s es procesado por String.format() de Java. ldap.security.principal, ldap.account.filter, ldap.group.filter y los filtros de administración usan el formato %s (no {0}). El nombre de usuario que se pasa a los filtros es escapado automáticamente por Fess como medida de protección contra inyección LDAP.
Configuración de la función de administración LDAP y comportamiento
Las siguientes propiedades se definen en app/WEB-INF/classes/fess_config.properties. Para cambiar los valores, edite este archivo.
Habilitación de la función de administración
Filtros y Base DN para la gestión de usuarios, roles y grupos
Se utilizan para manipular entradas LDAP desde la pantalla de administración cuando ldap.admin.enabled=true.
Control de la resolución de roles y el comportamiento
Controla el comportamiento de la resolución de roles y grupos tras el inicio de sesión.
Mapeo de atributos
La correspondencia entre los atributos LDAP y los atributos de usuario de Fess se define mediante las propiedades ldap.attr.*. Normalmente no es necesario modificarlas, pero pueden ajustarse si el esquema es diferente. Algunos ejemplos representativos:
Nota
Existen casos en que el nombre de la propiedad y el nombre del atributo LDAP no coinciden, como ldap.attr.state que se mapea a st, o ldap.attr.city que se mapea a l. Consulte las líneas que comienzan con ldap.attr. en fess_config.properties para ver la lista completa.
Configuración de Active Directory
Ejemplo de configuración para Microsoft Active Directory (system.properties o pantalla de administración).
Para resolver grupos anidados (nested groups), puede utilizar LDAP_MATCHING_RULE_IN_CHAIN, específico de Active Directory.
Configuración de OpenLDAP
Ejemplo de configuración para OpenLDAP.
Nota
OpenLDAP estándar no tiene el atributo memberOf, por lo que los grupos se resuelven mediante ldap.group.filter. Si tiene habilitado el overlay memberof, también puede utilizar ldap.memberof.attribute.
Configuración de seguridad
LDAPS (SSL/TLS)
Usar conexión cifrada:
Para certificados autofirmados, importe el certificado en el truststore de Java:
Protección de contraseñas
ldap.admin.security.credentials se guarda en system.properties. Las credenciales configuradas desde la pantalla de administración se almacenan cifradas internamente. Restrinja adecuadamente los permisos de acceso al archivo.
Failover
Para realizar failover a múltiples servidores LDAP, especifique varias URLs separadas por espacios en ldap.provider.url.
Solución de problemas
Error de conexión
Síntoma: Falla la conexión LDAP
Verificaciones:
Si el servidor LDAP está en ejecución
Si el puerto está abierto en el firewall (389 o 636)
Si
ldap.provider.urles correcto (ldap://oldaps://)Si
ldap.admin.security.principaly la contraseña son correctos
Error de autenticación
Síntoma: Falla la autenticación de usuario
Verificaciones:
Si la plantilla de
ldap.security.principales correcta (si contiene%s)Si el usuario existe dentro del Base DN especificado
Si
ldap.account.filteres correcto
No se obtienen grupos ni roles
Síntoma: No se pueden obtener los grupos o roles del usuario
Verificaciones:
Si
ldap.group.filteres correctoSi
ldap.memberof.attributees correcto (en caso de Active Directory)Si los grupos existen dentro del Base DN de búsqueda
Si
ldap.role.search.*.enabledestá habilitado
No se puede gestionar usuarios desde la pantalla de administración
Síntoma: No se pueden crear, editar ni eliminar usuarios LDAP desde la pantalla de administración
Verificaciones:
Si
ldap.admin.enabledestá entrueSi los Base DN de administración como
ldap.admin.user.base.dnson correctosSi la cuenta de servicio de
ldap.admin.security.principaltiene permisos de escritura
Configuración de depuración
Para obtener logs detallados, agregue un logger en app/WEB-INF/classes/log4j2.xml.
Información de referencia
Configuración de Búsqueda Basada en Roles - Control de acceso basado en roles
Configuración de SSO con Auth Integrada de Windows - Autenticación SPNEGO (Kerberos)
Usuario - Guía de gestión de usuarios