[deep breath, disclaimer: I am a knowledgeable end user, having administered a LAN of Linux and Windows PCs at home for several years, but I don't code and I knew nothing of LDAP until recently. I originally submitted this to openldap-software, but the moderator said it was more appopriate for this list. I have lurked for a week with increasing agitation at my lack of technical knowledge - apologies if this question is too stupid for most of you.]
I run an IMAP server on my Linux box at home (Debian Etch), so that I can read my mail from anywhere, using any IMAP client (Outlook at work, Evolution at home, Thunderbird at my in-laws, etc.). I got frustrated with having to export and import my contacts all the time, never remembering which client had the most up-to-date set. So I looked into setting up my own LDAP server so they could live in one place, available to any client, just like the email.
Sadly it doesn't seem to be that simple. Apt-get install slapd went fine - Debian was even so kind as to set up a bdb database for me with suffix "dc=mydomain", so all I had to do was create a rootdn and rootpw in slapd.conf. I painstakingly exported my contacts from Outlook as CSV, via Evolution as vCard then via http://labs.brotherli.ch/vcfconvert/ into LDIF. But trying to import the result into slapd gave lots of errors, and this is when I discovered the joys of schemata. The vCard-to-LDIF converter uses a variant Mozilla-address-book schema which slapd doesn't understand. I tried tweaking the LDIF file with this python script (http://aspn.activestate.com/ASPN/Cookbook/Python/Recipe/476224) but that fell over because some of my contacts don't have email addresses. So slapd is up and running but I have no way of importing my contact info without doing some Python hacking or re-keying the info (about 400 records).
Basic question: is there an existing schema that I can include in slapd.conf which will allow my contacts to be intelligible to all the clients I use (let alone might use)? They are just basic person data: names, postal addresses, phone/fax numbers, email addresses, etc.
Assuming no, can I combine a schema for each client, if I can find one? For example, the Mozilla one is here (https://bugzilla.mozilla.org/attachment.cgi?id=166746), which will work for Thunderbird, SeaMonkey etc. If I can find one for Evolution and one for Outlook, could I just include them all, or would there be incompatibilities? (Even if there aren't, a quick look at the Mozilla one leads me to suspect that I would need to duplicate numerous fields.)
Does anyone successfully use LDAP with multiple clients? Is there an easy way to do it? Judging from the 'AD-style AUX classes' thread there are some issues with Outlook - in the first instance I would be happy if both Evolution and Thunderbird/SeaMonkey could see and edit the same contact data.
Thanks in advance for any help, and apologies for the lengthy footer over which I have no control,
CC
This e-mail may contain information which is confidential, legally privileged and/or copyright protected. This e-mail is intended for the addressee only. If you receive this in error, please contact the sender and delete the material from your computer
--On Monday, January 21, 2008 3:07 PM +0000 "Carr, Chris" Chris.Carr@camden.gov.uk wrote:
Basic question: is there an existing schema that I can include in slapd.conf which will allow my contacts to be intelligible to all the clients I use (let alone might use)? They are just basic person data: names, postal addresses, phone/fax numbers, email addresses, etc.
No. The people who wrote email clients have all decided they each want things in their own schema, more or less, so they are generally inoperable. You have to have slapd load the schema bits each one wants, and populate all of those bits, if you want all of them to be happy. I've filed bugs with numerous email client authors to fix their things to not rely on custom schema, or to allow the customization of what fields they look for, with little success. Eudora at one time was the best client in honoring custom schema, but they've morphed into thunderbird, so that pretty much kills that.
Most of the clients will understand the general RFC fields, but you lose the specific customizations they've made.
--Quanah
--
Quanah Gibson-Mount Principal Software Engineer Zimbra, Inc -------------------- Zimbra :: the leader in open source messaging and collaboration
Quanah Gibson-Mount wrote:
--On Monday, January 21, 2008 3:07 PM +0000 "Carr, Chris" Chris.Carr@camden.gov.uk wrote:
Basic question: is there an existing schema that I can include in slapd.conf which will allow my contacts to be intelligible to all the clients I use (let alone might use)? They are just basic person data: names, postal addresses, phone/fax numbers, email addresses, etc.
No. The people who wrote email clients have all decided they each want things in their own schema, more or less, so they are generally inoperable. You have to have slapd load the schema bits each one wants, and populate all of those bits, if you want all of them to be happy. I've filed bugs with numerous email client authors to fix their things to not rely on custom schema, or to allow the customization of what fields they look for, with little success. Eudora at one time was the best client in honoring custom schema, but they've morphed into thunderbird, so that pretty much kills that.
Most of the clients will understand the general RFC fields, but you lose the specific customizations they've made.
Still, it would probably be worth spending a few days effort to collect the different schema together and define a superset that contains all of their respective customizations. Then you can use back-relay and the rewrite overlay to present the client-specific views to each client. The result of that effort would make a fine entry in the FAQ-o-Matic.
-----Original Message----- From: Howard Chu [mailto:hyc@symas.com] Sent: 22 January 2008 03:16 Subject: Re: Need a multi-client schema
Quanah Gibson-Mount wrote:
Chris.Carr@camden.gov.uk wrote:
Basic question: is there an existing schema that I can include in slapd.conf which will allow my contacts to be intelligible to all the clients I use (let alone might use)?
No. The people who wrote email clients have all decided they each want things in their own schema, more or less, so they are generally
inoperable. You have to have slapd load the schema bits each one wants, and populate all of those bits, if you want all of them to be
happy. I've filed bugs with numerous email client authors to fix their things to not rely on custom schema, or to allow the customization of what fields they look for, with little success. Eudora at one time was the best client in honoring custom schema,
but
they've morphed into thunderbird, so that pretty much kills that.
Most of the clients will understand the general RFC fields, but you lose the specific customizations they've made.
Still, it would probably be worth spending a few days effort to
collect the
different schema together and define a superset that contains all of
their
respective customizations. Then you can use back-relay and the rewrite
overlay
to present the client-specific views to each client. The result of
that effort
would make a fine entry in the FAQ-o-Matic.
Thanks for the replies. Is there another way of doing this? Instead of trying to create some super-schema for my server (which would be outdated every time any of the clients altered its schema), could I not simply replace each client's schema with a consistent one?
Let's say that the three clients I want to share contacts are Outlook, Evolution and Thunderbird. Would it be possible to use the AD schema for the LDAP server and for all three clients, replacing the default schemata of Evolution and Thunderbird?
If this is not possible, how would the super-schema solution propagate changes made by one client to the data visible to another? (Presumably this is where "back-relay and the rewrite overlay" come in - will have to read up on these.)
I found the Evolution schema, though I don't know how up-to-date it is:
http://cvs.mandriva.com/cgi-bin/viewvc.cgi/SPECS/openldap/evolutionperso n.schema?view=co
... so I can try combining it with the Mozilla schema and see how far I get before taking on Outlook. Does anyone know where to find the AD schema? I can find dozens of pages about it, but can't actually download it from any of them.
Yet another way of looking at this is to consider that the combination of core, cosine and inetorgperson provides all the fields you need in a basic address book, and it should be possible to get all the clients (at least the non-MS ones) using that.
I'll report back if I make any progress, but Google shows that people have been struggling with this problem since the dawn of LDAP, so I'm not overly optimistic.
CC
This e-mail may contain information which is confidential, legally privileged and/or copyright protected. This e-mail is intended for the addressee only. If you receive this in error, please contact the sender and delete the material from your computer
Carr, Chris wrote:
-----Original Message----- From: Howard Chu [mailto:hyc@symas.com] Sent: 22 January 2008 03:16
Still, it would probably be worth spending a few days effort to
collect the
different schema together and define a superset that contains all of
their
respective customizations. Then you can use back-relay and the rewrite
overlay
to present the client-specific views to each client. The result of
that effort
would make a fine entry in the FAQ-o-Matic.
Thanks for the replies. Is there another way of doing this? Instead of trying to create some super-schema for my server (which would be outdated every time any of the clients altered its schema), could I not simply replace each client's schema with a consistent one?
Let's say that the three clients I want to share contacts are Outlook, Evolution and Thunderbird. Would it be possible to use the AD schema for the LDAP server and for all three clients, replacing the default schemata of Evolution and Thunderbird?
Since Evolution and Thunderbird are open source, you can of course modify them to do whatever you want.
If this is not possible, how would the super-schema solution propagate changes made by one client to the data visible to another? (Presumably this is where "back-relay and the rewrite overlay" come in - will have to read up on these.)
Yes, you would create one main directory with the superset of data elements and use back-relay to present distinct virtual directories to each client so they will only see the attributes they're looking for. The rewrite overlay would translate attribute names back and forth so that there aren't multiple copies of identical data.
I found the Evolution schema, though I don't know how up-to-date it is:
http://cvs.mandriva.com/cgi-bin/viewvc.cgi/SPECS/openldap/evolutionperso n.schema?view=co
... so I can try combining it with the Mozilla schema and see how far I get before taking on Outlook. Does anyone know where to find the AD schema? I can find dozens of pages about it, but can't actually download it from any of them.
As usual, Microsoft is not very forthcoming with docs, but there's quite a bit of analysis already done here.
http://www.openldap.org/faq/data/cache/295.html
Yet another way of looking at this is to consider that the combination of core, cosine and inetorgperson provides all the fields you need in a basic address book, and it should be possible to get all the clients (at least the non-MS ones) using that.
I'll report back if I make any progress, but Google shows that people have been struggling with this problem since the dawn of LDAP, so I'm not overly optimistic.
CC
Let's say that the three clients I want to share contacts are Outlook, Evolution and Thunderbird. Would it be possible to use the AD schema for the LDAP server and for all three clients, replacing the default schemata of Evolution and Thunderbird?
Since Evolution and Thunderbird are open source, you can of course modify them to do whatever you want.
Um, yes. I meant would it be possible without recompiling anything. Evolution, for example, can import a CSV file of Outlook contacts perfectly, so the mapping is stored somewhere. If it's in an external file, and the evolutionperson.schema is also read from an external file, it might be possible to persuade Evolution to use Outlook fields by default. If the schema is hard-coded, then yes it would need source hacking and recompiling, which is not worth the trouble.
I get before taking on Outlook. Does anyone know where to find the AD schema? I can find dozens of pages about it, but can't actually download it from any of them.
As usual, Microsoft is not very forthcoming with docs, but there's quite a bit of analysis already done here. http://www.openldap.org/faq/data/cache/295.html
Ah, thanks. That's very helpful.
CC
This e-mail may contain information which is confidential, legally privileged and/or copyright protected. This e-mail is intended for the addressee only. If you receive this in error, please contact the sender and delete the material from your computer
Carr, Chris wrote:
Let's say that the three clients I want to share contacts are Outlook, Evolution and Thunderbird. Would it be possible to use the AD schema for the LDAP server and for all three clients, replacing the default schemata of Evolution and Thunderbird?
Since Evolution and Thunderbird are open source, you can of course modify them to do whatever you want.
Um, yes. I meant would it be possible without recompiling anything. Evolution, for example, can import a CSV file of Outlook contacts perfectly, so the mapping is stored somewhere. If it's in an external file, and the evolutionperson.schema is also read from an external file, it might be possible to persuade Evolution to use Outlook fields by default. If the schema is hard-coded, then yes it would need source hacking and recompiling, which is not worth the trouble.
Your searches seem to have missed some useful hits: http://feldt.com/work/projects/openLDAP/
includes scripts for importing Outlook CSV exports to LDIF, and Vcards to LDIF. So apparently someone else has already figured out what schema are involved.
I get before taking on Outlook. Does anyone know where to find the AD schema? I can find dozens of pages about it, but can't actually download it from any of them.
As usual, Microsoft is not very forthcoming with docs, but there's quite a bit of analysis already done here. http://www.openldap.org/faq/data/cache/295.html
Ah, thanks. That's very helpful.
-----Original Message----- From: Howard Chu [mailto:hyc@symas.com] Sent: 23 January 2008 08:24
Carr, Chris wrote:
Let's say that the three clients I want to share contacts are Outlook, Evolution and Thunderbird. Would it be possible to use the AD schema for the LDAP server and for all three clients, replacing the default schemata of Evolution and Thunderbird?
Since Evolution and Thunderbird are open source, you can of course modify them to do whatever you want.
Um, yes. I meant would it be possible without recompiling anything. Evolution, for example, can import a CSV file of Outlook contacts perfectly, so the mapping is stored somewhere. If it's in an external file, and the evolutionperson.schema is also read from an external file, it might be possible to persuade Evolution to use Outlook fields by default. If the schema is hard-coded, then yes it would need source hacking and recompiling, which is not worth the trouble.
Your searches seem to have missed some useful hits: http://feldt.com/work/projects/openLDAP/
includes scripts for importing Outlook CSV exports to LDIF, and Vcards
to LDIF. So apparently someone else has already figured out what
schema
are involved.
Um, no. If you study that page closely, you see that the author is merely showing how to put a set of Evolution contacts and a *separate* set of Outlook contacts into the same LDAP address book. There is no mention of combining the data, or of propagating changes from one set to the other. Specifically, there is no mention of a schema for Outlook (he does include the evolutionperson.schema in slapd.conf, but without any other mention of it). Whether the scripts to convert CSV and vCard formats to LDIF actually do attribute/schema remapping as well is a moot point, as both the links are broken.
Thanks anyway. It does at least confirm for me that Evolution reads its schema from an external file, so it should be easy enough to edit that.
CC
This e-mail may contain information which is confidential, legally privileged and/or copyright protected. This e-mail is intended for the addressee only. If you receive this in error, please contact the sender and delete the material from your computer
openldap-technical@openldap.org