Административные ограничения LDAP

Служба каталогов предоставляет возможность задания ограничений на запросы к серверу LDAP для тонкой настройки взаимодействия с клиентами с учетом требований к производительности, надежности и безопасности.

Реализация ограничений

В службе каталогов ограничения на запросы к серверу LDAP реализуются в виде политик, представляющих собой объекты класса queryPolicy.

Данные объекты размещаются в контейнере CN=Query-Policies,CN=Directory Service,CN=Windows NT,CN=Services,CN=Configuration,DC=<domain>.

Каждая политика состоит из набора пар ограничение-значение, хранящегося в атрибуте lDAPAdminLimits объекта 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-*

    Сервер возвращает все значения атрибута в рамках заданного ограничения MaxValRange

    range=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>

Например:

  • просмотр значений всех ограничений:

    /app/inno-samba/bin/samba-tool ldap policy show all
  • просмотр значения определенного ограничения:

    /app/inno-samba/bin/samba-tool ldap policy show MaxValRange

Изменение значений ограничений

Для изменения значения ограничения LDAP, заданного в рамках политики по умолчанию (Default Query Policy), используйте команду (см. подробнее в разделе «Администрирование ограничений LDAP»):

samba-tool ldap policy set <ldap-limit-name> <value>

Например:

/app/inno-samba/bin/samba-tool ldap policy set MaxValRange 1000