Some applications (Redmine, Kwok, ...) can integrate with LDAP but it requires the users to exist in its database. Take a look at this. I modify the import.php
script to synchronize OpenLDAP users to MySQL database:
The users
tables:
mysql> desc users;
+-------------------+--------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+-------------------+--------------+------+-----+---------+----------------+
| id | int(11) | NO | PRI | NULL | auto_increment |
| login | varchar(30) | YES | | | |
| hashed_password | varchar(40) | YES | | | |
| firstname | varchar(30) | YES | | | |
| lastname | varchar(30) | YES | | | |
| mail | varchar(60) | YES | | | |
| admin | tinyint(1) | YES | | 0 | |
| status | int(11) | YES | | 1 | |
| last_login_on | datetime | YES | | NULL | |
| language | varchar(5) | YES | | | |
| auth_source_id | int(11) | YES | MUL | NULL | |
| created_on | datetime | YES | | NULL | |
| updated_on | datetime | YES | | NULL | |
| type | varchar(255) | YES | MUL | NULL | |
| identity_url | varchar(255) | YES | | NULL | |
| mail_notification | varchar(255) | NO | | | |
| salt | varchar(64) | YES | | NULL | |
+-------------------+--------------+------+-----+---------+----------------+
My OpenLDAP schema:
dn: cn=quanta,ou=x,dc=x,dc=x
cn: quanta
objectClass: top
objectClass: person
objectClass: organizationalPerson
objectClass: inetOrgPerson
mail: x@y.z
givenName: a
initials: b
sn: c
userPassword: {SSHA}123
So, I import as belows:
"INSERT INTO users (login, firstname, lastname, mail, mail_notification, \
admin, status, language, auth_source_id, created_on, type) \
VALUES('" . $data[$i]["cn"][0] . "','" . $data[$i]["givenname"][0] . "',\
'" . $data[$i]["sn"][0]." ".$data[$i]["initials"][0] . "',\
'" . $data[$i]["mail"][0] . "',false,false,1,'en','1',\
'".date('Y-m-d H:m:s')."','User')";
I also setup a incron job to do it automatically whenever an user is inserted or updated to the OpenLDAP:
/var/lib/ldap/*.bdb IN_MODIFY,IN_CREATE,IN_CLOSE_WRITE /usr/bin/php -q /var/www/html/import.php