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

LDAP

LDAP (Lightweight Directory Access Protocol, «облегчённый протокол доступа к каталогам») — это открытый, независимый от платформы сетевой протокол прикладного уровня, предназначенный для доступа к службам каталогов (directory services) и управления ими. Протокол основан на модели клиент-сервер и определяет способ хранения, поиска, чтения, записи, изменения и удаления информации в иерархической структуре каталога. LDAP является упрощённой версией более сложного протокола X.500 (DAP — Directory Access Protocol), адаптированной для работы поверх стека протоколов TCP/IP.

История

Разработка LDAP была начата в начале 1990-х годов в Мичиганском университете. Основной целью являлось создание облегчённой альтернативы протоколу DAP из рекомендации X.500, который требовал значительных вычислительных ресурсов и был сложен в реализации. Первая версия протокола (LDAPv1) была опубликована в 1993 году, однако широкого распространения не получила. Версия LDAPv2, выпущенная в 1995 году, стала более популярной и была описана в документе RFC 1777. Современная и наиболее распространённая версия — LDAPv3 — была стандартизирована в 1997 году (RFC 2251, позднее заменён на RFC 4511). Версия v3 добавила поддержку механизмов аутентификации SASL, расширений, контроля ссылок (referrals) и улучшенную модель безопасности. В 2006 году все спецификации LDAPv3 были переработаны и опубликованы в виде серии RFC (серия 4510–4519).

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

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

Иерархия и имена

Каждая запись в DIT имеет уникальное отличительное имя (Distinguished Name, DN), которое однозначно определяет её положение в дереве. DN состоит из последовательности относительных отличительных имён (Relative Distinguished Name, RDN), разделённых запятыми. RDN — это один или несколько атрибутов, которые однозначно идентифицируют запись среди её «соседей» на одном уровне.

Пример DN: cn=Иван Петров,ou=Сотрудники,dc=example,dc=com

Здесь:

Классы объектов и схемы

Структура записей (какие атрибуты обязательны и допустимы) определяется схемой (schema) каталога. Схема включает в себя определения классов объектов (objectClass) и типов атрибутов. Каждая запись должна содержать атрибут objectClass, который указывает, к какому классу (или классам) она относится. Классы могут быть структурными (определяют тип записи, например, person, organizationalUnit), вспомогательными (добавляют дополнительные атрибуты) или абстрактными (служат для наследования). Схема LDAP является расширяемой — администратор может определять собственные классы и атрибуты.

Атрибуты

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

Операции протокола

LDAP определяет набор основных операций, которые клиент может выполнять над каталогом:

Применение

LDAP является ключевым протоколом для централизованного управления идентификацией и доступом (IAM). Основные области применения:

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

LDAP-каталоги часто используются как единый источник данных о пользователях для аутентификации (проверки пароля) и авторизации (определения прав доступа). Многие операционные системы (Linux, Windows Server через Active Directory), приложения (почтовые серверы, веб-серверы, системы управления контентом) и сервисы могут быть настроены на проверку учётных данных через LDAP.

Корпоративные справочники

LDAP позволяет создавать иерархические справочники сотрудников, контактов, подразделений, групп и ресурсов (принтеры, компьютеры). Такие справочники могут быть доступны для поиска и просмотра всем сотрудникам организации.

Управление конфигурацией сети

В некоторых системах (например, в OpenLDAP или Active Directory) LDAP используется для хранения конфигурационных данных сетевых устройств, политик безопасности и групповых политик.

Единый вход (SSO)

LDAP часто служит бэкендом для систем единого входа (Single Sign-On). После прохождения аутентификации в LDAP пользователь получает доступ к нескольким приложениям без повторного ввода пароля.

Реализации

Существует множество реализаций LDAP-серверов и клиентов. Наиболее известные:

Клиентами LDAP могут быть как специализированные утилиты (например, ldapsearch, ldapadd из пакета OpenLDAP), так и графические интерфейсы (например, Apache Directory Studio, Softerra LDAP Browser).

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

LDAPv3 предусматривает несколько механизмов защиты:

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

Источники

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

На главную BFOmetr →