Active Directoryに対してLDAP認証する - lighttpdのmod_auth

とりあえずこんなんで、WindowsActive Directoryドメインこさえてる場合はそれを認証サーバにできるす。

auth.backend               = "ldap"
auth.backend.ldap.hostname = "adservername"
auth.backend.ldap.base-dn  = "OU=diary,DC=AD,DC=hatena,DC=ne,DC=jp"
auth.backend.ldap.bind-dn  = "hatena\hirose31"
auth.backend.ldap.bind-pw  = "sorehaiente"
auth.backend.ldap.filter   = "(sAMAccountName=$)"

auth.require = ( "/himichu/" =>
                 (
                   "method"  => "basic",
                   "realm"   => "hanazono",
                   "require" => "valid-user"
                 ),
               )
$HTTP["url"] =~ "^/trac/.*/login" {
  auth.require = ( "/" =>
                   (
                     "method"  => "basic",
                     "realm"   => "trac",
                     "require" => "valid-user"
                   ),
                 )
}

Apacheのmod_auth_ldapでも同じようにできるんじゃないかと思います。が、Apacheならmod_smbauthを使う、という手もあります。

ただしこれ、次の2点でイマイチなんです:

  • 接続用のユーザ (bind-dn, bind-pw) が必要
    • (ADの設定によっては匿名での問い合わせができるそうですが)
  • 認証時のパスワードが平文で流れる
    • over SSLなldapsにするという手もアリ

ほんでこれらを解消すべく id:yasui0906 がなんかハックしてくれるそうなのでwktkして待ってる中です!