Zarafa auf LDAP-Server umstellen

Status
Für weitere Antworten geschlossen.

P4ddy

Benutzer
Mitglied seit
26. Okt 2009
Beiträge
461
Punkte für Reaktionen
1
Punkte
16
Hallo Zusammen,

hat schon jemand mal versucht, oder es geschafft, Zarafa mit dem LDAP- Server der Synos zu verkuppeln?

Also hauptsächlich meine Ich die User: Bislang nutze ich die interne Userverwaltung über die SQL Datenbank- aber die hat ja nur eingeschränkte Funktionen(Adressdatenergänzung der User; mehrere MailAdressen...)

Daher meine Planung zu schauen ob und wie man hier Zarafa mit dem LDAP- Server verbinden kann.

Gruß
Patrick
 

tkoester

Benutzer
Mitglied seit
03. Jun 2013
Beiträge
16
Punkte für Reaktionen
0
Punkte
0
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
 

P4ddy

Benutzer
Mitglied seit
26. Okt 2009
Beiträge
461
Punkte für Reaktionen
1
Punkte
16
Hallo Thorsten,

zuerst einmal vielen Dank für die sehr ausführliche Anleitung.
Ich habe vorgestern auch etwas Zeit gehabt, und mich selber mal ausführlich mit dem Thema beschäaftigt und habe es schlussentlich auch hinbekommen.
Im grunde habe ich es wie in deiner Anleitung gemacht.

Die einzigen Unterschiede waren zum einen die Indices: die habe ich bei mir komplett ausgelasen- es scheint also auch ohne anpassung zu gehen. Der Sauberkeit halber habe ich das aber nun nach deiner Anleitung nachgetragen.

Die andere Sache war der zarafa_user_search_filter: ehrlich gesagt habe ich das nicht so ganz verstanden gehabt und ausgelassen. So hatte ich natürhlich den admin Benutzer auch hinterlegt. Der hat mich dann im Globalen Adressbuch etwas gestört und ich bin dann über das Attribut "hide" daher gegangen und habe Ihn einfach ausgeblendet.
Deiner Lösung, ihn gar nicht erst als Zarafa- User anlegen zu lassen ist natürhlich eleganter und ich habe das auch eben nachgepfelgt.

Dieses Apache Directory Studio kannte ich nicht- ich habe mir die Demo- Version von LDAP Administrator geladen und darüber meine Attirbute der User ( Anschrift, Telefen usw. ) ausgefüllt. Aber da dieser LDAP - Administrator 250 $ Kostet ist deine Lösung glaub ich die schönere...- danke für den Tip.

Die Adressdaten und die Telefonummer usw. werden alle sauber angezeigt. Leider sind einige Felder bei Outlook und bei der Zarafa Webapp vertauscht: z.B Land und Bundesland. In Webapp sind die Felder Korrekt belegt- im Outlook wurde mir aber als Land NRW und als Bundesland Deutschland angezeigt. ich habe in einer Datei dann einfach die Attribute getauscht. Ich bin gerade nicht zu Hause- müsste morgen mal schauen in welcher Datei das war.

Ich habe für einen Bekannten mal eine Zarafa- Anleitnung im Word- Format angelegt die die installation mit eigener Domäne Beschreibt.
Ich würde die LDAP Integration darin morgen und/oder Übermorgen mal ergänzen und die Anleitung dann auch hier posten. Ich denke das ist für einige recht hilfreich.

Ich werde meine neuen Erkenntnisse morgen posten sobald alle deine Änderungen vollzogen sind:)

Nochmal vielen Dank für die Mühen. Morgen wollte ich auch posten das ich es vollbracht habe, aber da warst du schneller als ich:p:D

Gruß
Patrick
 

P4ddy

Benutzer
Mitglied seit
26. Okt 2009
Beiträge
461
Punkte für Reaktionen
1
Punkte
16
Hallo Thorsten,

ich bastel gerade noch ein bissl rum, vielleicht kannst du mir nochmal helfen:

du hast ja diese Filteroption beschrieben, welcher User ein Konto bekommen soll und welche nicht: ldap_user_search_filter = (zarafaAccount=1)

Ich wollte das ganze etwas kompfortabler machen und habe gedacht, man könnte ja im LDAP- Server in der Syno eine Gruppe "Zarafa" anlegen und dorthinein User verschieben, die ein Konto bekommen sollen.

Habe das ganze auch mal umgesetzt und meine User in die Gruppe eingefügt. Leider hapert es nun daran, in der ldap.cfg die Gruppe entsprechen einzufügen und Zarafa zu verklickern das alle User die in dieser Gruppe sind ein Konto bekommen sollen und die anderen eben nicht...

