Kleine LDAP-Anleitung
Hallo Patrick,
ich hab' es zumindest geschafft, die LDAP-Benutzerverwaltung zu nutzen. Ob und wie das mit den Adressdaten, etc. funktioniert, kann ich (noch) nicht sagen. Hier jedenfalls mal meine Vorgehensweise für DSM-4.2 / Zarafa SPK-0.3.3:
1. OpenLDAP anpassen:
Dabei habe ich im Wesentlichen an Kapitel 5.2 des Zarafa Admin-Handbuchs gehalten. In
/usr/syno/etc/openldap/slapd.conf muss zunächst die richtige Schema-Konfigurationsdatei referenziert werden. Ob die Indizes unbedingt wie beschrieben angepasst werden müssen, weiß ich nicht. Ich hab's jedenfalls gemacht. Hier die Änderungen im
diff-Format:
Rich (BBCode):
--- slapd.conf.orig
+++ slapd.conf
@@ -2,7 +2,7 @@
# See slapd.conf(5) for details on configuration options.
# This file should NOT be world readable.
#
-include /usr/syno/etc.defaults/openldap/schema.conf
+include /usr/syno/etc/openldap/schema.conf
# Define global ACLs to disable default read access.
@@ -52,13 +56,20 @@
# Mode 700 recommended.
directory /usr/syno/etc/openldap/data
# Indices to maintain
-index objectClass eq
-index cn pres,sub,eq
-index uid pres,sub,eq
-index uidNumber eq,pres
-index gidNumber eq,pres
-index memberUID eq
+index objectClass pres,eq
+index cn pres,eq,sub
+index uid pres,eq,sub
+index mail pres,eq,sub
+index uidNumber pres,eq
+index gidNumber pres,eq
+index memberUID pres,eq
+index ou pres,eq
+index sn pres,eq,sub
index sambaSID eq
index sambaDomainName eq
+index zarafaAliases pres,eq,sub
+index zarafaAccount pres,eq
+index zarafaSendAsPrivilege pres,eq
+index zarafaViewPrivilege pres,eq
index default sub
Dann habe ich wie beschrieben
/var/packages/Zarafa/target/share/doc/zarafa/zarafa.schema nach
/usr/syno/etc/openldap/schema/ kopiert und
/usr/syno/etc/openldap/schema.conf angepasst. Bei der Gelegenheit habe ich die Konfiguration auch noch von
etc.defaults auf
etc umgebogen. Es schien mir in dem Moment richtig. Wenn es jemand besser weiß, bitte Bescheid sagen! Meine
schema.conf sieht jedenfalls so aus:
Rich (BBCode):
include /usr/syno/etc/openldap/schema/corba.schema
include /usr/syno/etc/openldap/schema/core.schema
include /usr/syno/etc/openldap/schema/cosine.schema
include /usr/syno/etc/openldap/schema/dyngroup.schema
include /usr/syno/etc/openldap/schema/inetorgperson.schema
include /usr/syno/etc/openldap/schema/java.schema
include /usr/syno/etc/openldap/schema/misc.schema
include /usr/syno/etc/openldap/schema/nis.schema
include /usr/syno/etc/openldap/schema/openldap.schema
include /usr/syno/etc/openldap/schema/ppolicy.schema
include /usr/syno/etc/openldap/schema/samba.schema
include /usr/syno/etc/openldap/schema/apple_auxillary.schema
include /usr/syno/etc/openldap/schema/apple.schema
include /usr/syno/etc/openldap/schema/syno.schema
include /usr/syno/etc/openldap/schema/zarafa.schema
2. Zarafa für OpenLDAP einrichten
Auch hier bin ich wieder weitgehend nach Admin-Handbuch, Kapitel 5.2.3 / 5.2.4 vorgegangen. Zunächst einmal wird die Vorlage
/etc/zarafa/ldap.openldap.cfg nach
/etc/zarafa/ldap.cfg kopiert. Dann habe ich darin folgende Anpassungen vorgenommen:
Rich (BBCode):
ldap_bind_user = <Eintrag "Bind DN" aus den Authentifizierungsinformationen des Directory Servers>
ldap_bind_passwd = <Passowrd des Directory Servers>
ldap_search_base = <Eintrag "Base DN" aus den Authentifizierungsinformationen des Directory Servers>
ldap_user_search_filter = (zarafaAccount=1)
ldap_fullname_attribute = gecos
Die letzten beiden Einträge verdienen etwas mehr Erklärung. Zunächst einmal
ldap_fullname_attribute = gecos. Eigentlich ist das
GECOS-Feld wohl nicht ganz das passende - evtl. hätte ich
displayName verwenden sollen - aber bei mir enthält es jedenfalls Vor- und Zunamen. In anderen Installationen mag das vielleicht anders sein.
Und zu guter letzt noch
ldap_user_search_filter = (zarafaAccount=1): Ich wollte natürlich nicht, dass Systembenutzer wie
admin ein Zarafa-Konto bekommen. Also habe ich mich an Kapitel 5.2.4 gehalten, und auf diese Weise einen Filter angelegt. Dann habe ich mir das
Apache Directory Studio heruntergeladen. (Das kann ich jedem, der etwas mehr mit dem Synology LDAP experimentieren möchte, nur empfehlen! Mir hat es zumindest sehr weitergeholfen.) Ich habe im Directory Studio eine Verbindung zu meiner DiskStation eingerichtet (Bind DN und Passwort wie oben) und unter
cn=users bei den Benutzern, die ein Zarafa-Konto bekommen sollen, per Rechtsklick ein neues Attribut - eben das Attribut
zarafaAccount mit dem Wert
1 angelegt.
Dann fehlt eigentlich nur noch die Umstellung des User-Plugins in
/etc/zarafa/server.cfg:
Rich (BBCode):
user_plugin = ldap
user_plugin_config = /etc/zarafa/ldap.cfg
Jetzt müsste Zarafa nach einem Neustart eigentlich die Benutzerinformationen aus dem Synology LDAP-Server ziehen. Ich bin - zumindest soweit ich das rekonstruieren kann - bei dieser Beschreibung von den mitgelieferten Konfigurationsdateien ausgegangen. Sollte ich noch etwas übersehen haben, wird diese Anleitung vermutlich nicht wirklich funktionieren. In dem Fall sag' bitte Bescheid. Auch sonst übernehme ich natürlich keine Haftung für diese Anleitung - Basteln auf eigene Gefahr!
Ich hoffe, das bringt Dich ein wenig weiter. Lass' mich doch bitte auch wissen, wenn es geklappt hat.
Viele Grüße,
Thorsten