Ldap

openldap 大小限制。不能接收超過 500 個條目

  • July 3, 2018

當我查詢我的 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=配置

olcSizeLimit: <numberOfMaxResult>

此參數不是必需的,預設為500

每個使用者:

slapd.conf

limits <Who> size=<numberOfMaxResult>

cn=配置

olcLimits: <Who> size=<numberOfMaxResult>

在所有情況下

可能是:

*: 全部

anonymous: 未連接使用者

users:所有連接的使用者

dn.exact="cn=xxxx,ou=people...: 一個使用者

group/groupOfNames/member="cn=managers,ou=groups...: 使用者組

numberOfMaxResult可能是:

unlimited:無限大小,在生產中使用這種配置是一個非常糟糕的主意

number (like 300):最大結果記錄數。

如果全域和每個使用者限制大小都完成,則應用每個使用者限制

2.客戶端

在 ldap.conf 客戶端配置文件中:

SIZELIMIT <numberOfMaxResult>

請求參數

ldapsearch -z 10 ...將結果限制為 10

所有客戶端 API 都應提供此類參數。

如果伺服器端和客戶端限制大小都完成,則應用最小的數字

這是一個簡短的摘要,有關本主題的更多資訊:

man slapd.conf
man slapd-config

限制 OpenLDAP 管理員指南中的配置

引用自:https://serverfault.com/questions/831596