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.