Хостинг SpaceWeb
Серверы Дизайн Сайты Безопасность Домены PHP Кейсы клиентов

LDAP: что это и как работает. Полное руководство

Рассказываем, как работает LDAP, какие задачи он решает и чем отличается от Active Directory.

Что такое LDAP 

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

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

LDAP не ограничивается какой-то одной программой или платформой. Это протокол, то есть стандарт, по которому обмениваются данными различные системы. Благодаря независимости от производителей, LDAP поддерживается множеством программных решений — включая Microsoft Active Directory, OpenLDAP и другие.

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

Для чего нужен протокол LDAP 

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

LDAP особенно ценен для корпоративных сетей, потому что позволяет:

История возникновения и развития LDAP

Протокол был создан в 1993 году Тимом Хоузом и его коллегами из Университета Мичигана. Его разработка стала ответом на неудобства и ограничения, которые были связаны с использованием существовавших тогда протоколов семейства X.500, в частности DAP (Directory Access Protocol). 

В те годы протоколы X.500 отличались сложностью, большим объемом потребляемого трафика и высокими требованиями к ресурсам оборудования. Из-за этого подключение к корпоративным каталогам зачастую было доступно только крупным серверам и мейнфреймам, а для обычных персональных компьютеров такие решения были практически недоступны.

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

В конце 1990-х годов появилась 3 версия LDAP, которая была принята в качестве интернет-стандарта для работы с каталогами. LDAPv3 и сегодня остается самой распространенной версией протокола.

Дальнейшее развитие LDAP связано с появлением OpenLDAP. В 1998 году Курт Зейленга выпустил OpenLDAP 1.0 — первую полностью открытую реализацию клиентских и серверных приложений на основе LDAPv3. В этот проект были добавлены новые функции безопасности, расширена поддержка платформ и исправлены ошибки. OpenLDAP быстро завоевал популярность в IT-среде благодаря возможности доработки и кастомизации под нужды конкретной организации. С 1999 года проектом активно занимаются Говард Чу и команда Symas.

В том же 1999 году компания Microsoft представила Active Directory — корпоративный каталог, который основывается на LDAP и Kerberos, но содержит ряд проприетарных расширений. Из-за этого организации стали более зависимыми от экосистемы Microsoft.

С тех пор LDAP оказал огромное влияние на развитие каталогов и систем управления доступом. Благодаря своей простоте, гибкости и совместимости с различными платформами, он по-прежнему остается важнейшим элементом современной IT-инфраструктуры.

Принцип работы LDAP

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

Пользователь или приложение работает с LDAP через специальный клиент — Directory User Agent (DUA), который связывается с сервером (Directory System Agent, DSA) по протоколу LDAP.

Структура LDAP

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

На какие элементы LDAP-протокола стоит обратить внимание:

Дерево каталогов 

Дерево каталогов (Directory Information Tree, DIT) — это основной элемент LDAP, который организует все данные в виде древовидной структуры. У такой структуры есть:

Корень — верхний уровень, от которого строится вся иерархия. 

Например:

dc=company,dc=ru

Ветви — промежуточные уровни. К ним могут относиться подразделения компании, отделы, группы ресурсов и так далее. Например:

ou= employees,dc= company,dc= ru

Листья — отдельные объекты без подчиненных элементов — пользователи, устройства, принтеры. 

Например:

cn=Иван Иванов,ou= employees,dc=company,dc=ru

С помощью DIT LDAP позволяет наглядно и логично структурировать информацию компании, облегчая ее поиск и управление доступом.

Записи 

Запись — это объект, который описывает конкретного пользователя, устройство или ресурс. Каждая запись хранит определенные атрибуты, аналогично тому, как контакт в телефонной книге содержит номер телефона, имя и адрес электронной почты.

Записи идентифицируются с помощью Distinguished Name (DN). DN уникален для каждой записи и показывает ее точное местоположение внутри дерева каталогов.

Пример DN для сотрудника Петра Иванова:

cn=Петр Иванов,ou=IT,ou= employees,dc=company,dc=ru

Атрибуты 

Атрибуты — это конкретные данные, которые хранятся внутри записи. Они состоят из пары «тип=значение». Например:

mail=ivanov@company.ru

Типичные атрибуты пользователя включают:

Перечень доступных атрибутов задается через ObjectClass, который определяет, какие именно атрибуты должны присутствовать в каждой записи.

Схемы 

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

LDAPv3 содержит стандартную схему, но компании могут создавать свои схемы для кастомизации под конкретные задачи.

