Этот механизм манипуляции данными главным образом предназначен для использования в прототипах.
Данные директивы определяют путь и аргументы для программы, которая будет выполняться и выдавать ответ при вызове указанной операции 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-2025 by Maxim Chirkov Добавить, Поддержать, Вебмастеру |