Aperçu
Fess prend en charge l’intégration avec les serveurs LDAP (Lightweight Directory Access Protocol), permettant l’authentification et la gestion des utilisateurs dans les environnements d’entreprise.
L’intégration LDAP permet :
L’authentification des utilisateurs via Active Directory ou OpenLDAP (connexion)
Le contrôle d’accès basé sur les groupes et les rôles
La gestion des utilisateurs/rôles/groupes LDAP depuis la console d’administration (optionnel)
Serveurs LDAP pris en charge
Fess prend en charge l’intégration avec les serveurs LDAP suivants :
Microsoft Active Directory
OpenLDAP
389 Directory Server
Apache Directory Server
Autres serveurs compatibles LDAP v3
Prérequis
Accès réseau au serveur LDAP
Compte de service pour les recherches LDAP (Bind DN)
Compréhension de la structure LDAP (Base DN, noms d’attributs, etc.)
Vue d’ensemble de la configuration
La configuration LDAP de Fess est gérée à deux endroits distincts selon l’usage.
- Paramètres de connexion et d’authentification (console d’administration /
system.properties) Ces paramètres concernent la connexion au serveur LDAP et l’authentification lors de la connexion. Ils peuvent être configurés depuis la section « LDAP » de la page « Système > Général » de la console d’administration et sont enregistrés dans
app/WEB-INF/conf/system.properties.- Paramètres de gestion LDAP et de comportement (
fess_config.properties) Ces paramètres concernent les fonctionnalités de gestion des utilisateurs/rôles/groupes LDAP depuis la console d’administration, ainsi que les comportements tels que la résolution des rôles. Ils sont définis dans
app/WEB-INF/classes/fess_config.properties; pour les modifier, éditez ce fichier directement.
Note
Si vous utilisez uniquement l’authentification lors de la connexion, les « Paramètres de connexion et d’authentification » suffisent. La « Gestion LDAP » (ldap.admin.enabled) n’est nécessaire que si vous souhaitez créer, mettre à jour ou supprimer des utilisateurs/rôles/groupes LDAP depuis la console d’administration.
Paramètres de connexion et d’authentification
Ces paramètres peuvent être configurés depuis la section LDAP de la console d’administration « Système > Général » et sont enregistrés dans app/WEB-INF/conf/system.properties. Vous pouvez également modifier ce fichier directement.
Exemple de configuration (édition directe de system.properties) :
Note
Le paramètre fictif %s est traité par String.format() de Java. ldap.security.principal, ldap.account.filter, ldap.group.filter et les filtres d’administration utilisent tous le format %s (et non le format {0}). Le nom d’utilisateur transmis aux filtres est automatiquement échappé en interne par Fess pour se prémunir contre les injections LDAP.
Paramètres de gestion LDAP et de comportement
Les propriétés suivantes sont définies dans app/WEB-INF/classes/fess_config.properties. Pour les modifier, éditez ce fichier.
Activation des fonctionnalités d’administration
Filtres et Base DN pour la gestion des utilisateurs/rôles/groupes
Utilisés pour manipuler les entrées LDAP depuis la console d’administration lorsque ldap.admin.enabled=true.
Contrôle de la résolution des rôles et du comportement
Contrôle le comportement de la résolution des rôles/groupes après la connexion.
Correspondance des attributs
La correspondance entre les attributs LDAP et les attributs utilisateur de Fess est définie par les propriétés ldap.attr.*. En général, aucune modification n’est nécessaire, mais vous pouvez les ajuster si le schéma diffère. Exemples représentatifs :
Note
Certaines propriétés ne correspondent pas au nom de l’attribut LDAP, par exemple ldap.attr.state est mappé sur st et ldap.attr.city sur l. Pour la liste complète, consultez les lignes commençant par ldap.attr. dans fess_config.properties.
Configuration Active Directory
Exemple de configuration pour Microsoft Active Directory (system.properties ou console d’administration).
Pour résoudre les groupes imbriqués, vous pouvez utiliser la règle de correspondance LDAP_MATCHING_RULE_IN_CHAIN spécifique à Active Directory.
Configuration OpenLDAP
Exemple de configuration pour OpenLDAP.
Note
OpenLDAP standard ne possède pas l’attribut memberOf ; les groupes sont donc résolus via ldap.group.filter. Si l’overlay memberof est activé, ldap.memberof.attribute peut également être utilisé.
Paramètres de sécurité
LDAPS (SSL/TLS)
Utiliser une connexion chiffrée :
Pour les certificats auto-signés, importez le certificat dans le truststore Java.
Protection du mot de passe
ldap.admin.security.credentials est enregistré dans system.properties. Les informations d’identification configurées depuis la console d’administration sont stockées chiffrées en interne. Veillez à restreindre les droits d’accès au fichier de manière appropriée.
Basculement (Failover)
Pour basculer vers plusieurs serveurs LDAP, spécifiez plusieurs URL séparées par des espaces dans ldap.provider.url.
Dépannage
Erreur de connexion
Symptôme : Échec de la connexion au serveur LDAP
Points à vérifier :
Le serveur LDAP est-il démarré ?
Le port est-il ouvert dans le pare-feu (389 ou 636) ?
ldap.provider.urlest-il correct (ldap://ouldaps://) ?ldap.admin.security.principalet le mot de passe sont-ils corrects ?
Erreur d’authentification
Symptôme : Échec de l’authentification utilisateur
Points à vérifier :
Le modèle de
ldap.security.principalest-il correct (contient-il%s) ?L’utilisateur existe-t-il dans le Base DN spécifié ?
ldap.account.filterest-il correct ?
Impossibilité de récupérer les groupes/rôles
Symptôme : Les groupes et rôles de l’utilisateur ne peuvent pas être récupérés
Points à vérifier :
ldap.group.filterest-il correct ?ldap.memberof.attributeest-il correct (pour Active Directory) ?Les groupes existent-ils dans le Base DN de recherche ?
Les propriétés
ldap.role.search.*.enabledsont-elles activées ?
Impossibilité de gérer les utilisateurs depuis la console d’administration
Symptôme : Impossible de créer, modifier ou supprimer des utilisateurs LDAP depuis la console d’administration
Points à vérifier :
ldap.admin.enabledest-il défini àtrue?Les Base DN d’administration tels que
ldap.admin.user.base.dnsont-ils corrects ?Le compte de service
ldap.admin.security.principaldispose-t-il des droits en écriture ?
Configuration du débogage
Pour afficher des journaux détaillés, ajoutez un logger dans app/WEB-INF/classes/log4j2.xml.
Informations de référence
Configuration de la recherche basée sur les rôles - Contrôle d’accès basé sur les rôles
Configuration SSO avec Auth Intégrée Windows - Authentification SPNEGO (Kerberos)
Utilisateur - Guide de gestion des utilisateurs