|
Table of Contents
Seamless AuthenticationSeamless authentication or Single Sign On (SSO) refers to where the browser does the authentication automatically for the user. No password is sent across the wire, they're all hashes (it's Samba voodoo). The protocol Microsoft uses to provide seamless browser authentation in a windows domain is called NTLM. More information on NTLM and the associated technologies are available at Wikipedia. Both Microsoft Internet Explorer and Mozilla Firefox readily support NTLM. There are hundreds of ways to do LDAP authentication and just as many Apache modules, but the adLDAP project only covers open source modules and methods that authenticate automatically for the user without the need for third party plugins on the client side. Seamless authentication methods include:
mod_auth_ntlm_winbind is the only known production standard solution to this problem. It's not a complete solution though, mod_auth_ntlm_winbind will only give you the logged in user and basic access control to the folder. mod_auth_ntlm_winbind can be used to determine the username of the user, and adLDAP can be used to interact with Active Directory based on the needs of the application (eg. group membership, AD manipulation, etc). There is a forum available on Sourceforge for discussion of these topics (particularly mod_auth_ntlm_winbind). mod_auth_ntlm_winbindmod_auth_ntlm_winbind is a project coming out of the wonderful world of Samba. Basically mod_auth_ntlm_winbind has taken the reigns for Mod_NTLM because they're probably the most qualified to do so :) It's not a 5 second answer, but unfortunately the configuration is out of necessity and it does work.
The fine print: mod_auth_ntlm_winbind does not work over HTTPS, you need to header redirect them to HTTP for authentication, and then header redirect them back into HTTPS mod_auth_kerbmod_auth_kerb information is incomplete, people are encouraged to contribute to this area.
The fine print: mod_auth_kerb requires you to setup an AD user account with ticket delegation authority for each HTTP domain (eg. if there are 10 domains on the web server, you will need to setup 10 user accounts).
More information on mod_auth_kerb is available at the project website http://modauthkerb.sourceforge.net/ Apache on Windows with mod_auth_sspimod_auth_sspi can provide seamless authentication for Apache on Windows. It's relatively undocumented though and we haven't tried it, so please refer to http://mod-auth-sspi.sourceforge.net/ for more information. IIS/PHPFormat the machine and install Linux (recommended), or remove anonymous access from the directory with the IIS management console, the username is available with $_SERVER[“LOGON_USER”]. Seamless authentication with Apache on Windows can be achieved with mod-auth-sspi Token Authentication with IISIIS and NTLM authentication “just work”. If _you_ can't skin the cat, find someone else to do it for you. This was really a round-about solution until mod_auth_ntlm_winbind was released. This is a basic breakdown. Although most people wouldn't use it in production anymore, it's an interesting way of doing authentication.
Mod_NTLMMod_NTLM works, but only some of the time when you're using it in a Windows 2000 or above environment, although it probably works quite well for NT4. There's some issue that prevents it working _every_ time, and when it doesn't authenticate correctly, the user gets a username/password/domain login dialogue. The user keeps putting in their password and you start getting account lockouts, and even when you unlock it you may still not get them in. This may not be Mod_NTLM's fault, I (scott) suspect it's some problem caused by Internet Explorer's header authentication changing between versions, but either way it's not something you could put in production. The Mod_NTLM project appears to be deprecated by mod_auth_ntlm_winbind Mod_NTLM is available at http://modntlm.sourceforge.net. |