Descripcion general
Fess soporta la integracion con servidores LDAP (Lightweight Directory Access Protocol), lo que permite la autenticacion y la gestion de usuarios en entornos empresariales.
La integracion LDAP permite:
Autenticacion de usuarios (inicio de sesion) con Active Directory u OpenLDAP
Control de acceso basado en grupos y roles
Gestion de usuarios, roles y grupos LDAP desde la pantalla de administracion (opcional)
Servidores LDAP compatibles
Fess soporta la integracion 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 busquedas LDAP (Bind DN)
Comprension de la estructura LDAP (Base DN, nombres de atributos, etc.)
Descripcion general de la configuracion
La configuracion LDAP de Fess se gestiona en dos ubicaciones segun el proposito.
- Configuracion de conexion y autenticacion (pantalla de administracion /
system.properties) Configuracion relacionada con la conexion al servidor LDAP y la autenticacion de inicio de sesion. Se puede configurar desde la seccion «LDAP» en la pagina «Sistema > General» de la pantalla de administracion, y se guarda en
app/WEB-INF/conf/system.properties.- Configuracion de la funcion de administracion LDAP y comportamiento (
fess_config.properties) Configuracion relacionada con la funcion para gestionar usuarios, roles y grupos LDAP desde la pantalla de administracion, y con el comportamiento como la resolucion 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 autenticacion de inicio de sesion, basta con la «Configuracion de conexion y autenticacion». La «Funcion de administracion LDAP» (ldap.admin.enabled) solo es necesaria cuando se crean, actualizan o eliminan usuarios, roles y grupos del lado LDAP desde la pantalla de administracion.
Configuracion de conexion y autenticacion
Estas configuraciones se pueden establecer desde la seccion LDAP en «Sistema > General» de la pantalla de administracion, y se guardan en app/WEB-INF/conf/system.properties. Tambien puede editar el archivo directamente.
Ejemplo de configuracion (edicion directa de system.properties):
Nota
El marcador de posicion %s es procesado por String.format() de Java. ldap.security.principal, ldap.account.filter, ldap.group.filter y los filtros de administracion usan el formato %s (no {0}). El nombre de usuario que se pasa a los filtros es escapado automaticamente por Fess como medida de proteccion contra inyeccion LDAP.
Configuracion de la funcion de administracion LDAP y comportamiento
Las siguientes propiedades se definen en app/WEB-INF/classes/fess_config.properties. Para cambiar los valores, edite este archivo.
Habilitacion de la funcion de administracion
Filtros y Base DN para la gestion de usuarios, roles y grupos
Se utilizan para manipular entradas LDAP desde la pantalla de administracion cuando ldap.admin.enabled=true.
Control de la resolucion de roles y el comportamiento
Controla el comportamiento de la resolucion de roles y grupos tras el inicio de sesion.
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 lineas que comienzan con ldap.attr. en fess_config.properties para ver la lista completa.
Configuracion de Active Directory
Ejemplo de configuracion para Microsoft Active Directory (system.properties o pantalla de administracion).
Para resolver grupos anidados (nested groups), puede utilizar LDAP_MATCHING_RULE_IN_CHAIN, especifico de Active Directory.
Configuracion de OpenLDAP
Ejemplo de configuracion para OpenLDAP.
Nota
OpenLDAP estandar no tiene el atributo memberOf, por lo que los grupos se resuelven mediante ldap.group.filter. Si tiene habilitado el overlay memberof, tambien puede utilizar ldap.memberof.attribute.
Configuracion de seguridad
LDAPS (SSL/TLS)
Usar conexion cifrada:
Para certificados autofirmados, importe el certificado en el truststore de Java:
Proteccion de contrasenas
ldap.admin.security.credentials se guarda en system.properties. Las credenciales configuradas desde la pantalla de administracion se almacenan cifradas internamente. Restrinja adecuadamente los permisos de acceso al archivo.
Failover
Para realizar failover a multiples servidores LDAP, especifique varias URLs separadas por espacios en ldap.provider.url.
Solucion de problemas
Error de conexion
Sintoma: Falla la conexion LDAP
Verificaciones:
Si el servidor LDAP esta en ejecucion
Si el puerto esta abierto en el firewall (389 o 636)
Si
ldap.provider.urles correcto (ldap://oldaps://)Si
ldap.admin.security.principaly la contrasena son correctos
Error de autenticacion
Sintoma: Falla la autenticacion 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
Sintoma: 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 busqueda
Si
ldap.role.search.*.enabledesta habilitado
No se puede gestionar usuarios desde la pantalla de administracion
Sintoma: No se pueden crear, editar ni eliminar usuarios LDAP desde la pantalla de administracion
Verificaciones:
Si
ldap.admin.enabledesta entrueSi los Base DN de administracion como
ldap.admin.user.base.dnson correctosSi la cuenta de servicio de
ldap.admin.security.principaltiene permisos de escritura
Configuracion de depuracion
Para obtener logs detallados, agregue un logger en app/WEB-INF/classes/log4j2.xml.
Informacion 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 - Autenticacion SPNEGO (Kerberos)
Usuario - Guia de gestion de usuarios