Административные ограничения LDAP
Служба каталогов предоставляет возможность задания ограничений на запросы к серверу LDAP для тонкой настройки взаимодействия с клиентами с учетом требований к производительности, надежности и безопасности.
Реализация ограничений
В службе каталогов ограничения на запросы к серверу LDAP реализуются в виде политик, представляющих собой объекты класса queryPolicy.
Данные объекты размещаются в контейнере CN=Query-Policies,CN=Directory Service,CN=Windows NT,CN=Services,CN=Configuration,DC=<domain>.
Каждая политика состоит из набора пар ограничение-значение, хранящегося в атрибуте lDAPAdminLimits объекта queryPolicy.
По умолчанию при развертывании службы каталогов создается и применяется политика Default Query Policy.
Для изменения значений с целью оптимизации работы отдельных контроллеров домена или группы контроллеров домена в пределах сайта рекомендуется:
-
Создать новую политику с требуемыми значениями ограничений в контейнере
Query-Policiesв корневом домене леса. -
Добавить политику в атрибут
queryPolicyObjectобъектаNTDS Settingsконтроллера домена (объектnTDSDSA) или сайта (объектntDSSiteSettings).
Контроллер домена обрабатывает и применяет ограничения в следующей последовательности:
-
Если в дочернем объекте
NTDS SettingsобъектаnTDSDSAприсутствует атрибутqueryPolicyObject, применяются заданные в нем ограничения. Обработка прекращается. -
Если для контроллера домена не задана отдельная политика, проверяется дочерний объект
NTDS SettingsобъектаntDSSiteSettingsтого сайта, в котором находится контроллер домена. Если он содержит атрибутqueryPolicyObject, применяются заданные в нем ограничения. Обработка прекращается. -
Если на уровне сайта также отсутствует отдельный объект
queryPolicy, применяются ограничения, заданные вDefault Query Policy.
Поддерживаемые ограничения
Пакет inno-samba поддерживает обработку следующих ограничений для операций LDAP:
-
InitRecvTimeout— максимальное время (в секундах), в течение которого контроллер домена ожидает от клиента первый запрос к серверу LDAP после создания нового входящего подключения (значение по умолчанию —120);Если при первом подключении клиент не присылает запрос в течение заданного промежутка времени, сервер LDAP разрывает соединение.
-
MaxConnIdleTime— максимальное время бездействия клиента (в секундах), по истечении которого сервер LDAP разрывает соединение с ним (значение по умолчанию —900);Если клиент не использует установленное ранее подключение дольше заданного промежутка времени, сервер LDAP возвращает нотификацию о разрыве соединения.
-
MaxPageSize— максимальное количество объектов, возвращаемых в ответ на один поисковый запрос к серверу LDAP (значение по умолчанию —1000);Если в результате поиска нашлось больше объектов, чем задано ограничением, возвращается только количество, удовлетворяющее ограничению, с кодом результата LDAP
4и сообщением "Size Limit Exceeded". В этом случае для получения полного набора объектов клиент должен использовать запросы с постраничным выводом результата (paged search).При использовании клиентом запросов с постраничным выводом ограничение задает максимальный размер одной страницы с результатами. Если клиент в параметрах запроса передает размер страницы, превышающий данное ограничение, при формировании ответа вместо переданного параметра используется значение ограничения.
-
MaxValRange— максимальное количество значений одного атрибута одного объекта, возвращаемое в ответ на запрос к серверу LDAP, независимо от того, сколько атрибутов объекта и сколько объектов найдено при обработке запроса (значение по умолчанию —1500);Данное ограничение применяется к атрибутам, которые могут иметь множество значений. Для получения полного списка значений атрибута при превышении заданного ограничения должен использоваться механизм инкрементального извлечения подмножеств значений путем задания диапазона (с помощью опции
range) в каждом отдельном запросе.Подмножество задается в следующем формате:
range=<low range>-<high range>
В подмножестве:
-
<low range>— индекс первого запрашиваемого атрибута, начиная с нуля; -
<high range>— отсчитываемый от нуля индекс последнего запрашиваемого значения атрибута; для указания всех оставшихся значений может использоваться специальный символ*.
Примеры задания подмножества значений атрибута:
Пример Возвращаемые значения range=0-*Сервер возвращает все значения атрибута в рамках заданного ограничения
MaxValRangerange=0-500Сервер возвращает значения атрибута с 1 по 501 включительно
range=2-3Сервер возвращает третье и четвертое значения атрибута
range=501-*Сервер возвращает 502-е значение и все последующие значения атрибута в рамках заданного ограничения
MaxValRange -
-
MaxNotificationPerConn— максимальный размер очереди запросов клиента в рамках одного подключения (значение по умолчанию —5);При достижении заданного предельного значения сервер возвращает ошибку в ответ на любой новый запрос, поступающий в рамках того же подключения.
-
MaxQueryDuration— максимальное время (в секундах) обработки контроллером домена одного поискового запроса (значение по умолчанию —120).Время считается с момента поступления запроса.
При достижении заданного предельного значения контроллер домена код результата LDAP
3с сообщением "Time Limit Exceeded".
Просмотр значений ограничений
Для просмотра значений ограничений LDAP, установленных политикой по умолчанию (Default Query Policy) или политикой на уровне сайта либо контроллера домена, используйте команду (см. подробнее
в разделе «Администрирование ограничений LDAP»):
samba-tool ldap policy show <all | ldap-limit-name> [options]
Например:
-
просмотр значений всех ограничений, установленных политикой по умолчанию:
samba-tool ldap policy show all --default
-
просмотр значений всех ограничений, установленных политикой на уровне контроллера домена:
samba-tool ldap policy show all --dc-name=DC01 --site-name=Site1
-
просмотр значения определенного ограничения, установленных политикой по умолчанию:
samba-tool ldap policy show MaxValRange --default
-
просмотр значения определенного ограничения, установленных политикой на уровне сайта:
samba-tool ldap policy show MaxPageSize --site-name=Site1
Изменение значений ограничений
Для изменения значения ограничения LDAP, установленного политикой по умолчанию (Default Query Policy) или политикой на уровне сайта либо контроллера домена, используйте команду (см. подробнее
в разделе «Администрирование ограничений LDAP»):
samba-tool ldap policy set <ldap-limit-name> <value> [options]
Например:
-
изменение значения ограничения
MaxValRangeв политике по умолчанию:samba-tool ldap policy set MaxValRange 1000 --default
-
изменение значения ограничения
MaxValRangeв политике на уровне контроллера домена:samba-tool ldap policy set MaxValRange 1000 --dc-name=DC01 --site-name=Site1
-
изменение значения ограничения
MaxValRangeв политике на уровне сайта:samba-tool ldap policy set MaxValRange 1000 --site-name=Site1