DN и RDN 

Distinguished Name (DN) — это уникальный путь к записи в LDAP-дереве, который определяет точное местоположение объекта. DN состоит из набора сегментов (RDN), записанных через запятую.

Например:

cn=Мария Кузнецова,ou=employees,dc=company,dc=ru

Здесь DN указывает, что запись о Марии Кузнецовой находится в подразделении сотрудников компании.

Relative Distinguished Name (RDN) — это отдельные части DN, которые описывают конкретный атрибут на каждом уровне иерархии:

На примере простой структуры схема выглядит так:

dc=company,dc=ru

├── ou=employees

│   ├── cn=Мария Кузнецова

│   └── cn=Алексей Смирнов

└── ou=groups

    ├── cn=admins

    └── cn=developers

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

Хотя большинство сотрудников даже не подозревают, что используют LDAP, этот протокол обеспечивает авторизацию, поиск информации и подключение к корпоративным сервисам десятки или сотни раз в день. Для полноценной работы с ним стоит разобраться, что происходит за кулисами при каждом таком взаимодействии.

Стандартный сценарий работы с LDAP состоит из нескольких этапов:

Шаг 1. Установка соединения

Клиент (например, корпоративное приложение или система аутентификации) устанавливает соединение с сервером LDAP по стандартному порту — как правило, TCP 389 или 636 для защищенных соединений.

Шаг 2. Аутентификация

Перед выполнением запросов сервер требует идентифицировать клиента, чтобы понять, какие действия ему разрешены.

Существуют два варианта аутентификации:

Если аутентификация не требуется (например, для публичных данных), сервер может разрешить анонимный доступ.

Шаг 3. Отправка запроса

После успешного входа клиент отправляет запрос — например, поиск определенного пользователя по фамилии или e-mail. Запрос формируется на специальном языке поиска, который поддерживает LDAP, где указываются критерии отбора, необходимые атрибуты и область поиска в иерархии DIT.

Например, для поиска пользователя с фамилией Смирнов в отделе кадров запрос будет таким:

Base DN: ou=employees,dc=company,dc=ru

Фильтр: (sn=Смирнов)

Возвращаемые атрибуты: cn, mail, title

Шаг 4. Обработка запроса и ответ

LDAP-сервер ищет подходящие записи в иерархии каталога. Он сравнивает фильтры запроса с имеющимися объектами и возвращает найденные значения в виде набора атрибутов (например, имя, e-mail, должность).

Шаг 5. Завершение сессии

После получения нужной информации соединение с сервером закрывается с помощью команды Unbind.

Весь этот процесс занимает доли секунды и повторяется множество раз за день — практически каждый раз, когда сотрудник взаимодействует с внутренними сервисами компании.

Операции LDAP

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

Пример взаимодействия с LDAP:

HR-менеджер нанимает нового сотрудника. Специалист по IT добавляет его данные через Add-запрос. Когда новичок приходит на работу, он проходит аутентификацию через Bind, а его начальник быстро находит контактные данные через Search. Если сотрудник увольняется — его учетная запись удаляется с помощью Delete.

Преимущества LDAP

Недостатки LDAP

Сферы применения LDAP

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

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

Безопасен ли LDAP

Безопасность — одна из самых важных тем при работе с LDAP. 

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

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

Чтобы обеспечить безопасность при работе с LDAP, применяют несколько обязательных мер:

LDAP vs. Active Directory: в чем разница

LDAP и Active Directory (AD) нередко упоминают в одном контексте, но это не одно и то же. 

LDAP — это открытый протокол для работы с каталогами, который может использоваться разными системами и приложениями.  Active Directory — это продукт Microsoft для управления пользователями и доступом, и в его основе действительно лежит LDAP. Хотя не только он.

Основные отличия:

Таким образом, если вам нужна гибкость, интеграция с разными системами и платформами — выбирайте чистый LDAP. Если же у вас инфраструктура построена вокруг Windows и требуется тесная интеграция с продуктами Microsoft, то Active Directory подойдет больше.

Заключение

LDAP — это инструмент, который делает работу с пользователями и доступом в компании проще и понятнее. С ним администраторы могут централизованно управлять учетными записями, быстро добавлять новых сотрудников или ограничивать доступ бывшим, а обычные пользователи — легко находить нужных коллег и получать доступ ко всем нужным сервисам без кучи паролей.

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

Если вашей организации важно быстро настраивать права доступа и поддерживать порядок в корпоративных данных, LDAP — отличное решение. 

Перейти на оригинал