lighttpd の認証を LDAP で

おうち trac が認証を一切せずに、誰でも wiki の書き換えができたり、ticket の発行ができたり、という状態だったので、それはまずかろうってことで認証かけることにした。

「trac を lighttpd + FastCGI で動かす」 で触れたとおり、trac は lighttpd 上で動いているので、認証は lighttpd で設定します。やりかたは lighttpd のサイトにある 「Using Authentication Module: mod_auth」 の通りなので、あまり難しいことはないのですが、とりあえずやったことをメモ。

うちの Linux サーバ上で動いているサービスは、ほとんどが LDAP で認証しているので、lighttpd も LDAP で認証するようにします。

まず、lighty のデフォルト configure オプションでは、auth_ldap が disable になってるので、以下の様にして再インストール。

$ ./configure --with-ldap
$ make
$ sudo make install

でもって、/usr/local/etc/lighttpd.conf を書き換え。関連する部分だけ抜き出すとこんな感じ。

server.modules              = (
                               "mod_auth",
                               "mod_fastcgi",
                              )

auth.backend = "ldap"
auth.backend.ldap.hostname = "kenny"
auth.backend.ldap.base-dn = "ou=people,o=southpark"
auth.backend.ldap.filter = "(uid=$)"

auth.require = ( "/public/login" =>
                 (
                   "method"  => "basic",
                   "realm"   => "trac admin area",
                   "require" => "user=xxx"
                  )
                )

これで lighty を再起動すれば OK。あとは「Trac Permissions」 を参照しながら trac-admin コマンドでパーミッション設定。Web Admin Plugin を導入している場合は trac-admin 使わずにウェブから設定。