Вступление к руководству OpenLDAP » IT FOundation – Поваренная книга системного администратора.
Только нужная и полезная документация. Регистрируйтесь, пишите, комментируйте!
24 июня 2009

Вступление к руководству OpenLDAP

опубликовано в OpenLDAP |

Вступление к руководству OpenLDAP

1. Вступление к руководству OpenLDAP

Данный документ описывает сборку, конфигурацию и управление ПО OpenLDAP для работы со службами каталога. Он описывает, как конфигурировать и обслуживать автономный LDAP даемон, slapd (8) и измененную копию автономного LDAPдаемона slurpd(8).Он будет полезен как новичкам, так и уже продвинутым администраторам. Данный раздел является вступлением к службам каталога и, в частности, службам каталога по средствам slapd (8).

1.1. Что такое служба каталогов?

Каталог — это специальная БД, пригодная для чтения, просмотра и поиска информации. Каталоги содержат описательную информацию и поддерживают особенные фильтрационные(поисковые) возможности. Каталоги обычно не содержат сложных операций или схем, находящихся в системах управления БД, составленных для управления объемными сложными обновлениями(изменениями). Доступные каталоги обычно не сложные. Они настроены так, чтобы дать быстрый ответ при операциях просмотра и поиска. Они могут иметь способность копировать информацию для увеличения надежности и уменьшения времени на ответ. Когда информация дублируется, временные противоречия между копиями устраняются и, в конечном итоге, синхронизируются.

Существует много способов обеспечить службу каталогов. Различные методы позволяют различным видам информации храниться в каталоге; устанавливают различные требования по тому как информация может упоминаться, проверяться и обновляться, и как она защищается от несанкционированного доступа т.д. Некоторые справочные службы являются локальными, обеспечивающими сервис к ограниченному контексту (например, finger service на одной машине). Другие службы — глобальные, обеспечивают доступ к гораздо более широким контекстам (например, весь интернет). Глобальные службы обычно распределены, это значит, что данные, которые они содержат, распределены на многие машины, связанные между собой для обеспечения работы со службами каталогов. Обычно глобальная система определяет общий набор ресурсов, который дает одинаковый взгляд на данные, независимо от того, где Вы по отношению к этим данным находитесь. The Internet Domain Name System (DNS) является примером глобальной дистрибутивной службы каталогов.

1.2. Что такое LDAP?

LDAP – это облегчённый протокол доступа к каталогам, особенно к службе каталогов X.500. LDAP использует TCP/IP и другие службы, ориентированные на transfer services. Необходимые детали LDAP определены в RFC2251 “The Lightweight Directory Access Protocol (v3)” и других документах, содержащих техническую спецификацию RFC3377. этот раздел описывает LDAP с позиции пользователя.

Какого вида информация может храниться в каталоге?Информационная модель LDAP основана на узлах. Узел — это набор признаков, который обладает абсолютно уникальным Distinguished Name(узнаваемым именем) (DN). DN используется по отношению к узлу недвусмысленно(однозначно). Каждый из признаков узла обладает типом параметра, одним или более значений параметра. Типы параметра — обычно мнемонические строки, как “cn” для обычного имени, или “mail” — для e-mail адреса. Синтаксис значения параметра зависит от признака типа. Например, значение cn может содержать значение”babs@example.com”, значение jpegPhoto — фотографию в формате JPEG (в бинарном двоичном файле).

Как организована информация?В LDAP, узлы каталога организованы в иерархической последовательности (в форме дерева). Традиционно, такая структура отражала географические и/или границы организации. Узлы, представляющие страны, расположены на вершине дерева. Ниже — узлы, представляющие штат (область) и национальные организации. Еще ниже могут быть узлы, представляющие элементы организации: людей, принтеры, документы, или просто все то, что Вы захотите включить в каталог. На рисунке 1.1. вы можете увидеть пример такого дерева с традиционными названиями.

intro_tree

Рис. 1.1: LDAP дерево каталога (традиционные наименования)

Дерево может быть также организовано с опорой на доменные имена в Интернете. Такой подход становится все более популярным, так как он позволяет службе каталогов располагаться, используя DNS. На рисунке 1.2. Вы видите пример дерева с использованием доменных имен.

intro_dctree

Рис. 1.2: LDAP дерево каталога (Internet наименования)

В добавок к этому, LDAP, по средствам использования специального атрибута objectClass, позволяет Вам контролировать, какие признаки необходимы и разрешены в УЗЛЕ. Значения атрибута objectClass устанавливают правила схемы, которым УЗЕЛ должен подчиняться.

Как упоминается информация? УЗЕЛназывается своим уникальным именем, которое состоит из имени самого УЗЛА (так называемое Relative Distinguished Name или RDN) и комбинация имен его предыдущих УЗЛОВ. Например, УЗЕЛ для Barbara Jensen в Интернете, если брать предыдущий пример, имеет RDN uid=babs и DN uid=babs,ou=People,dc=example,dc=com. Полный DN формат описан в RFC2253, “Lightweight Directory Access Protocol (v3): UTF-8 String Representation of Distinguished Names.”

