As an alternative one might think about writing
something which would
export the user information from a MW database to something standard
like LDIF which could then be imported into an LDAP server and would
then be useable by anything which could authenticate agains LDAP,
including Linux, Windows (Active Directory), and MW with one of the
LDAP extensions.
I think I was supposed to do this at one time for some project that was
started. The project died at some point so I never did this. Doing this
would probably be pretty easy, and I'll look into a good way of doing
it. Making something like this generic is probably pretty hard as you
never really know what objectclasses/attributes anyone is using, and it
varies widely between directory servers.
Then again, there are likely to be differences between
the MW user
model and the data needed for populating a standard authentication
system. The casing of usernames is one such problem as you point out.
Another is missing info, although this could probably be finessed by
the export program. The big problem is likely to be what to do with
the password. Although the MW password salting algorithm is
well-documented, I'm not sure that it corresponds to anything which
standards like LDAP specifiy.
If the wiki doesn't have any usernames that are the same, with different
case, you can use the renameuser special page to rename all of the users
to lowercase. The LDAP authentication plugin forces usernames to
lowercase when creating them, so this wouldn't be an issue after going
to LDAP.
I agree with using LDAP though. It would be a pain (and a lot of code)
to get everything authenticating off of MW. Why reinvent the wheel? LDAP
is specifically meant for this kind of thing. On an intranet it makes
sense as it is very nice to have *everything* authenticating from one
central repository, including your systems (which already have LDAP
authentication capability).
Unfortunately if you are using Windows you are pretty much stuck using
AD unless you want to use samba+openldap.
V/r,
Ryan Lane