Once you have a supported LDAP version, you need to configure it appropriately before populating the database. The configuration file should include the correct schemas for the objects to be created and managed:
include /etc/openldap/schema/core.schema
include /etc/openldap/schema/misc.schema
include /etc/openldap/schema/cosine.schema
include /etc/openldap/schema/inetorgperson.schema
include /etc/openldap/schema/axigen.schema
Also very important, you have to enable support for the second version of the LDAP protocol:
allow bind_v2
Following are the recommended database options, as well as the indexing options that are normally used for the Axigen entry value (expected) contents:
serverID 1
database bdb
suffix "dc=localdomain,dc=test"
checkpoint 32 30
rootdn "cn=admin,dc=localdomain,dc=test"
rootpw secret
directory /var/lib/openldap-data
index objectClass eq,pres
index ou,cn,mail,surname,givenname eq,pres,sub
index entryUUID,entryCSN eq
Of course, you always have to replace the “dc=” sections with the domain name you plan on using and the administrative password which is only provided here for reference purposes. The indexing options should be specified at all times if you plan on having a decent performance for your lookups. Failure to set the indexing options before populating the database may result in additional future configuration overhead to apply this change.
To enable replication support, you need to enable the following configuration options in the LDAP configuration file:
overlay syncprov
syncprov-checkpoint 100 30
syncprov-sessionlog 1000
In the above example, the “syncprov-checkpoint” arguments create a new checkpoint every 30 minutes or every 100 operations. Also, the “sessionlog” will be limited to 1.000 entries and if you plan on making (or expect) a lot of syncs to take place in a short while (or at once), you should consider increasing this number of kept records.
Lastly, you have to enable support for “Member-of” support (for groups) if you plan on using this feature:
moduleload memberof.la
overlay memberof
memberof-refint true
This concludes the LDAP configuration file contents and requirements. On top of this initial setup you will have to consider a couple of more details before moving on with the integration. First off, if you already have a populated LDAP database you should either use another (different) database for Axigen related syncs or upgrade the current entry layout to match the following design:
- Root node layout:
dn: dc=localdomain,dc=test
objectclass: organization
objectclass: dcObject
o: localdomain.test
dc: localdomain
- Organization node layout:
dn: o=localdomain, dc=localdomain,dc=test
objectclass: organization
o: localdomain
- Groups unit layout:
dn: ou=Groups, o=localdomain, dc=localdomain,dc=test
objectclass: organizationalUnit
ou: Groups
- User unit layout:
dn: ou=Users, o=localdomain, dc=localdomain,dc=test
objectclass: organizationalUnit
ou: Users
In addition to this approach you may also choose to let the Axigen Mail Server sync the data and automatically create the entries in the LDAP server through the regular update process of the database. In fact the second approach is the recommended one in most cases, except of course if you already have a populated database that may be corrupted during this process.
