Я не могу получить более 500 записей, когда запрашиваю свой openldap-сервер.
Хотя я внес следующие изменения:
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>
Во всех случаях
Кто может быть:
*
: все
анонимные
: неподключенный пользователь
пользователи
: все подключенные пользователи
dn.exact = "cn = xxxx, ou = people ...
: один пользователь
group / groupOfNames / member =" cn = manager, ou = groups ...
: группа пользователей
numberOfMaxResult может быть:
неограниченным
: неограниченным размером, очень плохая идея использовать эту конфигурацию в производстве
число (например, 300)
: максимальное количество записей результатов.
Если заданы ограничения как глобально, так и на пользователя, применяется ограничение на пользователя .
2. Сторона клиента
в файле конфигурации клиента ldap.conf:
SIZELIMIT <numberOfMaxResult>
Параметр запроса
ldapsearch -z 10 ...
ограничить результат до 10
Все клиентские API должны предоставлять такой параметр.
Если заданы ограничения на размер как на стороне сервера, так и на стороне клиента, применяется наименьшее число .
Это краткое резюме, для получения дополнительной информации в этом разделе:
man slapd.conf
man slapd-config
Конфигурация ограничений в руководстве администратора OpenLDAP .
Если вы запросите большой набор результатов в Active Directory (AD), вы получите сообщение об ошибке «Превышен предел размера»: поиск в Active Directory, выполняемый без разбиения на страницы, ограничивается возвратом максимум первые 1000 записей.
Способ обойти этот предел размера поиска - получить "страницы" результатов, также через ldapsearch.
Ldapsearch предоставляет опцию '-E', которая позволяет выполнять поиск по страницам.
Мы можем запросить все элементы большого набора результатов, просто указав правильную политику разбиения на страницы.
Например, мы можем использовать -E и указать значение pr = 1000 / 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