# phpLDAPadmin

## Présentation

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.

phpLDAPadmin ne connaît donc pas le nom du l'utilisateur connecté au WebSSO. Ainsi un simple utilisateur aura un accès administrateur au serveur LDAP si votre règle d'accès est trop permisive.

## Configuration

### Configuration locale phpLDAPadmin

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');

### Hôte virtuel phpLDAPadmin

Configurer l'hôte virtuel phpLDAPadmin comme n'importe quel autre hôte virtuel protégé.

- Pour Apache:

    <VirtualHost *:80>
           ServerName phpldapadmin.example.com

           PerlHeaderParserHandler Lemonldap::NG::Handler

           ...

    </VirtualHost>

- Pour Nginx:

    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;
      }
    }

### Hôte virtuel phpLDAPadmin dans le manager

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.