Как используется информация? LDAP определяет операции для запроса и обновления каталога. Операции необходимы для добавления и удаления УЗЛА из каталога, изменяя существующий УЗЕЛ, и изменяя имя УЗЛА. Хотя, чаще всего LDAP используется для поиска информации в каталоге. Операция поиска позволяет УЗЛАМ находить определенную часть каталога , удовлетворяющим некоторым критериям, которые уточняются поисковым фильтром. Информация может запрашиваться любым(каждым) УЗЛОМ, который удовлетворяет этим критериям.

Например, вы захотели найти полное поддрево каталога на и ниже dc=example,dc=com для людей с именем Barbara Jensen, взяв электронный адрес каждого найденного УЗЛА. LDAP позволяет вам легко сделать это. Или Вы захотели отыскать УЗЛЫ прямо под st=California,c=US, УЗЕЛ для организаций в строке Acme в их имени, и у этих людей есть свой номер факса. LDAP также позволит Вам это сделать. Следующий раздел детально описывает, что можно сделать при помощи LDAP и как он может быть полезен Вам.

Как информация может быть защищена от несанкционированного доступа? Некоторые службы каталогов не имеют защиты, и все кому не лень могут просмотреть всю информацию. LDAP снабжен механизмом, при котором сервер каталога легко распознает пользователя и доподлинно устанавливает его личность, тем самым защищая информацию, которую содержит сервер. LDAP также сохраняет данные в надежности, целостности и конфиденциальности.

1.3. Как работает LDAP?

Службакаталога LDAP основана на модели client-server (клиент-сервер). Один или более LDAP серверов состоят(используя) из данных, образуя directory information tree (DIT) (информационное дерево каталога). Клиент связывается с сервером и задает ему вопрос. Сервер отвечает и/или указывает, где клиент может получить дополнительную информацию (обычно другой LDAP сервер). Не имеет значения, к какому LDAP серверу подключился клиент, он (сервер) опознает этот каталог; имя, представленное одному LDAP серверу, отображает один и тот же УЗЕЛ, который будет и на другом LDAP сервере. это важная особенность такой глобальной системы, как LDAP.

1.4. Что такое X.500?

Технически, LDAP — это протокол доступа к службе каталога X.500, службе каталога OSI. Первоначально, клиенты LDAP пользовались шлюзами для того, чтобы войти в службу каталога X.500. этот шлюз управлял LDAP для связи клиента и шлюза и управлял X.500 Directory Access Protocol (DAP) (протокол о доступе) для связи шлюза и сервера X.500. DAP — это объемный протокол, который работает по средствам полного OSI protocol stack и требует значительного количества компьютерных ресурсов. LDAP создан для операций через TCP/IP и обеспечивает большую функциональность DAP с гораздо меньшими затратами.

Хотя LDAP все еще используется для того, чтобы иметь доступ к службе каталогов X.500 через шлюзы, сейчас LDAP все более находит применение в серверах X.500.

Автономный LDAP даемон, или slapd (8), можно рассматривать как облегченный сервер X.500. это значит, что он не может использовать X.500′s DAP и не может поддерживать X.500 модели.

Если Вы уже используете X.500 DAP-сервис, и Вы хотите использовать его далее, то Вам можно закончить чтение этой части документа. Он об использовании LDAP через slapd (8) без использования X.500 DAP. Если же вы не пользуетесь X.500 DAP, или хотите прекратить его использование, или еще не определились, продолжайте читать.

Имеется возможность копировать данные из LDAP службы каталога на X.500 DAP DSA. это требует LDAP/DAP шлюза. OpenLDAP не снабжен таким шлюзом, но версия даемона может быть использована для копирования этого шлюза. См. главу Replication with slurpd для получения информации по копированию.

1.5. В чем различия между LDAPv2 и LDAPv3?

LDAPv3 был разработан в конце 1990 годов и заменил LDAPv2. LDAPv3 добавил следующие особенности к LDAP:

* улучшенная аутентификация и служба защиты данных по средствам SASL;

* сертификат аутентификации и служба защиты данных по средствам TLS (SSL);

* интернационализация через использование Unicode;

* направления и продолжения

* схема открытия (Schema Discovery )

* расширились возможности? ( контроль, увеличение операций и т.д)

LDAPv2 устарел (RFC3494) . Так как LDAPv2 значительно отличается от LDAPv3, использование как LDAPv2 так и LDAPv3 одновременно довольно проблематично. LDAPv2 следует избегать, т.к. в нем имеются недостатки.

1.6. Что такое slapd и что он может делать?

