In my current customer I have to extract identity information from Critical Path directory. I was not able to find much information about this LDAP directory from the vendor’s website (http://www.criticalpath.net/Services/Training/Directory%20Server.html) neither in WikiPedia (http://en.wikipedia.org/wiki/Directory_service), so I first gave a try to built-in ILM 2007 FP1 MAs.

In particular, I was previously able to connect ILM to some Netscape-based LDAP directories such as Fedora Directory Server and OpenLDAP by using the “Sun and Netscape directory servers” Management Agent just by tweaking the iPlanetMASupportedServers registry key (http://support.microsoft.com/?kbid=842531) with what LDP shows in VendorVersion RootDSE property when connecting to it, such as in this example:

VendorVersion in LDP

I tried this, to discover that CP directory is not Netscape based directory, or at least it does not expose the VendorVersion property in the RootDSE that this MA looks for. I also gave a little chance to other built-in LDAP directories MAs such as “IBM Directory Server” or “Novell eDirectory” MA without success, but I had to try ;)

So before attempting to write an extensible MA or using a file-based MA, I then decided to give a try to OpenLDAP XMA (http://openldap-xma.sourceforge.net/). Despite of its name, this MA uses Microsoft .NET Framework 2.0 System.DirectoryServices.Protocols, so it works with other LDAP directories, even with Active Directory or ADAM if you want to.

After a few dives into this MA code and some testing, I was able to successfully import the identities I needed from Critical Path’s Directory Server. I will post the issues found during this MA usage in a future post.