ApacheのLDAP認証で認証を行う権限を設定する

LDAPでアクセスできる領域を設定する場合は通常、slapd.confに下記のような設定をすると思います

access to dn.subtree="ou=limitgroup,dc=yourdomain,dc=com"
  by dn.subtree="ou=limitgroup,dc=yourdomain,dc=com" read
  by anonymous auth
  by * none

こんな感じの設定でlimitgroup以下のオブジェクトはlimitgroupに所属するLDAPアカウントでしかアクセスできなくなりますが、こうするとApacheのLDAP認証が通らなくなります。ApacheでLDAP認証を通すにはauthではなくreadの権限が必要になるためです。anonymousに対してreadを許可すれば認証も通りますが、いくらなんでも間口を広げすぎなので、Apacheでユーザーを検索するためのアカウントをLDAP上に作成してから、httpd.confに下記を追加します。

    AuthLDAPBindDN "uid=apache,dc=yourdomain,dc=com"
    AuthLDAPBindPassword yourpassword

slapd.conf側では下記の設定を入れてあげることでlimitgroupのユーザーとapacheユーザーのみlimitgroup以下のLDAPオブジェクトにアクセスできます

access to dn.subtree="ou=limitgroup,dc=yourdomain,dc=com"
  by dn.subtree="ou=limitgroup,dc=yourdomain,dc=com" read
  by dn="uid=apache,ou=limitgroup,dc=yourdomain,dc=com" read
  by anonymous auth
  by * none