I was able to get Kayako to authenticate against Novell eDirectory with very little work and I thought I'd share my results.
I use OES Linux and so I don't know if everything is the same if one runs pure Netware, but I assume so.
There are 3 required attributes that are required to be in your LDAP-eDirectory attribute map:
One is 'mail' which is included in the map by default and will be populated as long as you have filled in your email field in eDirectory for each user.
The second is 'displayName' which will need to be manually created. In iManager click LDAP, then click on LDAP Options. Click on the LDAP group for the tree you wish to use for authentication. At the dropdown box on the top, select Attribute Map. Click the "+" button on the right hand side of the map listings. For eDirectory Attribute select "Full Name" and for Primary LDAP Attribute type in "displayName". Click OK and then click Apply to save the changes.
The third attribute is 'sAMAccountName' which is basically just your user ID. I could not find an attribute that was not already used in eDirectory and so I just made a very small patch to make LoginShare grab a different value from eDirectory. Here is the patch:
Code:
--- includes/LoginShare/activedirectory.login.php.orig 2007-07-18 16:12:48.000000000 -0400
+++ includes/LoginShare/activedirectory.login.php 2007-07-18 15:49:29.000000000 -0400
@@ -73,7 +73,7 @@
}
// By now we should have binded with the server
- $_ldapresults = ldap_search($_connection, $_loginshare["adbasedn"], "(&(samaccountname=" . trim(preg_replace( "/[^a-zA-Z0-9\-\_@\.]/", "" , $username)) . "))", array("samaccountname", "proxyAddresses", "mail", "distinguishedname", "displayName"), 0, 0, 10);
+ $_ldapresults = ldap_search($_connection, $_loginshare["adbasedn"], "(&(cn=" . trim(preg_replace( "/[^a-zA-Z0-9\-\_@\.]/", "" , $username)) . "))", array("cn", "proxyAddresses", "mail", "distinguishedname", "displayName"), 0, 0, 10);
if (!$_ldapresults)
{
return false;
@@ -91,7 +91,7 @@
// By now we should have the user details
$_fullname = $_results[0]["displayname"][0];
- $_username = $_results[0]["samaccountname"][0];
+ $_username = $_results[0]["cn"][0];
$_distinguishedname = $_results[0]["distinguishedname"][0];
$_maillist = array();
if (!empty($_results[0]["mail"][0]))
Now all that is left to do is login into the helpdesk as admin and configure the helpdesk to use "Active Directory/LDAP" or "Active Directory/LDAP SSL" as the login method. You can use your eDirectory credentials such as:
Base DN: ou=MyCorp,o=MyTree
RDN: cn=admin,o=MyTree
Let me know how it works out for you.