Von Thunderbird, Diskstation und LDAP

Die Idee ein gemeinsames Adressbuch zu haben, welches auf allen Rechnern zu Hause verfügbar ist, hatte schon länger seinen Reiz. Allerdings hatte ich aufgrund der wenigen Zeit im Sommer und dem mit der Einrichtung so eines Adressbuches kommenden Aufwandes dies verschoben. Nun aber mit den regnerischen Tagen und frühen Abenden, hatte ich keine Ausrede mehr.

1. Schritt: Installation des Directory Servers auf der Diskstation
Wie auf der Diskstation (DS) nicht anders zu erwarten ging dies recht einfach von statten: Paketdienst aufrufen, installieren, User einrichten, Passwort festlegen, fertig!

2. Schritt: Thunderbird mit LDAP verbinden
Hier musst man schon etwas suchen, aber unter den Einstellungen kann man doch einen LDAP Server hinzufügen, welchen Thunderbird verwendet, um beim Adressieren nach vorhanden Kontakten zu suchen. Die benötigten Informationen sind alle im Konfigmenü des LDAP auf der DS nachzulesen und somit stand die Verbindung recht schnell.
Thunderbird LDAP connection

1. Problem: Name vorhanden, Adresse nicht
Nachdem ich die DS nun erfolgreich verbunden hatte (und zuvor über das Menü der DS auch ein paar Kontakte angelegt hatte), suchte ich diese über das Adressbuch von Thunderbird: gefunden! Doch leider wurde außer dem Namen und der eMailadresse nichts von dem angezeigt, was ich zuvor eingegeben hatte. Also tiefer reinwühlen in den Kram und feststellen, dass für Mozilla ein eigenes Schemafile auf der LDAP hinterlegt werden muss. Mittlerweile nutze ich ein eigens modifiziertes Schemafilewelches auch noch das Geburtsdatum beinhaltet. Dieses wird einfach unter /usr/syno/etc.defaults/openldap/schema/ abgelegt, die entsprechende Referenz unter /usr/syno/etc.defaults/openldap/schema.conf eingetragen und der LDAP Server mit /usr/syno/etc/rc.d/S10slapd.sh restart neu gestartet .

3. Schritt: Adressbuch füllen
Mit dem neuen Schemafile war es nun nicht mehr möglich, die Kontakte direkt auf der DS einzugeben. Als Alternative finde ich bisher den LDAP Browser sehr nützlich. Die Verbindung mit dem LDAP geht recht einfach (man sollte darauf achten, dass man hier über den admin User eingeloggt ist, der volle Zugriffsrechte auf den LDAP hat). Beim hinzufügen der User, hat man nun die Möglichkeit verschiedene Klassen für diesen User zu verwenden, für das Thunderbird Adressbuch habe ich folgende Klassen als ausreichend empfunden:
jXplorer - new user

2. Problem: Welches Feld ist welches?
Da im jXplorer direkt die namen aus den Schemafiles verwendet werden, ist nicht jedes Feld selbsterklärend. Ich habe mir also einen Testuser erschaffen und jedes Feld mit seiner Bezeichnung benamt, um dann über das Adressbuch zu sehen, welches wo auftaucht. Ich würde dies als etwas schmerzhaft bezeichnen, da die Felder teilweise Restriktionen haben, diese aber nicht bei der Eingabe sondern erst beim Speichern geprüft werden. Sollte man nun wie ich zuerst alle Felder gefüllt haben, und dann abspeichern, wird man feststellen, dass es multiple Verletzungen gibt, die allerdings nur mit einer Exception angezeigt werden. Also Kommdando zurück, jeden Wert noch einmal eingegeben, und nach jedem gespeichert. Heraus kam folgendes Mapping:
TB LDAP Mapping 1 TB LDAP Mapping 2 TB LDAP Mapping 4 TB LDAP Mapping 3
TB LDAP Mapping 5

3. Problem: Nicht alle Felder von TB in Schemafile
Nachdem ich nun das Mapping hatte, musste ich feststellen, dass mehrere Felder nicht gefüllt waren. Aus diesem Grund habe ich zum einen mein Schemafile dementsprechend geändert, dass nun auch der Geburtstag dort vorhanden ist und zum zweiten die lokale Präferenzen Datei von Thunderbird etwas umgebogen, damit die Straße für die private Adresse nun auch sichtbar wird. Hier wird einfach die folgende Zeile in die prefs.js eingefügt:
user_pref("ldap_2.servers.diskstation.attrmap.HomeAddress", "homepostaladdress");

Nächste Schritte: Anbindung Apple Adressbuch
Hier bin ich gespannt, ob und wie sich dies realisieren lässt, vor allem, wenn man nicht im heimischen Netzwerk ist. Wer weitere Tipps, Ideen und Anregungen hat, darf sich gerne bei mir melden.