hast du vielleicht eine Idee wie man so etwas umsetzen könnte?

Gruß
Patrick
 

tkoester

Benutzer
Mitglied seit
03. Jun 2013
Beiträge
16
Punkte für Reaktionen
0
Punkte
0
Hallo Patrick,

genau das mit der Zarafa-Gruppe war auch mein erster Ansatz. Ich hab's nicht hinbekommen und mich dann für die simple Lösung entschieden, wie sie im Handbuch vorgeschlagen wurde. :)
Für so einen Gruppenfilter müsste der Ausdruck ja schon etwas komplexer sein, aber da fehlte mir einfach das Wissen, wie ich sowas "in LDAP" schreibe. Vielleicht als Pfad? (cn=users,cn=Zarafa,... oder so ähnlich?)

Viele Grüße,
Thorsten

EDIT: P.S.: Außerdem weiß ich schon gleich gar nicht, ob Zarafa hier einen solchen Ausdruck überhaupt verarbeiten kann...
 
Zuletzt bearbeitet:

P4ddy

Benutzer
Mitglied seit
26. Okt 2009
Beiträge
461
Punkte für Reaktionen
1
Punkte
16
Hallo Thorsten,

ich bin immernoch zugange das ganze über Gruppen zu regeln- jetzt hat mich der ergeiz gepackt :)

Es gibt wohl eine Abfrage die MemberOf heißt (also Memberof=Zarafa wäre das dann für mich) womit man gruppen abfragen kann. Das muss aber mittels eines Modules erst eingebunden werden.


Kennst du den Modulpfad der in der slapd.conf eingesetzt ist?

Rich (BBCode):
#                                                                                                          
# See slapd.conf(5) for details on configuration options.                                                  
# This file should NOT be world readable.                                                                  
#                                                                                                          
include /usr/syno/etc.defaults/openldap/schema.conf                                                        
                                                                                                           
# Define global ACLs to disable default read access.                                                       
                                                                                                           
# Do not enable referrals until AFTER you have a working directory                                         
# service AND an understanding of referrals.                                                               
#referral       ldap://root.openldap.org                                                                   
                                                                                                           
pidfile /var/run/slapd.pid                                                                                 
argsfile /var/run/slapd.args                                                                               
                                                                                                           
# Load dynamic backend modules:                                                                            
 modulepath     %MODULEDIR%                                                                                
 moduleload     back_bdb.la                                                                                
 moduleload     back_ldap.la                                                                               
 moduleload     back_ldbm.la                                                                               
 moduleload     back_passwd.la                                                                             
 moduleload     back_shell.la                                                                              
 moduleload     memberof.la                                                                                
 overlay memberof   

mis auf meine letzten beiden Roten einträge ist alles so schon vorhanden, jedoch auskommentiert. Ich weiß nur gar nicht, ob dieses Modul überhaupt vorhanden ist, nur ich finde diesen dusseligen Modulpfad nicht..:eek:

Nochwas: könntest du mir mal deine ldap.openldap.cfg zukommen lassen. Ich habe bei mir damals keine Kopie angelgt die ldap.cfg heißt, sondern direkt in die ldap.openldap.cfg geschrieben und somit natürhlich mein Template runiert. dann hätte ich nochmal eine frische Datei, das wäre super.

Ich werde derweil noch etwas herumtüfteln.
Gruß

Achja.. hab dazu noch was interssantes gefunden:
http://www.zarafa.com/wiki/index.php/OpenLDAP_and_MemberOf_in_Zarafa

das ist ja schon das was ich suche, nur leider will das nach dieser Anleitung nicht so recht klappen, daher meine Vermutung das Synology an den Module gespart hat:-(
 

tkoester

Benutzer
Mitglied seit
03. Jun 2013
Beiträge
16
Punkte für Reaktionen
0
Punkte
0
Hallo Patrick,

ich befürchte fast, dass der LDAP-Server ohne Module kompiliert wurde. Ein ls -laR / findet weder back_*.la noch eine Datei memberof.la.
An die ldap.openldap.cfg kommst Du übrigens auch mit "Bordmitteln" wieder problemlos dran: Einfach das SPK mit einem ZIP-Programm (z.B. 7-ZIP) öffnen - ist nichts anderes als ein Archiv. Wenn das ZIP-Programm sowas wie einen File Manager bietet, kannst Du Dich bis zur ldap.openldap.cfg durchhangeln: Zarafa_0.3.3_arm.spk\package.tgz\package.tar\zarafa.tgz\zarafa.tar\.\etc\zarafa\ldap.openldap.cfg.
Oder Du entpackst einfach diese Version: Anhang anzeigen ldap.openldap.cfg.zip ;)

