Deiner Fragestellung entnehme ich, dass ich ein paar Worte über den LDAP hier verlieren sollte.
Den LDAP kann man sicher für alles möglich verwenden. Es ist ja eine "objektorientierte" Datenbank (Schema entspricht in etwa den Klassen), die aber aus einer Zeit stammt, als man OO noch nicht kannte. Dafür ist er aber auch bei einigen Millionen Benutzern beim Lesen deutlich schneller als "normale" Datenbanken.
Eingesetzt wird der LDAP dort, wo sehr viele Identitäten und Accounts zentral (ein IP Service) verwaltet werden sollen. Genutzt wird der LDAP dann häufig für Authentisierungs- (Anmelde-) und Autorisierungszwecke (Berechtigunssteuerung). Nachdem MS bei ihren NT Domänen in Performance-Probleme kam, haben sie beispielsweise den LDAP Server (mit einem grottigen Schema) und Kerberos V genutzt um das "Active Directory" zu "erfinden" (das gab es vorher schon beim MIT im DECathena Projekt).
Die Nutzung eines lokalen LDAP macht nur dann Sinn, wenn du mehrere Applikationen hast, die für o.g. Zwecke eine LDAP Schnittstelle haben und du die Daten nicht mehrfach pflegen willst. Die Kommunikation zwischen Client Applikation (z.B. Mail Programm) und dem LDAP Server erfolgt entweder unverschlüsselt (nicht empfohlen) über der Port 389 oder SSL verschlüsselt über Port 636 (LDAPS), wenn du die default Zuordnungen verwendest. Den Zugriff auf den gewählten Port solltest du dann in deiner Firewall ermöglichen.
Die Applikation, die den Benutzer authentisieren will verfügt in der Regel über die entsprechenden Abfrage-Methoden. In der Applikation konfiguriert man dann den LDAP Zugriff über Host-Name, Port, Base-DN für die Suche nach dem User und User-Attribut (das ist nicht immer cn sondern kann auch irgend ein anderes Attribut wie uid sein, das möglichst indiziert ist).
Will man weitere Daten für den Benutzer erhalten, muss man diese über einen Bind-User lesen oder den Benutzerdatensatz für den Lesezugriff durch den anzumeldenden User frei geben. Will die Applikation die Berechtigungen des angemeldeten Benutzers feststellen, so wird dies in der Regel über die Gruppenzugehörigkeit des Users aufgelöst. Hier macht die 2. Variante (ohne Bind-User) wenig Sinn, da sonst der Benutzer die Berechtigung von anderen Benutzern auch lesen könnte. Wenn du nur persönlich Attribute (wie mail) lesen willst, kann auch die 2. Variante (Authentisierter User als Bind-User) genutzt werden.
Welche Daten du bei einem Benutzer-Objekt speichern kannst, legst du über die Schema-Definition fest. Ein paar der gängigen Schemata (z.B. inetorgperson) werden bei jeder LDAP Distribution gleich zur Verfügung gestellt. Für deine Anforderungen saust du, ob es bereits ein RFC Schema gibt oder du definierst über eigene OID eigene Schemata.
Es gibt eine große Zahl von LDAP Literatur. Welche für dich geeignet ist, hängt von deinen Anforderungen ab. Einige Doku betrachtet mehr die Konfiguration/Adminstration eines LDAP, andere betrachten mehr den Design/Anwendungsfall.