Этот механизм манипуляции данными главным образом предназначен для использования в прототипах.
Данные директивы определяют путь и аргументы для программы, которая будет выполняться и выдавать ответ при вызове указанной операции LDAP. За каждой директивой следуют строки, которые заданная программа будет получать на стандартный ввод:
ADD msgid: <идентификатор сообщения> <повторение { "suffix:" <DN суффикса базы данных> }> <запись в формате LDIF>
BIND msgid: <идентификатор сообщения> <повторение { "suffix:" <DN суффикса базы данных> }> dn: <DN> method: <номер метода> credlen: <длина <учётных данных>> cred: <учётные данные>
COMPARE msgid: <идентификатор сообщения> <повторение { "suffix:" <DN суффикса базы данных> }> dn: <DN> <атрибут>: <значение>
DELETE msgid: <идентификатор сообщения> <повторение { "suffix:" <DN суффикса базы данных> }> dn: <DN>
MODIFY msgid: <идентификатор сообщения> <повторение { "suffix:" <DN суффикса базы данных> }> dn: <DN> <повторение { <"add"/"delete"/"replace">: <атрибут> <повторение { <атрибут>: <значение> }> - }>
MODRDN msgid: <идентификатор сообщения> <повторение { "suffix:" <DN суффикса базы данных> }> dn: <DN> newrdn: <новое RDN> deleteoldrdn: <0 или 1> <если указана новая вышестоящая запись: "newSuperior: <DN>">
SEARCH msgid: <идентификатор сообщения> <повторение { "suffix:" <DN суффикса базы данных> }> base: <базовое DN> scope: <0-2, смотрите ldap.h> deref: <0-3, смотрите ldap.h> sizelimit: <ограничение по размеру> timelimit: <ограничение по времени> filter: <фильтр> attrsonly: <0 или 1> attrs: <"all" или разделённый пробелами список атрибутов>
UNBIND msgid: <идентификатор сообщения> <повторение { "suffix:" <DN суффикса базы данных> }> dn: <DN, от имени которого выполнено подсоединение>
Обратите внимание, что необходимо задать конфигурацию лишь для команд тех операций, обработка которых требуется от данного механизма манипуляции данными. Операции, для которых не указана команда, будут отклонены с выдачей ошибки "unwilling to perform".
Команда search должна выдавать записи в формате LDIF, за каждой из которых следует пустая строка, а затем указанное ниже сообщение RESULT.
Все эти команды, - за исключением unbind, - должны выдавать:
RESULT code: <целое число> matched: <совпавшее DN> info: <текст>
Для операции add не требуется иметь доступ write (=w) к псевдо-атрибуту children родительской записи.
Для операции bind требуется доступ auth (=x) к псевдо-атрибуту entry той записи, идентификационная сущность которой оценивается; доступ auth (=x) к удостоверяющим данным не проверяется, а делегируется shell-скрипту, обрабатывающему запросы.
Для операции compare требуется доступ read (=r) (ПОПРАВЬТЕ МЕНЯ: может быть, более подходящий вариант compare (=c) ?) к псевдо-атрибуту entry того объекта, в котором находится значение, подвергающееся сравнению; доступ compare (=c) к атрибуту, значение которого подвергается сравнению, не проверяется.
Для операции delete не требуется иметь доступ write (=w) к псевдо-атрибуту children родительской записи.
Для операции modify требуется доступ write (=w) к псевдо-атрибуту entry; доступ write (=w) к конкретным атрибутам, которые подвергаются модификации, не проверяется.
Для операции modrdn не требуется иметь доступ write (=w) к псевдо-атрибутам children как текущей, так и новой родительской записи, если они различны; доступ write (=w) к отличительным значениям атрибутов именования не проверяется.
Для операции search не требуется иметь доступ search (=s) к псевдо-атрибуту entry базовой записи поиска; доступ search (=s) к атрибутам и значениям, используемым в поисковых фильтрах, не проверяется.
Закладки на сайте Проследить за страницей |
Created 1996-2024 by Maxim Chirkov Добавить, Поддержать, Вебмастеру |