phpLDAPadmin est un outil d'administration LDAP écrit en PHP.
phpLDAPadmin se connecte au serveur avec un DN et un mot-de-passe statique et ne requiert ainsi aucune authentification. L'accès à phpLDAPadmin sera protégé par LemonLDAP::NG avec une règle particulière d'accès.
Mettre juste le type d'authentification à config
et indiquer le DN et le mot-de-passe dans le fichier config.php
:
$ldapservers->SetValue($i,'server','auth_type','config'); $ldapservers->SetValue($i,'login','dn','cn=Manager,dc=example,dc=com'); $ldapservers->SetValue($i,'login','pass','secret');
Configurer l'hôte virtuel phpLDAPadmin comme n'importe quel autre hôte virtuel protégé.
<VirtualHost *:80> ServerName phpldapadmin.example.com PerlHeaderParserHandler Lemonldap::NG::Handler ... </VirtualHost>
server { listen 80; server_name phpldapadmin.example.com; root /path/to/application; # Requête interne d'authentification location = /lmauth { internal; include /etc/nginx/fastcgi_params; fastcgi_pass unix:/var/run/llng-fastcgi-server/llng-fastcgi.sock; # Ignorer les données postées fastcgi_pass_request_body off; fastcgi_param CONTENT_LENGTH ""; # Conserver le nom d'hôte original fastcgi_param HOST $http_host; # Conserver la requête originale (le serveur LLNG va recevoir /llauth) fastcgi_param X_ORIGINAL_URI $request_uri; } # Requêtes clients location / { auth_request /lmauth; auth_request_set $lmremote_user $upstream_http_lm_remote_user; auth_request_set $lmlocation $upstream_http_location; error_page 401 $lmlocation; try_files $uri $uri/ =404; ... include /etc/lemonldap-ng/nginx-lua-headers.conf; } location / { try_files $uri $uri/ =404; } }
Aller dans le manager et créer un nouvel hôte virtuel pour phpLDAPadmin.
Configurer simplement la règle d'accès.
Aucun en-tête n'est nécessaire.