Глава 9. Функциональная модель LDAP

В этом разделе описываются команды протокола, которые клиенты и серверы LDAP используют "за кадром" при соединении друг с другом, и формат LDAP URL, который может использоваться при работе с современными браузерами, а также в сочетании с определёнными объектными классами и функциями (в первую очередь с динамическими группами).

Если Вам действительно нужно разобраться в этих вещах, неочевидный, но по-настоящему умный способ — использовать превосходный Open Source продукт wireshark (бывший ethereal), который выполнит для Вас полную разборку трафика — мы еще не сталкивались с таким протоколом, который не поддерживался бы wireshark. Замечательная программа.

Наконец, LDAP использует спецификацию ITU BER (Basic Encoding Rules), чтобы сэкономить по три байта при каждом трансфере. Вам понадобится раздобыть (за приличные деньги) стандарт X.690, в котором описан BER.

В качестве альтернативы Вы можете скачать книгу профессора John Larmouth "ASN.1 Complete" (распространяется свободно, но для её получения необходима регистрация), либо приобрести её бумажный экземпляр от издательства Morgan Kaufmann Publishers (ISBN: 0-12-233435-3). Можно также посмотреть книгу другого всемирно известного эксперта по ASN.1 Olivier Dubuisson "ASN.1 — Communication between heterogeneous systems" (распространяется свободно, но для её получения необходима регистрация). Опять же, можно приобрести бумажный экземпляр этой книги от Morgan Kaufmann Publishers (ISBN: 0-12-6333361-0). Кроме того, замечательную подборку ресурсов по ASN.1 и BER можно найти на этом сайте.

Содержание

  1. 9.1 Обзор функциональной модели
  2. 9.2 Общий формат
  3. 9.3 Примитивы (операции)
  4. 9.4 LDAP URL

9.1 Обзор функциональной модели

Уже совсем скоро (One day real soon now ™).

Under Construction

Наверх

9.2 Общий формат

Уже совсем скоро (One day real soon now ™).

Under Construction

Наверх

9.3 Примитивы (операции)

Уже совсем скоро (One day real soon now ™).

Under Construction

Наверх

9.4 LDAP URL

LDAP URL — вещь полезная, но с элементом излишества. LDAP URL (RFC 4510 и RFC 4516) определяет метод, посредством которого Вы можете ввести что-то похожее на URL в адресную строку некоторых браузеров (MSIE 5.5+ и любые основанные на Gecko браузеры поддерживают ldap, Opera 7.x beta и Konqueror — нет) и те выполнят LDAP-запрос только на чтение к LDAP-серверу, используя параметры, указанные в данном URL. И MSIE, и Gecko позволят Вам добавить любые найденные записи в адресную книгу (создаётся впечатление, что эта функция реализована с помощью одного и того же программного кода).

Элемент излишества (мы, конечно, сильно придирчивы) — то, что браузер транслирует такой запрос в стандартный поисковый примитив LDAP. URL-нотация — всего лишь (полезный) интерфейс для работы через браузер. Однако, LDAP URL используются также для кое-чего более серьёзного, например, динамических групп (в сочетании с объектным классом groupOfURLs и его атрибутом memberURL). Динамические группы — нестандартная (нет соответствующего RFC), но широко реализованная функция LDAP. Неясно, наведут ли тут когда-нибудь порядок.

Формат LDAP URL

Синтаксис формата таков:

scheme "://" [host:port] ["/"[dn ["?" [attributes] ["?" [scope] ["?" [filter]
                ["?" extensions]]]]]]

Здесь:

ПараметрОписание

scheme

Схема. Может быть либо ldap — обычный доступ на стандартном порту 389 (либо нестандартном), либо ldaps — SSL-доступ на стандартном порту 636 (либо нестандартном).

host:port

Хост и порт. Необязательный параметр — если он пропущен, браузер использует значения по умолчанию. В противном случае задаёт URL хоста и, опционально, номер порта на данном хосте, например, ldapserver.example.com или ldapserver.example.com:8777 (используется нестандартный порт 8777).

dn

Базовый DN поиска. Необязательный параметр — если он пропущен, браузер использует значение по умолчанию. В противном случае задаёт DN, который будет использоваться для поиска, например, ou=people,dc=example,dc=com.

