Мы — долго запрягаем, быстро ездим, и сильно тормозим.

RFC
Программирование
FreeBSD
man
EXIM


www.lissyara.su —> документация —> LDAP —> часть 1

Введение в службу директорий OpenLDAP.

Автор: fr33man.


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

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

1.1 Что такое служба директорий?

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

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

1.2 Что такое LDAP?

LDAP - это сокращение от Lightweight Directory Access Protocol. Как следует из названия - это облегченный протокол для доступа к службе директорий, в частности к службам директорий, основанных на протоколе X.500. LDAP работает поверх протокола TCP/IP или другого, ориентированого на передачу данных. Информация о LDAP описана в RFC2251 "The Lightweight Directory Access Protocol (v3)" и в других документах, состоящих из технической информации RFC3377. Этот раздел рассматривает LDAP от лица пользователя.

Какой тип информации может храниться в директориях? Информационная модель LDAP основана на записях. Запись состоит из аттрибутов, которые имеют глобальные и уникальные Distinguished Names(DN). DN используется для точного определения записи. Каждый аттрибут имеет свой тип и одно или несколько значений. Типами обычно являются строки, например, "cn" - common name(имя) или "mail" - почтовый адрес. Значения зависят от типа аттрибута. Например, аттрибуту "cn" может соответствовать значение  Babs Jensen. Аттрибут "mail" может содержать значение "babs@example.com". Аттрибут jpegPhoto должен содержать фотографию в формате jpeg(бинарные данные).

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

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

Так же, LDAP позволяет контролировать какие аттрибуты необходимы и разрешены в записи, используя специальный аттрибут - objectClass. Значение аттрибута objectClass определяет схему правил, которой будет подчиняться запись.

Как информация связана? Записи связаны с помощью своих DN, которые состоят из собственного имени записи(Relative Distinguished Name или RDN) и из имен вышестоящих записей. Например, запись для Barbara Jensen, в примере выше(рис. 1.2) имеет 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 используется для поиска информации в директориях. Операция поиска в LDAP позволяет просмотреть часть директорий, для поиска записей, удовлетворяющих некоторому критерию, указанному в фильтре поиска. Информация может быть запрошена из каждой записи, удовлетворяющей критерию.

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

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

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

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

1.4 Что насчет X.500?

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

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

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

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

Так же возможно скопировать данные из сервера директорий LDAP в X.500 DAP DSA. ЭТа операция потребует шлюз с запущенным DAP/LDAP. OpenLDAP не предоставляет таких возможностей, но демон репликаций может быть использован для копирования данных. Смотрите раздел Копирование данных с помощью slurpd, для более подробной информации о копировании данных.

1.5 Какая разница между LDAPv2 и LDAPv3?

LDAPv3 был разработан в 1990 году, чтобы заменить LDAPv2. В LDAPv3 были добавлены новые возможности:

- Строгая аутентификация и защита данных с помощью SASL.
- Аутентификация с помощью сертефикатов и безопасность данных с помощью TLS(SSL).
- Использование Unicode.
- Использование ссылок.
- Просмотр схем.
- Расширяемость(контроль, расширенные операции и тд.).

LDAPv2 описан в RFC3494. Большинство реализаций LDAPv2(включая slapd) не соответствует технической спецификации, поэтому поддержка LDAPv2 приостановлена. LDAPv2 очень сильно отличается от LDAPv3, настраивать одновременно LDAPv2 и LDAPv3 достаточно проблематично. LDAPv2 лучше не использовать. LDAPv2 выключен по умолчанию.

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

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

LDAPv3: slapd позволяет использовать третью версию LDAP протокола. Slapd поддерживает работу LDAP поверх IPv4 и IPv6 и Unix IPC.

Simple Authentication and Security Layer(SASL): slapd поддерживает аутентификацию и безопасность данных(целостность и конфендициаьность) с помощью испоьзования SASL. Slapd использует утилиты Cyrus-sasl, которые поддерживают разные механизмы аутентификации, например, DIGEST-MD5, EXTERNAL и GSSAPI.

Transport Layer Security(TLS): slapd поддерживает аутентификацию, основанную на сертефикатах, и безопасность данных(целостность и конфендициаьность) с помощью TLS(SSL). Slapd использует утилиты OpenSSL.

Контроль основанный на информации о сети: slapd может быть настроен для распределения доступа, основанного на топологии сети. Это возможность использует TCP wrappers.

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

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

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

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

Единый программный интерфейс для модулей: Если вам необходимо больше гибкости, то вы можете написать собственный модуль для slapd. slapd разделен на две части: передняя часть, которая содержит протокол связи с LDAP клиентами и модульная часть, которая содержит специфические задачи, например, операции с БД. Так как эти две части связаны между собой с помошью хорошо определенного языка C, то вы можете написать собственные модули, которые смогут расширить возможности slapd. Так же поддерживается большое число программируемых модулей БД. Это позволит вам подключить внешние данные к slapd, используя популярные языки программирования(Perl, Shell, SQL и TCL).

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

Репликации: slapd может быть настроен для хранения копий директорий. Схема single-master/multiple-slave очень важна в большой среде, где единственный slapd сервер не может обеспечить необходимую доступность и надежность. Slapd поддерживает два метода репликации: основанную на синхронизации и основанную на демоне slurpd(8).

