tracの認証をActiveDirectoryで

でかいプロジェクト進行中なんですが、課題の管理やファイルの共有がemailのみで行われていて、しかも添付ファイルが全部ZIPで暗号化されているとか、ほんとにめんどくさい。でtracを使ってもらいたいなってことで自前で立ててみました。
いままでもtracは使っていたんですが、認証はhtpasswordで作ったファイルで自前認証。せっかくなのでfastcgitracを動かした上で、ldap(ActiveDirectory)認証にしてみました。

前提条件

前提条件としてtracfastcgi経由で動作するように設定済。/projectが fastcgicgiにアライアスされているものとします。

ScriptAlias    /project    /usr/local/apache2/cgi-bin/trac.fcgi

設定

こんな設定になりました。結構試行錯誤しました。

<Location "/project">
    AuthType                    Basic
    AuthBasicProvider           ldap
    AuthName                    "Enter your ID"
    AuthLDAPBindDN              administrator@example.com
    AuthLDAPUrl                 "ldap://server-address:389/dc=example,dc=com?sAMAccountName?sub?(objectClass=*)"
    AuthLDAPBindPassword        "password"
    Require                     ldap-attribute objectClass=person
    Order                       Allow,Deny
    Allow from                  All
</Location>

Requireのところ。validuserとかじゃNG。特定のユーザだけ認証させたい場合は、objectClassや、他の属性でコントロールできるみたい。
/projectへアクセスすると基本認証画面がでてきて、それで認証させるとtracに当該ユーザでログインした状態になります。管理ユーザ設定する場合はtrac_adminでユーザを指定。

/usr/local/trac_env/bin/trac-admin /usr/local/trac/project permission add hogehoge TRAC_ADMIN