When I wrote about Accessing Mac OS X AddressBook via LDAP on your network, Alex Hartner of addressbookserver.com took my gripes about the missing additional fields I wanted copied to my LDAP directory seriously, and he has updated Address Book X LDAP (ABxLDAP) accordingly.
Some of the fields I was interested in where the spouse and child values of Mac OS X’ AddressBook.
I can now map these fields in ABxLDAP and have them copied over to my LDAP server (I use OpenLDAP, of course.)
What I did was to think up some names of attribute types, which I then added
to the ABxLDAP LDAP schema file. The file is supplied by ABxLDAP, and it is
abxldap.schema. The attributes I added are:
(Note: In the example above, you see the OID Arc number 23214 which is provided by and belongs to ABxLDAP. Don’t hijack somebody else’s OIDs – they may be in use. I’m using that here just as an example – I actually use my own OID arc.)
I then added these additional attributes to the object class definition for
abxldapPerson a little bit further down in the same file:
Next I located the file where ABxLDAP maps Address Book values to LDAP
attribute types (this is well described in ABxLDAP’s documentation). I
modified the file
Support/ABxLDAP/com.j2anywhere.ABxLDAP.LDAPMAP.plist with a text editor and
added the following lines to the end of the file (just before the closing
</dict> tag). Here is the XML snippet I added:
After disabling ABxLDAP in preferences and re-enabling it, the synchronization
starts up, and a few seconds later I see the values in my LDAP directory. If I
ldapsearch for Jane, I see:
Very nice indeed; just what I wanted. ABxLDAP is getting better and better.
Alex has pointed out once again, that he considers their Address Book and Calendar Server to be a far better product, and it probably is, due to the synchronization features it carries. Unfortunately, I haven’t as yet had time to experiment with it, but I will as soon as possible.