Кэширующий прокси: slapd может быть настроен как кэширующий LDAP прокси сервер.

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

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

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

Смотрите раздел Replication with slurpd для информации о том, как настроить и запустить демон репликаций slurpd(8).

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



размещено: 2007-04-05,
последнее обновление: 2007-11-21,
автор: fr33man



Хостинг HOST-FOOD

2014-07-27, lissyara
gmirror

Удалённое создание софтверного зеркала средствами gmirror, на диске разбитом с использованием gpart. Использование меток дисков для монтирования разделов.
2013-08-20, zentarim
Scan+Print server FreeBSD 9

Настройка сервера печати и сервера сканирования под управлением операционной системы FreebSD 9 для МФУ Canon PIXMA MP540
2011-11-20, BlackCat
Разъём на WiFi-карту

Делаем съёмной несъёмную антену на WiFi-карте путём установки ВЧ-разъёма
2011-09-14, manefesto
Настройка git+gitosis

Настройка системы контроля версия исходного кода в связке git+gitosis+ssh
2011-08-14, zentarim
Wi-FI роутер + DHCP + DNS

Настройка Wi-Fi роутера на Freebsd 8 + DNS сервер + DHCP сервер: чтобы Wi-Fi клиенты были в одной подсети с проводными, проводные и беспроводные клиенты получали адреса автоматически по DHCP, кэширующ
2011-06-15, -ZG-
Охранная система на FreeBSD+LPT

В этой статье описана попытка реализации простой охранной системы на базе FreeBSD с подключением к ней охранных устройтсв на LPT порт и видеорегистрацией.
2011-03-13, terminus
ng_nat

Описание работы ng_nat, практическое использование, достоинства и недостатки в сравнении с ipfw nat
2011-02-20, Капитан
Nagios+Digitemp

Статья описывает создание системы оповещения о превышении температуры в специальных помещениях на основе Nagios с использованием программы Digitemp.
2011-02-17, Le1
Zyxel Configuration

Скрипт для массового изменения конфига свичей Zyxel. Берет из файла iplist список ip-шек, заходит последовательно на каждый и выполняет комманды из файла commands, записывая происходящее в лог файл.
2011-02-16, fox
hast carp zfs ucarp cluster

HAST (Highly Available Storage), CARP, UCARP, ZFS, Cluster настройка и одаптация плюс личные размышления…
2011-02-04, BlackCat
Восстановление ZFS

История о том, как был восстановлен развалившийся RAIDZ ZFS-пул (перешедший в FAULTED) с помощью скотча и подручных средств. Или о том, какие приключения ожидают тех, кто не делает резервных копий.
2011-02-03, Капитан
1-Wire

Статья описывает самостоятельное изготовление контроллера DS9097 для съёма показаний с датчиков температуры DS1820 с помощью программы Digitemp.
2011-01-28, Капитан
Температура в серверной

Статья описывает построение системы наблюдения за температурой в помещении серверной с использованием программы Digitemp и выводом графиков в MRTG
2011-01-21, m4rkell
Syslog server

Как то буквально на днях, у нас завалилось, что то в еве) или не в еве не суть. Суть в том, что когда захотели снять логи с хостов esx обнаружили, что хранят эти негодяи логии только за последнии сутк
2011-01-07, lissyara
Canon/gphotofs

Монтирование цифровых фотоаппаратов Canon (PTP) как файловой системы, автоматизация этого процесса через события devd и внешние скрипты.
2010-12-13, Al
IPSec

Описание принципов работы IPSEC и способов аутентификации.
2010-12-07, manefesto
FreeBSD on flash

Было принято решении переехать на USB Flash и установить минимальный джентельменский набор для работы своего роутера. Делаем =)
2010-12-05, Fomalhaut
root ZFS, GPT

Инструкция по установке FreeBSD с использованием в качестве таблицы разделов GPT и в качестве основной файловой системы - ZFS
2010-09-05, Cancer
Настройка аудиоплеера на ximp3

Цели: Простенький аудиоплеер, для того что бы тетя продавец в магазине утром пришла нажала на кнопку Power и заиграла в зале музыка, так же был доступ по сети, общая шара куда можно заливать музыку, к
подписка

    вверх      
Статистика сайта
Сейчас на сайте находится: 12 чел.
За последние 30 мин было: 56 человек
За сегодня было
150 показов,
37 уникальных IP
 

  Этот информационный блок появился по той простой причине, что многие считают нормальным, брать чужую информацию не уведомляя автора (что не так страшно), и не оставляя линк на оригинал и автора — что более существенно. Я не против распространения информации — только за. Только условие простое — извольте подписывать автора, и оставлять линк на оригинальную страницу в виде прямой, активной, нескриптовой, незакрытой от индексирования, и не запрещенной для следования роботов ссылки.
  Если соизволите поставить автора в известность — то вообще почёт вам и уважение.

© lissyara 2006-10-24 08:47 MSK

Время генерации страницы 0.0861 секунд
Из них PHP: 56%; SQL: 44%; Число SQL-запросов: 42 шт.
Исходный размер: 49091; Сжатая: 13781