web-dev-qa-db-ja.com

openldap sizelimit。 500件を超えるエントリは受信できません

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

必要な変更をいくつか見逃しましたか?

3
JMAD2016

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
_

OpenLDAP管理者ガイドの設定を制限します

8

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
0
Chris Kevin