Открыть сервис

LDAP-каталоги

LDAP-каталог — это специализированная база данных, организованная по иерархическому принципу и оптимизированная для операций чтения, поиска и аутентификации. Доступ к данным в таком каталоге осуществляется по протоколу LDAP (Lightweight Directory Access Protocol — облегчённый протокол доступа к каталогам). В отличие от реляционных баз данных, LDAP-каталоги предназначены для хранения статичной или редко изменяющейся информации об объектах (пользователях, группах, устройствах, ресурсах) и обеспечивают быстрое выполнение запросов на поиск и сравнение.

История и происхождение

Протокол LDAP был разработан в начале 1990-х годов как упрощённая альтернатива протоколу X.500, который использовался для создания глобальных каталогов в сетях OSI. X.500 был мощным, но сложным в реализации и требовал значительных вычислительных ресурсов. Группа исследователей из Мичиганского университета (Tim Howes, Steve Kille, Wengyik Yeong) создала LDAP как облегчённую версию, работающую поверх стека протоколов TCP/IP, что сделало его доступным для сетей на основе Internet.

Первая версия LDAP (RFC 1487) была опубликована в 1993 году. В 1997 году вышла версия LDAPv3 (RFC 2251), ставшая стандартом де-факто. Впоследствии спецификации были уточнены в RFC 4510–4533 (2006 год). LDAPv3 поддерживает расширения, механизмы безопасности (SSL/TLS, SASL) и гибкие схемы данных.

Структура и модель данных

LDAP-каталог построен на древовидной иерархии, называемой DIT (Directory Information Tree). Каждый узел дерева — это запись (entry), которая состоит из набора атрибутов (attribute). Атрибуты имеют тип и одно или несколько значений.

Основные компоненты

Иерархия

Корень дерева — это DSE (Directory System Agent), который не содержит пользовательских данных. Под ним располагаются записи, соответствующие доменам (dc — domain component), организационным единицам (ou — organizational unit) и конечным объектам (cn — common name, uid — user id). Типичная структура для организации:

`` dc=example, dc=com ├── ou=Сотрудники │ ├── cn=Иван Петров │ └── cn=Мария Смирнова └── ou=Группы └── cn=Администраторы ``

Протокол LDAP

LDAP — это клиент-серверный протокол, работающий поверх TCP (порт по умолчанию — 389 для незащищённого соединения, 636 — для LDAPS). Основные операции протокола:

Фильтры поиска

LDAP поддерживает гибкие фильтры на основе булевой логики:

Применение

LDAP-каталоги широко используются в корпоративных информационных системах для централизованного управления учётными записями и ресурсами.

Аутентификация и авторизация

Управление учётными записями

Сетевые сервисы

Каталоги ресурсов

Популярные реализации

OpenLDAP

Свободная реализация LDAP-сервера, поддерживающая LDAPv3, репликацию (Syncrepl), ACL, TLS и SASL. Распространена в Unix-подобных системах. Настраивается через конфигурационные файлы (slapd.conf) или динамически через OLC (Online Configuration).

Microsoft Active Directory

Собственная реализация Microsoft, основанная на LDAP, но с расширениями (схема, групповая политика, Kerberos). Active Directory использует LDAP для доступа к данным, но также включает собственные протоколы (Kerberos, NTLM, DNS). Является стандартом в корпоративных сетях Windows.

389 Directory Server (Fedora Directory Server)

Свободный LDAP-сервер от Red Hat, поддерживающий многомастерную репликацию, виртуальные атрибуты и интеграцию с Kerberos.

ApacheDS (Apache Directory Server)

Реализация на Java, полностью совместимая с LDAPv3, поддерживает Kerberos, NTLM, и может быть встроена в приложения.

Безопасность

LDAP-каталоги часто содержат критически важные данные (пароли, списки доступа), поэтому безопасность является приоритетом:

Критика и ограничения

Интересные факты

BFOmetr — база данных и аналитика по компаниям России.

На главную BFOmetr →