2018年2月27日火曜日

OpenLDAP でクライアントから Paged Results してるのに制限がかかる

どうも OpenLDAP のデフォルトでは、クライアントから Paged Results でページめくり
して全件持ってこようとしても slizelimit にひっかかり持ってこれない (rootdn でやれば
いいじゃんとかそういう突っ込みはいらない)。

どういうことかというと、ldapsearch で  -E pr=100 とかやって 5 ページ目以降をめく
ろうとしても、結果以下のようにデフォルトの slzelimit 500 にひっかかる。

# search result
search: 5
result: 4 Size limit exceeded

# numResponses: 503
# numEntries: 500

(ちなみに相手が AD なら -E pr=xxx を指定すれば何もしなくても全件取れる)

サーバ側に設定がいることを知らんかった。結論
として olcLimits に size.prtotal を無制限にする設定を入れれば回避できた。
hdb なら以下の LDIF で行ける。

dn: olcDatabase={2}hdb,cn=config
changeType: modify
replace: olcLimits
olcLimits: * size.prtotal=none