LDAP configuration backend

Presentation

You can choose to store LemonLDAP::NG configuration in an LDAP directory.

Advantages:

  • Easy to share between servers with remote LDAP access
  • Easy to duplicate with LDAP synchronization services (like SyncRepl in OpenLDAP)
  • Security with SSL/TLS
  • Access control possible by creating one user for Manager (write) and another for portal and handlers (read)
  • Easy import/export through LDIF files

The configuration will be store under a specific branch, for example ou=conf,ou=applications,dc=example,dc=com.

Each configuration will be represented as an entry, which structural objectClass is by default applicationProcess. The configuration name is the same that files, so lmConf-1, lmConf-2, etc. This name is used in entry DN, for example cn=lmConf-1,ou=conf,ou=applications,dc=example,dc=com.

Then each parameter is one value of the attribute description, prefixed by its key. For example {ldapPort}389.

The LDIF view of such entry can be:

dn: cn=lmConf-1,ou=conf,ou=applications,dc=example,dc=com
objectClass: top
objectClass: applicationProcess
cn: lmConf-1
description: {globalStorage}'Apache::Session::File'
description: {cookieName}'lemonldap'
description: {whatToTrace}'$uid'
...

Configuration

LDAP server

Configuration objects use standard object class: applicationProcess. This objectClass allow attributes cn and description. If your LDAP server do not manage this objectClass, configure other objectclass and attributes (see below).

We advice to create a specific LDAP account with write access on configuration branch.

Next create the configuration branch where you want. Just remember its DN for LemonLDAP::NG configuration.

LemonLDAP::NG

Configure LDAP configuration backend in lemonldap-ng.ini, section [configuration]:

type = LDAP
ldapServer = ldap://localhost
ldapConfBase = ou=conf,ou=applications,dc=example,dc=com
ldapBindDN = cn=manager,dc=example,dc=com
ldapBindPassword = secret
ldapObjectClass = applicationProcess
ldapAttributeId = cn
ldapAttributeContent = description

Parameters:

  • ldapServer: LDAP URI of the server
  • ldapConfBase: DN of configuration branch
  • ldapBindDN: DN used to bind LDAP
  • ldapBindPassword: password used to bind LDAP
  • ldapObjectClass: structural objectclass of configuration entry (optional)
  • ldapAttributeId: RDN attribute of configuration entry (optional)
  • ldapAttributeContent: attribute used to store configuration values, must be multivalued (optional)