4 septembre 2008

Joomla 1.5.6 et LDAP (Active Directory)

Changement de sujet, après les jeux, le travail !

Pour mon boulot, j'étais amené à paramétrer le CMS Joomla! pour permettre l'authenfication LDAP, ici Active Directory de Microsoft.

Premier constat : quand on est pas spécialiste, c'est galère.

J'avais pourtant déjà fait ce paramétrage sur une autre application (GLPI) et ça fonctionnait très bien. Avec Joomla! c'est plus flou : pas moyen de tester les paramètres avant de les valider et de tester une connexion et pas de messages d'erreurs ! On ne sait pas si la connexion au LDAP se fait correctement.

Bref, après quelques heures de recherches voilà une solution (ma solution).
Tout d'abord des infos sur le protocol LDAP.

Version 1.5.6 de Joomla! (authentification LDAP en natif)

1. Installer le composant très pratique jauthtools (Erratum : le composant est JDiagnostic et non jauthtools)
2. Menu "Composants" > "JDiagnostics" > "Tools" > "ldapconfigurator"
3. Suivez le guide !
4. Testez ensuite la configuration avec "JDiagnostics" > "Diagnostics" > "ldapsettings" (cet outil vous expliquera ce qui bloque si ça ne fonctionne pas)

Pour Active Directory (Microsoft ne fait jamais comme les autres) voici les 2 options clés qui ne s'inventent pas :
  • Requête de recherche : userPrincipalName=[search]@domain.org
  • Nom distingué des Utilisateurs : [username]@domain.org
A savoir : le mail du compte Admin de Joomla! ne doit pas être celui d'un utilisateur LDAP sinon ce dernier ne pourra pas se connecter !

N'hésitez pas à laisser un commentaire si vous avez des questions plus précises sur les chaines de connexion LDAP (du type : "DN=Users,DC=domain,DC=org").

17 commentaires:

François Lehouque a dit…

Salut, j'ai besoin d'une connexion LDAP pour un travail avec joomla et je dois dire que cela n'est pas très pratique étant donné qu'il n'y a aucune information concernant la connexion. J'arrive à me connecter via un fichier php externe mais pas à travers l'interface du plugin LDAP de joomla (même en essayant de bidouiller à la main le fichier ldap.php). J'ai donc vu ton tuto et ça a l'air de permettre au moins une connexion, le seul problème est que je ne sais pas comment installer le jAuthTools. J'ai une archive TGZ et TAR mais il refuse catégoriquement de l'installer par l'interface. Ce format de compression est normalement utilisé sur Linux (non?) mais puis-je l'utiliser sur windows.

Merci.

BlackDoguy a dit…

Le format de compression n'est pas le problème, vous pouvez sans problème décompresser le TGZ avec un outil gratuit comme 7zip par exemple et le TAR également. Cependant Joomla connait également très bien ces formats de compression et doit pouvoir importer sans problème le TGZ pour installer le plugin.

BlackDoguy a dit…

Cependant j'ai fait une erreur dans mon billet, ce n'est pas jauthtools qu'il faut installer mais JDiagnostic (lien dans le billet) !

Autant pour moi :-)

Anonyme a dit…

j'ai installer cet utilitaire mais quand je fait ldapconfigurator il me donne ce message:LDAP: authentication (crit) PHP LDAP Library not detected
aidez moi svp

BlackDoguy a dit…

Vous devez activer le module PHP mod_ldap sur votre serveur.

Joli Bob a dit…

Merci pour ce tuto, grâce à JDiagnostic, j'ai pu comprendre d'où venait mon problème de connexion.
Il me manquait juste les librairies ldap...

Mon serveur étant sous Ubunto, j'ai fais : sudo aptitude install php5-ldap
(remplacer le 5 en fonction de votre version de php)

Après je sais pas si cette manip' fonctionne pour toutes les distrib'.

Voila ça pourra peut-être en débloquer certain.

frederic a dit…

Merci pour le tuto, ma connection ldap est fonctionnelle.

J'ai juste un petit problème, on gère deux types de users avec des emails dont le domaine est différent, savez vous s'il est possible de renseigner plusieurs domaines.

Meri

Anonyme a dit…

Bonjour, la connexion avec mon active directory.
Est-il possible que la connexion soit automatique? afin que les utilisateurs n'est pas à retaper leur mot de passe une fois qu'ils ont ouvert leur session windows.

Merci d'avance

Anonyme a dit…

bonjour,
Merci pour le tuto mais comment activé le module mod_ldap quand il ne figure pas dans nos module ??? ce n'est pas un plugin ????

Anonyme a dit…

bonjour, je ne trouve pas comment activer mod_ldap pour cause je ne le trouve pas dans mes module AU SECOURS !!!!! j'ai besoin d'une authentification LDAP (en espérant qu'elle réponde à mes attentes)

BlackDoguy a dit…

Le module mod_ldap fait partie de PHP et non de Joomla. Assurez vous d'avoir la dernière version de PHP.

Pour la connexion automatique, sans avoir testé, ça doit être possible à partir d'IE qui peut reporter les identifications de Windows...

Anonyme a dit…

Merci . Par un souci d'installation d'apache j'ai du installé PHP4 est-ce que cela peut fonctionner quand même avec la version ancienne de php je travail avec php5 normalement mais là le système n'en voulait pas

BlackDoguy a dit…

Aucune idée !
A rechercher et essayer ;-)

Anonyme a dit…

bonjour le mod_ldap de php ce trouve dans php.ini ? et pour l'activer il suffit de le décommenté non???

Anonyme a dit…

Salut,

Je test la connexion avec JDiagnostics mais quand je clique sur le ldapconfigurator et que je sélectionne "Microsoft Active Directory with support for SSO", ça me renvoie un écran blanc avec aucun message d'erreur, juste un lien pour revenir à la homepage de JDiagnostics. Pourtant c'est bien du SSO dont j'ai besoin. Merci pour toute info

Anonyme a dit…

salut , svp je suis débutante et je sais pas comment activé le mod_ldap même dans la partie de PHP
(je travaille avec wamp et joomla 1.5.23)

svp y'a t-il un tutorial pour m'aider c trés urgent :(

BlackDoguy a dit…

A partir de WAMP, utilise le menu contextuel (bouton gauche sur l'icône de WAMP) puis PHP>Extensions PHP et recherche "php_ldap" dans la liste, un simple clic dessus et c'est tout !