attributes

Атрибуты. Необязательный параметр — если он пропущен, будут возвращены все доступные атрибуты для найденной записи. В противном случае задаёт те атрибуты, которые необходимо вернуть, в виде списка, разделённого запятыми, например, cn,mail,telephonenumber.

scope

Диапазон поиска. Необязательный параметр — если он пропущен, подразумевается base. В противном случае задаёт диапазон поиска и принимает одно из следующих значений:

  1. base поиск производится только на уровне, заданном в параметре dn.
  2. one поиск производится на уровне, заданном в параметре dn и на один уровень ниже по иерархии.
  3. sub поиск производится на уровне, заданном в параметре dn и на всех остальных уровнях ниже по иерархии до самого конца дерева (DIT).

filter

Поисковый фильтр. Согласно документации это необязательное поле — если оно пропущено, подразумевается (objectclass=*). Судя по всему, это значение по умолчанию не поддерживается ни MSIE, ни Gecko — Вы должны указать что-нибудь, например, (objectclass=*). В противном случае задаёт текстовое представление поискового фильтра.

extensions

Расширения. Текущее RFC по LDAP URL (RFC 4516) не определяет никаких расширений.

Примеры LDAP URL

Подключение с использованием анонимного доступа к host.example.com на порт 389 с базовым DN поиска ou=people,dc=example,dc=com. Возвращаются все доступные атрибуты для найденных записей. Поиск осуществляется по базовому DN и на один уровень ниже. Возвращаются все найденные записи.

ldap://host.example.com/ou=people,dc=example,dc=com??one?(objectclass=*)

Подключение с использованием анонимного доступа к host.example.com на порт 9000 с базовым DN поиска ou=people,dc=example,dc=com. Возвращаются все доступные атрибуты для найденных записей. Поиск осуществляется по базовому DN и на один уровень ниже. Возвращаются все найденные записи.

ldap://host.example.com:9000/ou=people,dc=example,dc=com??one?(objectclass=*)

Подключение с использованием анонимного доступа к хосту по выбору браузера (мы так и не смогли сообразить, как это можно настроить) на порт 389 с базовым DN поиска ou=people,dc=example,dc=com. Возвращаются все доступные атрибуты для найденных записей. Поиск осуществляется по базовому DN и на один уровень ниже. Возвращаются все записи с s или S в любом месте атрибута commonName:

ldap:///ou=people,dc=example,dc=com??one?(cn=*s*)

Подключение с использованием анонимного доступа к host.exmple.com на порт 389 с базовым DN поиска ou=people,dc=example,dc=com. Возвращаются только атрибуты mail. Поиск осуществляется по базовому DN и на один уровень ниже. Возвращаются все записи, в которых есть один или несколько атрибутов mail:

ldap://host.example.com/ou=people,dc=example,dc=com?mail?one?(mail=*)

Подключение с использованием анонимного доступа к host.example.com на порт 389 с базовым DN поиска ou=people,dc=example,dc=com. Возвращаются все доступные атрибуты для найденных записей. Поиск осуществляется по базовому DN и по всему дереву ниже базового DN. Возвращаются все записи, атрибут sn которых начинается на a или A.

ldap://host.example.com/ou=people,dc=example,dc=com???(sn=a*)

Подключение с использованием анонимного доступа к ldap на локальном хосте (localhost) на порт 389 с базовым DN поиска ou=people,dc=example,dc=com. Возвращаются все доступные атрибуты для найденных записей. Поиск осуществляется по базовому DN и по всему дереву ниже базового DN. Возвращаются все записи, атрибут sn которых начинается на a или A.

ldap:///ou=people,dc=example,dc=com???(sn=a*)

Наверх



Проблемы, комментарии, предположения, исправления (включая битые ссылки) или есть что добавить? Пожалуйста, выкроите время в потоке занятой жизни, чтобы написать нам, вебмастеру или в службу поддержки. Оставшийся день Вы проведёте с чувством удовлетворения.

Нашли ошибку в переводе? Сообщите переводчикам!

Copyright © 1994-2015 ZyTrax, Inc. Все права защищены. Последнее изменение страницы: 21 августа 2014 г.
Переведено участниками проекта Pro-LDAP.ru в 2012 г.