Installation phpLDAPAdmin

De EjnTricks

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


Hand-icon.png Votre avis

Current user rating: 77/100 (17 votes)

 You need to enable JavaScript to vote


System-Install-icon.png Installation initiale

Le paquet phpldapadmin est donc installé avec la commande apt-get.

sudo apt-get install phpldapadmin

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-icon.png 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.


Configuration-icon.png Publication sous Apache

Update icon.png Mise à jour

1.0.2 → 1.2.2 1.2.2 → 1.2.3


Warning-icon.png 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


Viewer icon.png Voir aussi

Documentation officielle: https://help.ubuntu.com/community/InstallingphpLDAPadmin