Mailinglist Archive: opensuse-de (4264 mails)

< Previous Next >
Re: LDAP-Rechte für globales Adresbuch
Am Do 04.11.2004 14:12 schrieb Dieter Kluenter <dieter@xxxxxxxxxxxx>:
Sven <sven@xxxxxxxxxxxxx> writes:

Hallo Dieter, hallo Liste,


[...9
Vorweg, ich habe noch keine Ahnung von OpenXchange, liegt hier immer
noch und harrt der Installation :-)

Da solltest du auch etwas Zeit dafür einplanen gerade wenn du OX an eine
vorhandene LDAP-Struktur anbinden möchtest.


Im Rahmen der OX-Installation habe ich in meiner slapd.conf unter
anderem folgenden Eintrag eingetragen:

access to dn="ou=addr,uid=(.*),ou=Users,dc=dreampixel"
attr=uid,objectClass,entry filter=(objectClass=OXUserObject)
by self write
by dn="uid=$1,ou=Users,dc=dreampixel" write
by * none

Mit der ersten Zeile habe ich so meine Probleme wie man sie liest.
Es
gibt die Container ou=addr und ou=Users welche beide auf der
gleichen
Ebene unter dc=dreampixel liegen. Aber was bedeutet nun

dn="ou=addr,uid=(.*)

Da ist irgendetwas falsch. Wenn es die DN
ou=addr,dc=dreampixel
ou=Users,dc=dreampixel
gibt, dann sollte vermutlich das Adressbuch für jeden User unterhalb
von ou=addr,dc=dreampixel angelegt werden. Unter dieser Voraussetzung
gilt
dann

Ja das scheint so geplant zu sein. Das Adressbuch eines Users ist dann
ein Blatt-Objekt, oder?


access to dn.regex="^(.+),uid=([^,]+),ou=addrs,dc=dreampixel$"
attrs=entry,children
by dn.regex="^uid=$1,ou=Users,dc=dreampixel$" write

Das habe ich nun so gesetzt. Muß der LDAP-Server nach dieser Änderung
eigentlich neu gestartet werden?

[...]
+, besagt, daß ein Eintrag vorhanden sein muß, ein Asteriks * würde
auch einen leeren Inhalt einschließen, das Dollarzeichen $ beendet den
regulären Ausdruck.

Ich habe dann ein * angegeben da das Blatt-Objekt für das
User-Adressbuch ja noch nicht existiert und durch OX angelegt wird.


Mein Problem ist das wenn ich über OX einen Kontakt hinzufügen
möchte
ich im groupware Log folgenden fehler bekomme:
javax.naming.NameNotFoundException: [LDAP: error code 32 - No Such
Object]; remaining name 'uid=17,ou=addr,uid=root,ou=Users

Wie sieht die Konfiguration des Adressbuches aus? Welche Searchbase
ist da definiert?

Für OX gibt es das o.g. ou für die User-Adressbücher und ein
o=AdressBook für das globale Adressbook. Hier drin wiederum gibt es
cn=AdressAdmins wo man User hinzufügen kann. Ich habe mich als User hier
auch schon hinzugefügt obwohl ich denke dass dies nicht richtig ist da
es bei jedem User ein Attribut:

writeGlobalAddressBook: TRUE

gibt. Ist das überhaupt möglich einmal o=... und einma ou=... für die
Container zu benutzen? OX hat eine Datei ldap.properties wo die
Konfiguration OX->LDAP geregelt ist. Hier finde ich zum Adressbuch
folgende Einträge:


com.openexchange.groupware.ldap.DefaultContactSupport.AddressAdminsAttributeMemberName=member


com.openexchange.groupware.ldap.DefaultContactSupport.AddressAdminsDN=cn=AddressAdmins,[globalAddressBookBaseDN]


com.openexchange.groupware.ldap.DefaultContactSupport.CREDENTIALS=uid=[uid],[userBaseDN],[credentialsBaseDN]


com.openexchange.groupware.ldap.DefaultContactSupport.credentialsBaseDN=[credentialsBaseDN]


com.openexchange.groupware.ldap.DefaultContactSupport.globalAddressBookBaseDN=o=AddressBook


com.openexchange.groupware.ldap.DefaultContactSupport.GlobalAddressBookDN=uid=[contactid],[globalAddressBookBaseDN]

Wenn es hilft kann ich die einzelnen Konfigurations-Dateien mal an eine
Mail hängen?

Wenn ich nun versuche einen persönlichen Kontakt hinzuzufügen erhalte
ich im Log:

javax.naming.NameNotFoundException: [LDAP: error code 32 - No Such
Object]; remaining name 'uid=22,ou=addr,uid=sven,ou=Users'

Wenn ich einen globalen Kontak hinzufüge bekomme ich keinen Fehler und
finde danach das Objekt im LDAP (o=AddressBook). Ich kann diesen Kontakt
zwar nicht auswählen aber das dürfte ein reines OX-Problem sein welches
ich dort mal in der Liste stelle.

Viele Grüße
Sven


< Previous Next >
Follow Ups
References