Openldap-serverに照会すると、500を超えるエントリを受信できません。
次の変更を加えましたが:
slapd.conf
# This is the main slapd configuration file. See slapd.conf(5) for more
# info on the configuration options.
#######################################################################
# Global Directives:
.....
# The maximum number of entries that is returned for a search operation
sizelimit 10000
ldap.conf
#
# LDAP Defaults
#
# See ldap.conf(5) for details
# This file should be world readable but not world writable.
#BASE dc=example,dc=com
#URI ldap://ldap.example.com ldap://ldap-master.example.com:666
SIZELIMIT 10000
#TIMELIMIT 15
#DEREF never
# TLS certificates (needed for GnuTLS)
TLS_CACERT /etc/ssl/certs/ca-certificates.crt
マシンを再起動した後、次のコマンドをクエリします。
ldapsearch -x -h localhost -b "dc=XXX,dc=XXX,dc=XXX"
私は受け取ります:
# search result
search: 2
result: 4 Size limit exceeded
# numResponses: 501
# numEntries: 500
必要な変更をいくつか見逃しましたか?
OpenLDAP検索制限はサーバー側またはクライアント側で設定できます。
1。 slapd.confのデータベースセクションのサーバー側(古いスタイルの構成は非推奨ですが、鋼鉄は使用可能)またはcn = config(推奨)
データベースごとにグローバルに:
slapd.conf
_sizelimit <numberOfMaxResult>
_
cn = config
_olcSizeLimit: <numberOfMaxResult>
_
このパラメーターは必須ではありません。デフォルトは500です。
ユーザーごと:
slapd.conf
_limits <Who> size=<numberOfMaxResult>
_
cn = config
_olcLimits: <Who> size=<numberOfMaxResult>
_
すべての場合
だれがかもしれない:
_*
_:すべて
anonymous
:接続されていないユーザー
users
:接続されているすべてのユーザー
_dn.exact="cn=xxxx,ou=people...
_:1人のユーザー
_group/groupOfNames/member="cn=managers,ou=groups...
_:ユーザーのグループ
numberOfMaxResultは次のようになります:
unlimited
:無制限のサイズ。本番環境でこの構成を使用することは非常に悪い考えです
number (like 300)
:最大結果レコードの数。
グローバルとユーザーごとの制限サイズの両方が実行される場合、ユーザーごとの制限が適用されます。
2。クライアント側
ldap.confクライアント構成ファイル内:
_SIZELIMIT <numberOfMaxResult>
_
リクエストパラメータ
_ldapsearch -z 10 ...
_結果を10に制限
すべてのクライアントAPIがそのようなパラメーターを提供する必要があります。
サーバー側とクライアント側の両方の制限サイズが行われた場合、最小数が適用されます。
これはshortの要約です。このトピックの詳細については、次のとおりです。
_man slapd.conf
man slapd-config
_
Active Directory(AD)に大量の結果を要求すると、「サイズ制限を超えました」というエラーメッセージが表示されます。ページングなしで実行されたActive Directoryの検索は、最初の1000レコードの最大を返すことに制限されます。
この検索サイズ制限を回避する方法は、同様にldapsearchを介して結果の「ページ」を取得することです。
Ldapsearchには、ページ検索を実行できる「-E」オプションが用意されています。
適切なページングポリシーを提供するだけで、大きな結果セットのすべてのアイテムを要求できます。
たとえば、-Eを使用してpr = 1000/nopromptの値を指定すると、ユーザーが操作しなくても(noprompt)、ページごとに1000個の結果アイテムが返されます。
ldapsearch -E pr=1000/noprompt -x
-h adhost.domain.com
-p 389
-D cn=administrator,cn=users,dc=domain,dc=com
-w password
-s sub -b "OU=Users,DC=domain,DC=com"
"(objectClass=user)" dn