LDAP address book trouble [was: Re: Migrate Exchange 5.0 to Kolab 2]

Martin Minkler minkler at artegic.de
Thu Aug 31 11:55:05 CEST 2006


Alohá!

Some more information on the address book communication:

the hostname of the kolab server is hive.<domain>.local

The following came out from looking at packet dumps on the client 
machine (only excerpts limited to relevant information):

When opening the ldap server address book from Outlook2003 with the base DN

dc=hive,dc=<domain>,dc=local

the client issues the bind request:
------------------------------
ldap.bind.dn = DN: (null)
ldap.bind.auth_type = Auth Type: Simple (0x00)
ldap.bind.password = Password: (null)
------------------------------
the server accepts with bind result:
------------------------------
ldap.result.code = Result Code: success (0x00)
ldap.result.matcheddn = Matched DN: (null)
ldap.result.errormsg = Error Message: (null)
------------------------------
but then the client asks search request:
------------------------------
ldap.search.basedn = Base DN: (null)
ldap.search.scope = Scope: Base (0x00)
ldap.search.dereference = Dereference: Never (0x00)
ldap.search.typesonly = Attributes Only: False
ldap.search.filter = Filter: (objectclass=*)
ldap.attribute = Attribute: objectClass
ldap.attribute = Attribute: supportedControl
ldap.attribute = Attribute: supportedCapabilities
------------------------------
Why doesn't it ask the base DN I entered in the options field in 
outlook? Is this supposed to return the whole tree?
Now the server responds with search entry:
------------------------------
ldap.dn = Distinguished Name: (null)
ldap.attribute = Attribute: objectClass
	ldap.value = Value: top
	ldap.value = Value: OpenLDAProotDSE
	ldap.value = Value: kolab
ldap.attribute = Attribute: supportedControl
	ldap.value = Value: 2.16.840.1.113730.3.4.18
	[...]
------------------------------
and then sends the search result:
------------------------------
ldap.result.code = Result Code: success (0x00)
ldap.result.matcheddn = Matched DN: (null)
ldap.result.errormsg = Error Message: (null)
------------------------------

But now for an even more curious part, the same base DN set for a 
Thunderbird LDAP address book and Thunderbird requesting a complete 
offline copy, communication looks a bit different:

bind request and bind result are the same, so omitted here, but the 
search request shows the proper Base DN:
------------------------------
ldap.search.basedn = Base DN: dc=hive,dc=<domain>,dc=local
ldap.search.scope = Scope: Subtree (0x02)
------------------------------
the search result:
------------------------------
ldap.result.code = Result Code: noSuchObject (0x20)
------------------------------

Now, if I use the Base DN dc=<domain>,dc=<tld> that is shown in the web 
interface of kolab when creating a new external user in the address book 
(actually it shows cn=<username>,cn=external,dc=<domain>,dc=<tld>), the 
search request shows that Base DN:
------------------------------
ldap.search.basedn = Base DN: dc=<domain>,dc=de
ldap.search.scope = Scope: Subtree (0x02)
------------------------------
the search entry returns:
------------------------------
ldap.dn = Distinguished Name: dc=<domain>,dc=<tld>
ldap.attribute = Attribute: dc
	ldap.value = Value: <domain>
ldap.attribute = Attribute: objectClass
	ldap.value = Value: top
	ldap.value = Value: domain
------------------------------
a second search entry packet following right behind it:
------------------------------
ldap.dn = Distinguished Name: cn=external,dc=<domain>,dc=<tld>
ldap.attribute = Attribute: cn
	ldap.value = Value: external
ldap.attribute = Attribute: objectClass
	ldap.value = Value: top
	ldap.value = Value: kolabNamedObject
------------------------------
The same follows for cn=groups and cn=resources and after that all the 
entries of the ldap tree are returned to the client!

To make things even more frustrating Thunderbird only triggered this 
communication when requesting an offline copy of the address book, 
otherwise nothing was said between client and server and even then, 
after the server returned all the entries of the tree, the address book 
in thunderbird stayed blank, nothing, zilch.
At least it did get a response from the server and even a proper one 
(judging from my very-little-ldap-knowledge-point-of-view) after issuing 
a request while Outlook simply ignored the Base DN I set.

Does anybody have any clue as to why

- Outlook does not use the base dn set in the options

- there is no communication from Thunderbird if no full offline copy is 
requested manually (OT, I know)

- The base DN set to the server name as described in the tutorial 
(dc=hive,dc=<domain>,dc=local) returns no results

- a completely different Base DN build from the mail domain does indeed 
return _all_ entries (maybe because the users email fields contain that 
value dc=<domain>,dc=<tld>)

- even after a successful query the address book in Thunderbird still 
stays blank (again OT I guess)

Thanks for digging through this LONG post!


not giving up hope

Martin




More information about the users mailing list