Slapd(8) — это сервер каталога LDAP, который работает на многих различных платформах. Вы можете использовать ее, чтобы обслуживать свою собственную службу каталогов. Ваш каталог может содержать все то, что Вы хотите туда поместить. Вы можете связать ее с основной службой каталогов LDAP или управлять службой самостоятельно. Некоторые наиболее интересные особенности и возможности slapd включают:

LDAPv3: slapd приводит в действие 3-ю версию LDAP. Slapd поддерживает LDAP IPv4 и IPv6 и Unix IPC.

Простая аутентификация и Защита: slapd поддерживает мощную аутентификацию и сохранение данных (целостность и конфиденциальность) через SASL. SASL использует ПО CyrusSASL, которое поддерживает такие механизмы как DIGEST-MD5, EXTERNAL, и GSSAPI.

Защита передачи данных: slapd поддерживает сертификат аутентификации и службу хранения данных с помощью TLS (или SSL). Имплементация (реализация)TSL в системе slapd использует ПО OpenSSL.

Топологический контроль: slapd может быть сконфигурирован так, чтобы ограничить доступ к socket layer (нижнемуслою), который основан на топологической информации. эта черта использует TCP оболочки.

Контроль над доступом: slapd обеспечивает мощную защиту от взломом и позволяет Вам контролировать доступ к информации в Вашей базе (базах) данных. Вы можете контролировать доступ узлам, основанным на LDAP информации, IP адресах, доменном имени и других критериях. slapd поддерживает как статичный так и динамичный контроль над доступом к информации.

Интернационализация: slapd поддерживает Unicode и языковые теги.

Выбор бэкэндов БД: slapd предоставляет Вам право выбора различных бэкэндов БД. Они включают BDB, высокоэффективные трансакциональные бэкэнды БД; HDB, иерархические высокоэффективные трансакциональные бэкэнды; LDBM, облегченный бэкэнд, основанный на DBM; SHELL, интерфейс бэкэнда для произвольного написания скриптов; и PASSWD, легкий интерфейс бэкэнда для passwd(5) файла. BDB и HDB бэкэнды используют Sleepycat Berkeley DB. LDBM использует либо Berkeley DB, либо GDBM.

Сложные БД: slapd ,в то же время, может быть сконфигурирован так, чтобы обслуживать сложные БД. это значит, что единственный (один) slapd может реагировать на запросы для многих логически различных частей дерева LDAP, используя одинаковые или различные бэкэнды БД.

Общие модули API:если Вы запрашиваете еще настройки, slapd позволяет Вам легко написать Ваши собственные модули. slapd состоит из 2-х частей: front end, который управляет протоколами связей с LDAP клиентами; и модулей, которые отвечают за специфические задания, такие как операции с БД. Т.к. эти две составляющие связаны между собой через C API, Вы можете написать свои собственные модули, которые значительно расширяют slapd . Так, появляется большое количество программных модулей БД. Они позволяют Вам демонстрировать внешние ресурсы slapd , используя популярные языки программирования (Perl, shell, SQL, и TCL).

Потоки: slapd высокопроизводителен. Единственный многопоточный slapd процесс управляет всеми входящими запросами, используя совокупность потоков. это снижает количество необходимой системы , в тоже самое время обеспечивая высокую производительность

Копирование: slapd может быть сконфигурирован так, чтобы обслуживать скрытые копии справочной информации. эта single-master/multiple-slave скопированная копия является важной в объемных средах, где единственный slapd просто не обеспечивает необходимой доступности и надежности. slapd поддерживает два метода копирования: LDAP Sync-based и slurpd(8)-based.

Proxy Cache: slabdможет быть сконфигурирован как caching LDAP прокси служба.

Конфигурация: slabd— является высоко конфигурированным через единый конфигурационный файл, которой позволяет вам изменять все то, что бы вы хотели изменить. Конфигурационные опции обладают приемлемыми умолчаниями, что делает вашу работу гораздо более легкой.

1.7. Что такое slurpd, и что он может делать?

Slurpd(8) — это даемон, который с помощью slapd обеспечивает службу копий. Он отвечает за дистрибутивные изменения, сделанные мастеру БД slabd для различных копий slabd. Он освобождаетslabd от необходимости беспокоиться за то, что некоторые копии могут быть недоступны, когда происходит какое-либо изменение; slurpdсправляется с повторными (неудавшимися) запросами автоматически. Slapd и slurpd взаимодействуют друг с другом через простой текстовый файл, который используется для регистрации ошибок.

См. главу Replication with slurpd для получения информации о том как сконфигурировать и запустить (обслуживать) slurpd(8).

Кроме того, LDAP- Sync-based копия может быть использована для того, чтобы обеспечить службу копирования. См. главу LDAP Sync Replication для получения более детальной информации.

оригинал статьи на английском языке



Написать комментарий


три + 8 =