Gebruikersbeheer is in de praktijk wat ingewikkelder dan alle gebruikersgegevens in één LDAP-server (Lightweight Directory Access Protocol) steken. De personeelsdienst heeft bijvoorbeeld al een databank met alle werknemers of je gebruikt al Active Directory voor je Windows-desktops en wil dezelfde gebruikersgegevens ook op andere systemen inzetten.

Als je je bestaande databank wil blijven gebruiken, moet je elke wijziging synchroniseren met je LDAP-server. Als dit manueel gebeurt, is dit traag en introduceer je na een tijd gegarandeerd fouten.

Het opensource-project LDAP Synchronization Connector (LSC), geschreven in Java en met een BSD-licentie, komt van pas voor een automatische synchronisatie van een LDAP-databank.

Het programma kan nieuwe entry's in de doeldatabank creëren die er bij de brondatabank bijgekomen zijn, het kan entry's in de doeldatabank verwijderen die niet (meer) in de brondatabank aanwezig zijn, en het kan wijzigingen in entry's in de brondatabank updaten in de doeldatabank. LSC werkt op elk platform met een Java 6 JRE.

Gegevens transformeren

LSC ondersteunt verschillende types voor de brondatabank, waaronder een LDAPv3-server, elke databank met een JDBC-connector en CSV-bestanden (Comma-separated values). Voor een SQL-databank configureer je bijvoorbeeld met een eenvoudige SQL-query welke gebruikersgegevens je uitleest. Na de configuratie van de bron configureer je ook het doel, waarbij je onder andere specificeert tot welk LDAP-schema je de gebruikersgegevens uit de brondatabank vertaalt.

Bij deze synchronisatie kun je ook allerlei filters en transformaties uitvoeren, bijvoorbeeld het deactiveren van lang niet meer gebruikte accounts, het forceren van een wachtwoordverandering, enzovoort. De configuratie gebeurt in het xml-bestand lsc.xml waar je naast de verbindingen met gegevensbronnen ook taken definieert.

LSC is synchroon of asynchroon te starten. Op de tweede manier wordt LSC als een daemon opgestart, waarna je met het commando lsc-agent taken kunt opstarten en de status van taken kunt opvragen. LSC levert ook een Nagios-script mee om de status van de synchronisatie te monitoren. Meer informatie over de mogelijkheden van LSC vind je in de documentatie.