Re: Kolab + OpenLDAP

"Jeroen van Meeuwen (Kolab Systems)" <[email protected]>
Newsgroups gmane.comp.kde.devel.kolab,gmane.comp.kde.kolab.devel
Message-ID <[email protected]>
On 2013-01-22 17:37, Diane Trout wrote:
> On Tuesday, January 22, 2013 12:03:45 Jeroen van Meeuwen wrote:
>> On 2013-01-22 06:31, Diane Trout wrote:
>>> Hi,
>>> 
>>> I made an attempt to run Kolab using OpenLDAP.
>>> 
>>> The kolab.ldif that you're shipping isn't quite compatible with how
>>> openldap
>>> likes their schema files. (I can provide the altered kolab2.ldif if
>>> you'd like)
>> 
>> I'm assuming you're speaking about the .schema vs. the standard .ldif
>> files format. Have you looked at the files we actually provide at
>> http://git.kolab.org/kolab-schema/tree/?
> 
> I definately know OpenLDAP wants schema files to use olcAtributeTypes 
> and
> olcObjectClasses. I modified the dn, and added the objectClass: 
> olcSchemaConfig
> and cn: kolab2 because all their provided schema files used that 
> format.
> 

Right, so do we need an OpenLDAP-specific copy of our schema in 
git.kolab.org/kolab-schema?

>> - That is where we best store enabled domain name spaces for Kolab,
>> - That is where VLV/SSS configuration can be detected.
> 
> What is VLV/SSS?
> 

Virtual List View[1] and Server-Side Sorting[2]

[1] http://tools.ietf.org/html/draft-ietf-ldapext-ldapv3-vlv-09
[2] http://tools.ietf.org/html/rfc2891

>>> I disovered that kolab wanted a domanRelatedObject and I didn't want
>>> to figure out how to create a cn=kolab,cn=config tree. so I attached 
>>> it to the
>>> root object for my ldap tree.
>> 
>> These are actually settings (see
>> http://git.kolab.org/pykolab/tree/conf/kolab.conf#n95), though I 
>> reckon
>> the web administration panel refers to 'domainrelatedobject' in some
>> places.
> 
> I discovered it wanted domainrelatedobject by looking at the LDAP 
> logs, so it
> is doing that search.
> 

Most of pykolab's interactions with LDAP are subject to configuration, 
though.

I think you must have found an LDAP log entry caused by the web admin, 
because other software uses something along the lines of 
(associateddomain=%s) or (associateddomain=*) - associateddomain being 
an attributetype to a domainrelatedobject objectclass though.

One could set up kolabd so that it polls 'ou=Domains' for 
'cn=domain.tld', and it would merely be the webadmin that requires the 
enhancement of allowing the specification of the objectclass(es) to use.

>>> Also it crashes if you set unique_attribute to entryUUID as pykolab 
>>> is
>>> assuming all attribute names are lower cased.
>> 
>> Supply the configuration value in all lower-case, please.
> 
> I figured that out, though it took a while. The error was an key 
> exception
> because it couldn't find entryUUID. It might be nice if some earlier 
> component
> either fixed the case, issued a warning, or there was an occasional 
> assertion
> that would error out on mixed case configuration files.
> 

Sure, I suppose this could be done in check_setting_*() callbacks in 
pykolab/conf/__init__.py, like we already execute them for CLI options.

>>> With all those changes from 0.5.11 packages:
>>> 
>>> kolabd -l debug -d 9 runs without sleeping
>>> kolab-webadmin can login but only shows the "About" button.
>> 
>> Do you have mozldap utilities "ldapsearch" installed, and if so, in
>> what location do they reside?
> 
> I just have the openldap ldap-utils package. I looked in the lxc 
> container
> with your installed packages and discovered the mozldap-tools package.
> 
> I'll have to investigate that.
> 

It's the mozldap-tools that have the necessary extensions to get to 
effectiverights, and it is them the web admin API will want to execute.

>>> roundcubemail seems to work fine (browsed mail, created a contact,
>>> viewed
>>> calendar).
>> 
>> It'd be lovely if we also had your notes on initially installing
>> OpenLDAP, and creating the default tree / setting the appropriate 
>> ACLs,
>> noted that in 389 DS, we can change these aspects in real-time, 
>> whereas
>> I recall OpenLDAP may still require us to put some files on the
>> filesystem and reload/restart the service.
> 
> OpenLDAP switched to configuration in ldap with 2.3. With 2.4 they 
> actually
> include checksums on their plain text configuration files to
> discourage you from
> modifying them by hand. e.g. to add a new schema I did:
> 
>    ldapadd -a -Y EXTERNAL -H ldapi:///  -f /tmp/rfc2739.ldif
> 
> Though they haven't implemented an easy way to delete or renumber 
> schema
> entries through ldap. It appears you still need to rm the file from
> /etc/ldap/slapd.d/cn=config/cn=schema.
> 
> I'll try to make coherent notes once I get enough working.
> 

Thank you, once we have a process that can be automated, it should be 
pretty simple and straightforward to allow a setup-kolab procedure to 
take a --with-ldap=openldap / --with-openldap.

Kind regards,

Jeroen van Meeuwen

-- 
Systems Architect, Kolab Systems AG

e: vanmeeuwen at kolabsys.com
m: +44 74 2516 3817
w: http://www.kolabsys.com

pgp: 9342 BF08
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.