Installation phpLDAPAdmin
Cet article présente l'installation de phpLDAPAdmin sur une machine Ubuntu. L'installation est donc réalisée avec la commande apt-get
comme pour tous les paquets Ubuntu.
L'installation pourrait être réalisée par un simple téléchargement de l'application, mais un des pré requis, mentionné à l'adresse http://phpldapadmin.sourceforge.net/wiki/index.php/PreRequisites, n'était pas validé.
ldapsearch -xh HOST -b -s base subschemaSubentry ldap_sasl_bind(SIMPLE): Can't contact LDAP server (-1)
En remplaçant HOST
par le nom de la machine.
ldapsearch -xh localhost -b -s base subschemaSubentry # extended LDIF # # LDAPv3 # base <-s> with scope subtree # filter: (objectclass=*) # requesting: base subschemaSubentry # # search result search: 2 result: 34 Invalid DN syntax text: invalid DN # numResponses: 1
Sommaire
Votre avis
Current user rating: 77/100 (17 votes)
|
|
Installation initiale
Le paquet phpldapadmin
est donc installé avec la commande apt-get
.
sudo apt-get install phpldapadmin
sudo apt-get install phpldapadmin Lecture des listes de paquets... Fait Construction de l'arbre des dépendances Lecture des informations d'état... Fait Les paquets supplémentaires suivants seront installés : php5-ldap Les NOUVEAUX paquets suivants seront installés : php5-ldap phpldapadmin 0 mis à jour, 2 nouvellement installés, 0 à enlever et 0 non mis à jour. Il est nécessaire de prendre 1 283 ko dans les archives. Après cette opération, 6 353 ko d'espace disque supplémentaires seront utilisés. Souhaitez-vous continuer [O/n] ? O Réception de : 1 http://fr.archive.ubuntu.com/ubuntu/ natty-updates/main php5-ldap amd64 5.3.5-1ubuntu7.2 [19,6 kB] Réception de : 2 http://fr.archive.ubuntu.com/ubuntu/ natty/universe phpldapadmin all 1.2.0.5-2ubuntu1 [1 263 kB] 1 283 ko réceptionnés en 1s (830 ko/s) Préconfiguration des paquets... Sélection du paquet php5-ldap précédemment désélectionné. (Lecture de la base de données... 165965 fichiers et répertoires déjà installés.) Dépaquetage de php5-ldap (à partir de .../php5-ldap_5.3.5-1ubuntu7.2_amd64.deb) ... Sélection du paquet phpldapadmin précédemment désélectionné. Dépaquetage de phpldapadmin (à partir de .../phpldapadmin_1.2.0.5-2ubuntu1_all.deb) ... Traitement des actions différées (« triggers ») pour « libapache2-mod-php5 »... * Reloading web server config apache2 [ OK ] Paramétrage de php5-ldap (5.3.5-1ubuntu7.2) ... Paramétrage de phpldapadmin (1.2.0.5-2ubuntu1) ... Creating config file /etc/phpldapadmin/config.php with new version * Restarting web server apache2 ... waiting [ OK ]
Après redémarrage, l'application est disponible à l'URL http://SERVER/phpldapadmin
.
L'application est déployée dans le répertoire /usr/share/phpldapadmin
, et rendue visible sur le serveur Apache par la présence du lien phpldapadmin
, dans le répertoire /etc/apache2/conf.d
, pointant sur le fichier /etc/phpldapadmin/apache.conf
Des fichiers vont être modifiés pour indiquer le mode de connexion au serveur LDAP, impliquant le login et le mot de passe. Pour des raisons des sécurités, les droits d'accès sont modifiés, ainsi que le propriétaire.
sudo chown -R www-data:www-data /etc/phpldapadmin sudo chmod 640 config.php sudo chown -R www-data:www-data /usr/share/phpldapadmin
Configuration
La configuration de phpLDAPAdmin nécessite la modification du fichier config.php
, situé dans le répertoire /etc/phpldapadmin
dans le cadre de cet article.
Nom affiché
La première modification apportée concerne le nom du server LDAP qui sera affiché sur l'interface. Le nom affiché par défaut est My LDAP Server
. La modification consiste en la modification de la section suivante :
/* A convenient name that will appear in the tree viewer and throughout
phpLDAPadmin to identify this LDAP server to users. */
$servers->setValue('server','name','My LDAP Server');
En
/* A convenient name that will appear in the tree viewer and throughout
phpLDAPadmin to identify this LDAP server to users. */
/* $servers->setValue('server','name','My LDAP Server'); */
$servers->setValue('server','name','LDAP pour le server');
Base de recherche
La seconde modification concerne la base de recherche, valeur souhaitée dc=ejnserver,dc=fr
, dans l'annuaire. Il faut modifier la section suivante :
/* Array of base DNs of your LDAP server. Leave this blank to have phpLDAPadmin
auto-detect it for you. */
$servers->setValue('server','base',array('dc=example,dc=com'));
En
/* Array of base DNs of your LDAP server. Leave this blank to have phpLDAPadmin
auto-detect it for you. */
/* $servers->setValue('server','base',array('dc=example,dc=com')); */
$servers->setValue('server','base',array('dc=ejnserver,dc=fr'));
Compte de connexion par défaut
L'utilisation de l'application nécessite une authentification.
Or le compte d'authentification par défaut est cn=admin,dc=example,dc=com
. Il paraît utile de modifier cette valeur pour être le "vrai" compte administrateur de l'annuaire accédé. Il faut modifier la section suivante :
/* The DN of the user for phpLDAPadmin to bind with. For anonymous binds or
'cookie' or 'session' auth_types, LEAVE THE LOGIN_DN AND LOGIN_PASS BLANK. If
you specify a login_attr in conjunction with a cookie or session auth_type,
then you can also specify the bind_id/bind_pass here for searching the
directory for users (ie, if your LDAP server does not allow anonymous binds. */
$servers->setValue('login','bind_id','cn=admin,dc=example,dc=com');
# $servers->setValue('login','bind_id','cn=Manager,dc=example,dc=com');
En
/* The DN of the user for phpLDAPadmin to bind with. For anonymous binds or
'cookie' or 'session' auth_types, LEAVE THE LOGIN_DN AND LOGIN_PASS BLANK. If
you specify a login_attr in conjunction with a cookie or session auth_type,
then you can also specify the bind_id/bind_pass here for searching the
directory for users (ie, if your LDAP server does not allow anonymous binds. */
$servers->setValue('login','bind_id','cn=admin,dc=ejnserver,dc=fr');
/* $servers->setValue('login','bind_id','cn=admin,dc=example,dc=com'); */
# $servers->setValue('login','bind_id','cn=Manager,dc=example,dc=com');
Filtre d'authentification
L'utilisation de cette application peut être filtrée aux utilisateurs. Tous les utilisateurs déclarés dans l'annuaire ne doivent pas pouvoir se connecter. Pour cela, il faut modifier le paramètre allowed_dns
. Dans le cadre de cette installation, l'application est filtrée aux membres du groupe ldapAdmin
.
/* If you set this, then only these DNs are allowed to log in. This array can
contain individual users, groups or ldap search filter(s). Keep in mind that
the user has not authenticated yet, so this will be an anonymous search to
the LDAP server, so make your ACLs allow these searches to return results! */
# $servers->setValue('login','allowed_dns',array(
# 'uid=stran,ou=People,dc=example,dc=com',
# '(&(gidNumber=811)(objectClass=groupOfNames))',
# '(|(uidNumber=200)(uidNumber=201))',
# 'cn=callcenter,ou=Group,dc=example,dc=com'));
$servers->setValue('login','allowed_dns',array(
'cn=admin,dc=ejnserver,dc=fr',
'(&(uid=*)(memberof=cn=ldapAdmin,ou=groups,dc=ejnserver,dc=fr))'
));
A noter, le compte d'administration a été ajouté explicitement. Malgré l'ajout de celui ci dans le groupe, la connexion n'aboutissait pas.
Publication sous Apache
Mise à jour
1.0.2 → 1.2.2 | 1.2.2 → 1.2.3 |
Upgrade Ubuntu
Attention, lors de la mise à jour d'Ubuntu 16.04, la version de php a été modifiée. Il est nécessaire de réinstaller les paquets php-ldap
et php-xml
. Lors de l'accès à l'application, un message d'erreur est affiché indiquant la nécessité de ceux-ci.
#sudo apt-get install php-ldap php-xml
Voir aussi
Documentation officielle: https://help.ubuntu.com/community/InstallingphpLDAPadmin