Корпоративный каталог. Установка и настройка LDAP-сервера

ldapLDAP — отличное средство для хранения различной статистической информации, например контактов. Если надо организовать подобную службу во внутренней сети компании, все, что вам понадобится, — это дистрибутив ОС Linux и эта статья. Данная информация будет полезна прежде всего для системных администраторов, занимающихся абонентским обслуживанием серверов.

Каталог по своей функциональности достаточно сильно напоминает обычную СУБД. Но в отличие от нее предназначен в основном для чтения и быстрого поиска информации внутри базы, а потому не поддерживает такие функции современных СУБД как, например, механизм транзакций или реляционные отношения между таблицами. Если продолжать проводить параллели все с той же СУБД, то информация, предоставляемая пользователю службой каталога, больше всего напоминает служебные таблицы-справочники — например, материалов или поставщиков. Новые записи в такие таблицы добавляются достаточно редко, а изменение уже имеющейся в них информации выглядит как удаление записи и добавление на ее место новой.

В сетях OSI (Open System Interchange networks) полная модель служб каталога описана стандартом Х.500, который подробно рассматривает не только информационную модель хранения данных, но и сам протокол для оперирования ими — DAP (Directory Access Protocol). Однако модель каталога настолько богата, a DAP включает в себя такое количество самых разнообразных способов обработки данных, что его полная реализация на обычном компьютере — задача более чем нетривиальная. В основном именно по этой причине энтузиасты из Мичиганского университета, пользуясь рекомендациями консорциума ISODE, решили заняться разработкой нового, облегченного варианта DAP, который в итоге так и назвали — LDAP (Lite DAP).

По сути, LDAP заимствовал из Х.500 как модель хранения данных, так и протокол для работы с ними. Существенным же отличием от предшественника стало именно то, что LDAP был реализован только лишь для стека TCP/IP, а потому не поддерживал различные экзотические функции оригинального DAP. Еще раз отметим, что LDAP — протокол, описывающий способ доступа к информации, которая хранится в каталоге. Системой, хранящей эту информацию, может быть любая СУБД. Однако, как только она начинает поддерживать интерфейс протокола LDAP, СУБД может выступать в роли службы каталога. Забегая немного вперед, можно сказать, что некоторые из служб LDAP-каталогов имеют реализацию интерфейса LDAP для обслуживания клиентов, а все данные хранят в какой-либо распространенной СУБД.

Если взглянуть на каталог изнутри, отдельные записи в нем удобнее всего рассматривать как объекты. Каждая запись в каталоге представляет собой набор атрибутов и их значений. Информация об атрибутах хранится в схеме каталога («directory schema»). Схема каталога описывает хранящуюся в нем информацию с помощью классов («classes»), используя при этом объектно-ориентированный подход.

Класс объекта («objectclass») описывает наименования атрибутов объекта, а также типы их значений. Некоторые атрибуты обязательны («must») для создания класса, остальные же являются опциональными («may»). Кроме того, классы могут наследовать атрибуты от других классов. Для примера приведем описание абстрактного класса «account»:

1-2

Как видите, класс «account» наследуется от класса «top». Для создания класса «account» должен быть указан необходимый атрибут «userid», также могут быть указаны необязательные атрибуты «description», «seeAlso», «localityName».

Одна запись в каталоге может хранить атрибуты нескольких классов объекта. Информация о том, атрибуты каких классов хранит та или иная запись каталога, указывается отдельным, обязательным для каждой записи атрибутом «objectclass». Другим обязательным атрибутом каждой записи является ее DN (distinguished name). Это уникальный атрибут, который является своего рода ключевым полем и имеет мнемоническое представление, которое необходимо читать справа налево. Например:

1-3

Формат обмена данными между сервером LDAP и клиентом или же между двумя серверами LDAP называется LDIF. С помощью данного формата можно описывать значения атрибутов для вновь создаваемых объектов или изменения атрибутов уже существующих.

Подводя итог вводной части, скажем, что примеры реализации и использования LDAP-совместимых каталогов сейчас встречаются практически в любой операционной системе. В Novell Netware это NDS (Novell Directory Service). В Microsoft Windows — AD (Active Directory). Ну а в UNIX — проект OpenLDAP.

Продолжение следует.

Похожее

Оставить комментарий

Ваш e-mail не будет опубликован.

Поиск

Новости в картинках