[dev] Active Directory Development
Mike Peachey
mike.peachey at jennic.com
Fri Jan 18 16:40:00 UTC 2008
I am looking for some advice.
I am attempting to put get horde-webmail-1.0.4 going in a production
environment with Authentication and Grouping based on Active Directory
from a Win2003 AD server. The problem is there are a lot of changes I
need to make to make it properly compatible.
For example, in Groups/ldap.php, the function getGroupMemberships
searches LDAP groups for member=username when in AD this is served up as
member=User's full DN. My temporary solution to this is to add a third
parameter that is false by default in getGroupMemberships, and then when
the group memberships are requested in services/shares/edit.php, I pass
the third parameter $auth->_findDN(Auth::getAuth()) to correctly search
for groups.
The problem with this one is that I don't yet know where else in the
code I am going to have to make changes to allow for this, and once I
do, I am going to have to document every single change and then re-make
them when the system is upgraded.
There is another one that I haven't started on yet which is nested
groups in Active Directory. Currently, Horde will search for group
memberships only at one level, but I need it to check for group members
that are groups, and then recursively search through them too. But
before I start on this task, I'd rather ensure that my changes have a
chance of making it into the Horde source, or at least make the changes
AROUND the current source, so that when I upgrade at a later date, the
changes will remain or will be easy to replace.
I have two problems with this:
1. Because I'm not totally familiar with the design structure of Horde,
it is going to take me a while to actually work out HOW I should be
doing things and how certain modules are extending each other and what
public functions I should be aware of. For example, in creating a new
section of code or making specific changes to functions to take account
of AD compatibility, I don't know whether I should be adding a whole new
authentication module called AD as a selectable option instead of ldap
and pam and the rest, or whether I should be adding a true/false
condition within the current LDAP structure that says "this LDAP
is/isn't an AD server".
2. I'm currently working on the source of horde-webmail-1.0.4 which is
already out of date, if I'm going to develop new code for the project
(assuming I'm even allowed to) then I should be working out of the
current CVS HEAD. The problem with this is that, at the same time, I'm
still trying to run Horde in a production environment and I don't know
how likely I am to come across really serious bugs within the current
source that are going to adversely affect users.
I could really do with some advice here - I'm not used to contributing
to projects, usually I'm just making subtle changes to integrate things
into our environment (such as the hell I had with customising RT) - but
the number of changes that I need to make for Horde AD integration means
it's really worth my while trying to properly help out with the project
as a whole for my benefit and everyone else's.
My mind is hanging by a thread now thanks to that large section of
verbal diarrhoea, so I shall stop now - but if someone could get back to
me about this I'd really appreciate it.
--
Kind Regards,
__________________________________________________
Mike Peachey, IT
Tel: +44 114 281 2655
Fax: +44 114 281 2951
Jennic Ltd, Furnival Street, Sheffield, S1 4QT, UK
Comp Reg No: 3191371 - Registered In England
http://www.jennic.com
__________________________________________________
More information about the dev
mailing list