Apache et LDAP

Publié le par Marie-Ange MALROUX

J'ai ragé pendant trois jours entiers. Encore noob sur les bords, certains messages d'erreur me terrifient. Je tentais une connexion à l'annuaire LDAP de l'entreprise avec Apache. Après la configuration, qui ne me semblait pas trop mauvaise, je décidai donc de redémarrer le serveur qui m'annonça aussitôt la couleur :

  * Starting web server (apache2)...                                             
apache2: Syntax error on line 116 of /etc/apache2/apache2.conf: Syntax error on line 2 of /etc/apache2/mods-enabled/auth_ldap.load: Cannot load /usr/lib/apache2/modules/mod_auth_ldap.so into server: /usr/lib/apache2/modules/mod_auth_ldap.so: cannot open shared object file: No such file or directory

Pas de panique, je copie un mod_auth_ldap.so qui existe sur l'autre vieux serveur. Pas tellement plus de succès :

apache2: Syntax error on line 116 of /etc/apache2/apache2.conf:
Syntax error on line 2 of /etc/apache2/mods-enabled/auth_ldap.load:
Cannot load /usr/lib/apache2/modules/mod_auth_ldap.so into server:
/usr/lib/apache2/modules/mod_auth_ldap.so: undefined symbol: util_ldap_connection_close
   ...fail!

Après avoir corrigé ma configuration en m'aidant du serveur fonctionnel existant, je relançai le serveur, maintes et maintes fois. Toujours pareil. J'ai posté dans plusieurs forums, pas de réponse convaincante, voire pas de réponse du tout.

Quelques jours plus tard (seulement, eh oui, si c'est pas rude ça !), on m'explique que l'ancien serveur n'a pas la même version et que donc y'a des choses qui ont changé et il se pourrait que mon apache 2.2.4 n'ait pas les mêmes besoins de configuration. Ahah enfin une piste sérieuse ! Je regarde donc sur un serveur plus récent et je comprends que le fameux module sur lequel je me focalisais (mod_auth_ldap.so) n'était pas le fautif. Je pense qu'il le fallait dans une version précédente d'apache. Mais avec la 2.2.4, mod_authnz_ldap.so a l'air de suffire.

Ce qui est nécessaire par contre, c'est que les info de configuration soient complètes dans le fichier /etc/apache2/apache.conf (perso, c'est dans un fichier à part). Par exemple :

AuthType Basic
AuthName 'Application Y'
AuthLDAPUrl ldap://nomserveur:389/...
AuthBasicProvider ldap
AuthzLDAPAuthoritative off
Require valid-user

Dans mon cas, il manquait les lignes AuthBasicProvider ldap et AuthzLDAPAuthoritative off.

On redémarre le serveur apache et c'est parti !

Publié dans Linux

Pour être informé des derniers articles, inscrivez vous :

Commenter cet article