Windows の Apache2 から ActiveDirectory で Basic 認証しようとしてハマった。OpenLDAP などとは違い、ActiveDirectory で LDAP 認証を行うには、AuthLDAPBindDN ディレクティブで
AuthLDAPBindDN admin@mydomain.com
のように AD の principal name を指定しなくてはいけないらしい。それから Win32版の Apache 2.0.55 では、認証を行おうとするとなぜか Apache ごと落ちてしまう。これは 2.0.59 に上げたら直った。
とりあえず 2.0.59 で httpd.conf に下記のような記述を行って、今のところうまくいっています。
LoadModule ldap_module modules/util_ldap.so
LoadModule auth_ldap_module modules/mod_auth_ldap.so…
<Location “/hoge/”>
AuthType Basic
AuthName “ldap login”## for Windows2003 ActiveDirectory
AuthLDAPBindDN admin@mydomain.com
AuthLDAPBindPassword adminpassword
AuthLDAPUrl “ldap://ldap.mydomain.com:389/
dc=mydomain,dc=com?sAMAccountName?
sub?(objectClass=*) ”
require valid-user
</Location>