Запись самого верхнего уровня в LDAP DIT (Directory Information Tree, информационном дереве каталога) в мире LDAP неоднозначно называется корневой (root), базовой (base) или суффиксом (suffix), в зависимости от документации, её автора, дня недели или каких-либо других переменных величин, доподлинно нам не известных.
Термин Root DSE определяет своего рода супер-корневую запись (суффикс), содержащую определения всех DIT, поддерживаемых сервером LDAP (в операционном атрибуте namingContexts), а также другие операционные объекты.
Существует несколько методов определения корневой записи, или суффикса.
На этой странице описывается метод, основанный на RFC 2247 (доменных именах). В дальнейших рассуждениях подразумевается, что доменное имя рассматриваемой организации — example.net, трансформирующееся в корневой DN (базовый DN или суффикс) dc=example, dc= net.
В RFC определено два разных подхода реализации данного метода. Один из них использует структурный объектный класс domain. Однако, гораздо более широкое распространение получил подход с использованием вспомогательного объектного класса dcObject совместно со структурным объектным классом organization, имеющим всего один обязательный атрибут o (organizationName), хотя с тем же успехом можно использовать структурный объектный класс organizationalUnit с обязательным атрибутом ou. Фрагмент LDIF для добавления корневой записи или суффикса:
## ОПРЕДЕЛЯЕМ DIT ROOT/BASE/SUFFIX #### ## используется формат RFC 2247 с объектным классом dcObject ## замените встречающиеся ниже example и net на требуемые компоненты домена ## dcObject - это ВСПОМОГАТЕЛЬНЫЙ объектный класс и, кроме него, запись ## ДОЛЖНА иметь СТРУКТУРНЫЙ объектный класс (в данном случае, organization) # это последовательность ЗАПИСИ и ей предшествует ПУСТАЯ СТРОКА dn: dc=example,dc=net dc: example description: Необязательное описание. Определение корневой записи или суффикса RFC 2247. В эту строку можно поместить столько текста, сколько хотите в этой строке продолжение информации из предыдущей строки вплоть до 32Kb строка оканчивается либо на <CR>, либо на <CR><LF>, то есть отрабатывается ENTER с систем как Windows, так и *nix - новая строка ДОЛЖНА начинаться с ОДНОГО ПРОБЕЛА objectClass: dcObject objectClass: organization o: Example, Inc. ## ОПРЕДЕЛЯЕМ DIT ROOT/BASE/SUFFIX #### ## используется формат RFC 2247 с объектным классом domain ## замените встречающиеся ниже example и net на требуемые компоненты домена ## domain - это СТРУКТУРНЫЙ объектный класс # это последовательность ЗАПИСИ и ей предшествует ПУСТАЯ СТРОКА dn: dc=example,dc=net dc: example description: Необязательное описание. Определение корневой записи или суффикса RFC 2247. В эту строку можно поместить столько текста, сколько хотите в этой строке продолжение информации из предыдущей строки вплоть до 32Kb строка оканчивается либо на <CR>, либо на <CR><LF>, то есть отрабатывается ENTER с систем как Windows, так и *nix - новая строка ДОЛЖНА начинаться с ОДНОГО ПРОБЕЛА objectClass: domain o: Example, Inc.
Если в OpenLDAP используется динамическая конфигурация OLC (cn=config), следует указать dc=example,dc=net в качестве значения атрибута olcSuffix соответствующей записи olcDatabase. При использовании конфигурационного файла slapd.conf, нужно указать suffix "dc=example,dc=net" в разделе database.
В файле server.xml ApacheDS нужно указать suffix="dc=example,dc=net" в разделе <partitions><jdbmPartition ...>.
Примечания:
На первый взгляд это выглядит как значение с несколькими RDN, но на самом деле создаётся одна запись с DN dc=example,dc=net. Большинство серверов LDAP не выполняют проверки того, присутствуют ли значения атрибутов, составляющие DN (RDN), в определении записи.
Если в доменном имени несколько меток ccTLD, как, например, в example.net.br, соответственно нужно использовать такой фрагмент:
## ОПРЕДЕЛЯЕМ DIT ROOT/BASE/SUFFIX #### ## используется формат RFC 2247 ## замените встречающиеся ниже example и net на требуемые ## или, для экспериментов, оставьте как есть ## dcObject - это ВСПОМОГАТЕЛЬНЫЙ объектный класс и, кроме него, запись ## ДОЛЖНА иметь СТРУКТУРНЫЙ объектный класс (в данном случае, organization) # это последовательность ЗАПИСИ и ей предшествует ПУСТАЯ СТРОКА dn: dc=example,dc=net, dc=br dc: example description: Необязательное описание. Определение корневой записи или суффикса RFC 2247. В эту строку можно поместить столько текста, сколько хотите в этой строке продолжение информации из предыдущей строки вплоть до 32Kb строка оканчивается либо на <CR>, либо на <CR><LF>, то есть отрабатывается ENTER с систем как Windows, так и *nix - новая строка ДОЛЖНА начинаться с ОДНОГО ПРОБЕЛА objectClass: dcObject objectClass: organization o: Example, S.A.
Соответствующие настройки в olcSuffix (или в slapd.conf) OpenLDAP и server.xml ApacheDS будут suffix "dc=example,dc=net,dc=br".
Добавление последующих записей в dc=example,dc=net показано в данном фрагменте LDIF:
## ПЕРВЫЙ уровень иерархии - люди (people) ## для объектных классов используется смешанная форма записи в верхнем и нижнем регистре # это последовательность ЗАПИСИ, она должна предваряться ПУСТОЙ строкой dn: ou=people, dc=example,dc=net ou: people description: All people in organisation objectclass: organizationalunit ## ВТОРОЙ уровень иерархии ## ДОБАВЛЯЕМ одну запись в ПЕРВЫЙ уровень (people) # это последовательность ЗАПИСИ, она должна предваряться ПУСТОЙ строкой # ou: Human Resources - это название подразделения dn: cn=Robert Smith,ou=people, dc=example,dc=net objectclass: inetOrgPerson cn: Robert Smith cn: Robert J Smith cn: bob smith sn: smith uid: rjsmith userpassword: rJsmitH carlicense: HISCAR 123
Проблемы, комментарии, предположения, исправления (включая битые ссылки) или есть что добавить? Пожалуйста, выкроите время в потоке занятой жизни, чтобы написать нам, вебмастеру или в службу поддержки. Оставшийся день Вы проведёте с чувством удовлетворения.
Нашли ошибку в переводе? Сообщите переводчикам!
Copyright © 1994-2017 ZyTrax, Inc. Все права защищены. Последнее изменение страницы: 4 марта 2016 г.
Переведено участниками проекта Pro-LDAP.ru в 2012-2017 г.