May 01, 2007

Debian Etch + Apache2.2 で ActiveDirectory 認証にチャレンジ

Debian Etch で Apache2.2 から Windows 2003 Server の ActiveDirectory を使用してユーザ認証設定をした。 上手く行くまでに結構苦労したので、メモ。

今回は Subversion の認証を ActiveDirectory で行うことにした。 /etc/apache2/mods-available/dav_svn.conf を色々編集していたのだが、中々上手く行かなかった。 結局下記の様に設定することで正常にユーザ認証できるようになった。

<Location /svn>

    ...SNIP...

    AuthType Basic
    AuthName "Subversion Repositoryr"
    AuthBasicProvider ldap
    AuthLDAPUrl "ldap://pdc.example.com:389/OU=employees,dc=example,dc=com?sAMAccountName?sub?(objectClass=*)"
    AuthLDAPBindDN ldap@example.com
    AuthLDAPBindPassword ldap-user-password
    Require ldap-attribute objectClass=person

</Location>
  

AuthLDAPUrl、AuthLDAPBindDN、AuthLDAPBindPassword は色々なサイトに記述されている通りで問題は無かったのだが(強いて言えば、私の試した環境では AuthLDAPUrl に OU を指定しないと動作しなかった)、 Require ディレクティブの設定でかなり時間をかけてしまった。

Require ディレクティブに

    Require valid-user
    Require ldap-user
と記述すると、ActiveDirectory の認証は上手く行くのだが Apache が認証エラーを返してしまう。 その場合、Apache の error.log には何も表示されず原因が分かりづらい。 結局、mod_authnz_ldap のマニュアルに記述されていた Require ディレクティブの解説通りの設定をしたら正常に認証されるようになった。
Apache Module mod_authnz_ldap
http://httpd.apache.org/docs/2.2/mod/mod_authnz_ldap.html
require ldap-attribute
http://httpd.apache.org/docs/2.2/mod/mod_authnz_ldap.html#reqattribute

TrackBack ping me at
http://www.in-vitro.jp/blog/index.cgi/Linux/20070501_01.trackback
Post a comment

writeback message: Ready to post a comment.