Viele Grüße,
Thorsten
 

P4ddy

Benutzer
Mitglied seit
26. Okt 2009
Beiträge
461
Punkte für Reaktionen
1
Punkte
16
Hallo Thorsten,
auf das entpacken der .spk hätte ich auch drauf kommen können, hab ich sogar schon gemacht. Manchmal sieht man halt den Wald vor Bäumen nicht:rolleyes:
Aber Danke das du mir die Arbeit erleichtert hast :)

Sowas mit den Modulen hatte ich fast schon beführchtet, deswegen wird die Variable "ModuleDir" bestimm auch nicht gefüllt sein...
Jetzt mal ne Frage: kann ich mir das MemberOf Module einfach besorgen, irgendwohin kopieren und verknüpfen, oder muss das auch extra für die x86 Prozzis kompilliert werden?

Also kopieren bekomme ich hin- beim Kompillieren haperts bei mir :p
Gruß
Patrick
 

tkoester

Benutzer
Mitglied seit
03. Jun 2013
Beiträge
16
Punkte für Reaktionen
0
Punkte
0
Jetzt mal ne Frage: kann ich mir das MemberOf Module einfach besorgen, irgendwohin kopieren und verknüpfen, oder muss das auch extra für die x86 Prozzis kompilliert werden?

Ui. Aaaaalso... :)

Du brauchst natürlich eine Version der memberof.la, die für den Prozessor deiner Synology kompiliert wurde. Dann weißt Du aber noch nicht, ob der slapd überhaupt Module laden kann. Ich könnte mir vorstellen, dass das wegoptimiert wurde. Wenn Du eine passende Version findest, kannst Du's ja einfach ausprobieren - aber ehrlich gesagt habe ich da wenig Hoffnung. Vielleich bringt es mehr, Synology darauf hinzuweisen und sich auf Modul-Unterstützung in einer der nächsten DSM-Versionen zu freuen...

Viele Grüße,
Thorsten
 

P4ddy

Benutzer
Mitglied seit
26. Okt 2009
Beiträge
461
Punkte für Reaktionen
1
Punkte
16
mh.. wahrscheinlich hast du Recht. Ich denke ich werde noch mal bissl suchen, aber generell das Thema als abgeschlossen angesehen. Schade, hätte gerne solche Funktionen mit den Gruppen gemacht, eine Gruppe mit zarafa-admins, Zarafa- user, Zarafa-Kontakte usw... schade.

Trotzdem danke für deine Hilfe. Wenn ich noch eine andere Lösung finden sollte oder es doch ans Laufen bekomme melde ich mich noch mal.

Gruß
Patrick
 

alex_destiny

Benutzer
Mitglied seit
21. Mai 2014
Beiträge
14
Punkte für Reaktionen
0
Punkte
1
Hallo Thorsten,

erstmal vorweg vielen Dank für deine super Anleitung. Damit hat alles auf Anhieb funktioniert. Leider habe ich bisher keine so gute Anleitung für das Versenden über User-abhängige Relayhosts gefunden, weshalb ich daran schon seit Tagen ohne Erfolg rumtüftele.

Aber genug OffTopic ...

Ich habe noch eine kleine Anmerkung zu deinem Attribut "zarafaAccount". Ich habe versucht dieses Attribut mit dem DirectoryStudio anzulegen. Leider kam vom Programm die Fehlermeldung, dass das Attribut nicht zum Schema passt und hat es verweigert. Deshalb habe ich nach einer Alternative gesucht und deine Idee mit den User-Groups noch mal augegriffen und es funktioniert. Ich habe im DSM im DirectoryServer die Gruppe "Zarafa" angelegt und die entprechenden User hinzugefügt. Dann habe ich in der "ldap.cfg" folgenden Filter hinzugefügt:

Rich (BBCode):
ldap_user_search_filter = (memberOf=cn=Zarafa,cn=groups,dc=test,dc=lan)
Wobei test.lan meine LDAP-Domain ist. Die gesamte Zeile kann man aus dem DirectoryStudio übernehmen.
Das Programm ist wirklich ein super Tipp gewesen.

Nach einem Neustart von Zarafa waren tatsächlich nur noch die User aus der Gruppe Zarafa vorhanden.
 
Status
Für weitere Antworten geschlossen.
 

Kaffeautomat

Wenn du das Forum hilfreich findest oder uns unterstützen möchtest, dann gib uns doch einfach einen Kaffee aus.

Als Dankeschön schalten wir deinen Account werbefrei.

:coffee:

Hier gehts zum Kaffeeautomat