В этой заметке приводится информация о подзаписях (определены в RFC 3672, упоминаются в RFC 4512 и RFC 4533).
Информационное дерево каталога (DIT) состоит из одной или нескольких записей. Записи могут быть трёх типов: записи-объекты (самый распространённый тип записи), состоящие из из пользовательских данных, содержащихся в атрибутах, входящих в состав объектных классов; записи-псевдонимы, построенные на объектном классе alias, имеющем в своём составе единственный атрибут aliasedObjectName; подзаписи, используемые для хранения административной или операционной информации, относящейся (каким-либо образом) к родительской записи данной подзаписи.
На подзаписи распространяются обычные правила для записей, но они всегда строятся на структурном объектном классе subentry, который может быть расширен подчинённым структурным объектным классом, либо (чаще всего) вспомогательным объектным классом, отвечающим содержимому подзаписи.
# Из RFC 3672 ( 2.5.17.0 NAME 'subentry' SUP top STRUCTURAL MUST ( cn $ subtreeSpecification ) )
По умолчанию подзаписи отображаются только когда при поиске указывается поисковый диапазон base (при использовании диапазонов one или sub они отображаться не будут).
Элемент управления LDAP subentries (1.3.6.1.4.1.4203.1.10.1) может быть использован для управления видимостью подзаписей и записей.
Подзаписи вносят некоторую путаницу (как, правда, и многие другие понятия в LDAP), если Вы не знаете, что они должны присутствовать, или каким-то другим образом ожидаете их появления. В распутывании ситуации не помогает документация, ссылающаяся на административные и/или операционные подзаписи, которые, технически, не являются подзаписями (они не строятся на структурном объектном классе subentry).
В качестве примера использования подзаписей исследуем подзапись подсхемы (subschema). По определению подзапись подсхемы должна поддерживаться всеми совместимыми с LDAPv3 серверами. DN этой подзаписи можно найти путём чтения значения атрибута subschemaSubentry записи rootDSE (используется анонимный поиск с базовым DN "" и поисковым диапазоном base). Прочитать поздапись подсхемы можно выполнив поисковый запрос, где в качестве базы поиска используется найденый DN (обычно значением атрибута subschemaSubentry является cn=subschema), а диапазон — base (при использовании диапазонов one или sub подзапись показана не будет). Подзапись subschema использует структурный объектный класс subentry (показан выше) и вспомогательный объектный класс subschema:
# Из RFC 4512 ( 2.5.20.1 NAME 'subschema' AUXILIARY MAY ( dITStructureRules $ nameForms $ ditContentRules $ objectClasses $ attributeTypes $ matchingRules $ ldapSyntaxes $ matchingRuleUse ) )
Примечание: Мы включили в данное определение атрибут ldapSyntaxes, который, как правило, присутствует в подзаписи подсхемы, хотя в RFC 4512 говорится только о том, что он может присутствовать.
В результате поиска будет показана коллекция всех типов атрибутов, объектных классов, синтаксисов LDAP и правил соответствия, поддерживаемых данным LDAP-сервером. Полученные данные, даже на скромном LDAP-сервере, обычно превышают 90 Kb.
Проблемы, комментарии, предположения, исправления (включая битые ссылки) или есть что добавить? Пожалуйста, выкроите время в потоке занятой жизни, чтобы написать нам, вебмастеру или в службу поддержки. Оставшийся день Вы проведёте с чувством удовлетворения.
Нашли ошибку в переводе? Сообщите переводчикам!
Copyright © 1994-2017 ZyTrax, Inc. Все права защищены. Последнее изменение страницы: 7 июля 2017 г.
Переведено участниками проекта Pro-LDAP.ru в 2017 г.