LDAPのコンシューマを設定。

くろねこ@辰巳

※写真と本文は関係ありません。


LDAP のスレーブを設定したのですが、くだらないところで引っかかったので記録しておく。


最終的にはこんな感じでOKになりました。

プロバイダ(マスター)側設定(openldap-2.3.43-25.el5_8.1)


$ cat /etc/openldap/slapd.conf #以下抜粋
# index 関係の設定
index entryCSN,entryUUID                eq

# syncprov の設定
overlay         syncprov
syncprov-sessionlog 100

コンシューマ(スレーブ)側設定(openldap-2.3.43-25.el5_8.1)


$ cat /etc/openldap/slapd.conf #以下抜粋
# index 関係の設定
index entryCSN,entryUUID                eq

# syncrepl 関係の設定
syncrepl rid=001
 provider=ldap://192.168.1.153
 type=refreshOnly
 interval=00:00:03:00
 searchbase="dc=fuuu,dc=example,dc=net"
 scope=sub
 bindmethod=simple
 binddn="cn=rootdn,dc=fuuu,dc=example,dc=net"
 credentials=fugafuga

どこがダメだったかというと…。


# syncrepl 関係の設定で
syncrepl rid=001
 provider=ldap://192.168.1.153
 type=refreshOnly
 interval=00:00:03:00
 searchbase="dc=fuuu,dc=example,dc=net"
 scope=sub
# こんな感じでコメントしたり
# attrs="*"
 bindmethod=simple
 binddn="cn=rootdn,dc=fuuu,dc=example,dc=net"
 credentials=fugafuga

こんな感じで、設定項目を付けたり外したりをコメントアウトでやってたんですが。どうもうまく設定ができていない。具体的にはrootdn(全ての要素にフルアクセス可)でアクセスしているはずなのにACLで制限のある要素が取得出来ない。(パスワード関係の要素はアクセス制限をかけてあるが、スレーブLDAPサーバなので全ての要素を取得したい。)

なぜダメかと、しばらく悩んだ結果。
海外のメーリングリストで『この設定は1行で…』(http://www.openldap.org/lists/openldap-software/200809/msg00156.html)というのを見かけて、実はこの設定項目複数行で設定してそうだけど、1行の設定を(行頭のスペースで前の行の続きを表すという書き方をして)複数行に書いてあるだけということに気づいたのでした。

これと同義。


syncrepl rid=001 provider=ldap://192.168.1.153 type=refreshOnly interval=00:00:03:00 searchbase="dc=fuuu,dc=example,dc=net" scope=sub# こんな感じでコメントしたりすると# attrs="*" bindmethod=simple binddn="cn=rootdn,dc=fuuu,dc=example,dc=net" credentials=fugafuga


こんな感じで、#以降がコメントになってしまって、ダメなのでした。
binddn以下がコメントになってると、anonymousでLDAP接続してアクセス制限のある項目がみえなくなるので正しい動きだったのでした。

はー、悩んだ!!