Обычно организации полагаются на LDAP (Lightweight Directory Access Protocol) для осуществления критически важного управления, хранения и аутентификации пользователей. Однако он может сбивать пользователей с толку, заставляя их путать его с Active Directory. В этой статье мы рассмотрим LDAP, его назначение и принцип работы. Затем мы рассмотрим его ключевые особенности, структуру каталога и возможности организации данных. Наконец, мы расскажем о важности LDAP для управления службой каталогов и аутентификации пользователей.
Что такое LDAP?
LDAP расшифровывается как Lightweight Directory Access Protocol. Это открытый протокол, который управляет безопасной аутентификацией пользователей для локальных каталогов. Кроме того, это нейтральный к производителям прикладной протокол, что делает его универсальным и повсеместным, особенно в распределенных информационных службах каталогов через Интернет. LDAP эффективно позволяет приложениям запрашивать информацию о пользователях. Это означает, что он может работать различными способами в службах ИТ-инфраструктуры, включая службы электронной почты, авторизации, управления лицензиями и управления пользователями.

Однако не следует путать ее со службами активных каталогов – набором служб/баз данных, используемых предприятиями для организации, доступа и защиты ИТ-активов. По сути, службы каталогов позволяют организациям хранить данные, которые являются описательными, статичными и ценными. Технически, LDAP относится к полному процессу представления данных в службе каталогов. Она гарантирует, что пользователи могут получать данные в заранее определенном порядке. Это означает, что LDAP позволяет организациям создавать записи данных в службах каталогов с помощью своих инструментов. Таким образом, в рамках Active Directory LDAP также обеспечивает составление записей на основе различных примитивных элементов.
Короче говоря, LDAP – это:
- Коммуникационный протокол
- Это открытый прикладной протокол, нейтральный по отношению к производителям.
- Программный протокол хранит и упорядочивает данные, чтобы их можно было легко искать.
- Работает с местными каталогами
- Работает с Active Directory, содержащей статичные, описательные и ценные данные.
- Это не новый протокол, он был выпущен в 2003 году.
Какова его цель?
Назначение LDAP вращается вокруг двух вещей:
- Он хранит данные в каталоге LDAP/Active
- Аутентификация доступа пользователя к этому каталогу
- Позволяет приложениям использовать соответствующий язык общения для отправки и получения данных из служб каталогов.
Другими словами, он действует как коммуникационный протокол, который не только способен обеспечить аутентификацию и авторизацию, но и организовать данные в удобном для поиска виде. Используя LDAP, организации могут хранить важную информацию о пользователях и ИТ-активах, включая учетные данные пользователей. Более того, он может обеспечить безопасный доступ, позволяя администраторам активно устанавливать правила доступа.
Как работает LDAP?
В основе LDAP лежит архитектура клиент-сервер. Поэтому, когда происходит аутентификация LDAP, она осуществляется по модели клиент-сервер. При этом ключевыми участниками являются следующие игроки:
- Агент системы каталогов (Directory System Agent, DSA): Сервер, на котором работает LDAP в определенной сети.
- Отличительное имя (DN): содержит путь для навигации по информационному дереву каталога (DIT).
- Агент пользователя каталога (DUA): DUA используется для доступа к DSA в качестве клиента.
- Относительное отличительное имя (RDN): RDN определяет каждый компонент в пути DN.
- Интерфейс прикладного программирования (API): У нас есть API, которые обеспечивают связь между услугами и продуктами.

В процессе аутентификации LDAP, когда пользователь запускает программу LDAP-клиента, например, приложение электронной почты, администратор может настроить взаимодействие LDAP-клиента со службами каталогов для аутентификации. Например, он может использовать любой из двух доступных методов аутентификации пользователей:
- SASL-аутентификация с Kerberos
- Простая SSO аутентификация с учетными данными для входа в систему
При попытке входа в систему запрашивается аутентификация DN. После запуска процесса LDAP назначает клиента агенту системы каталогов (DSA), который использует DN для поиска подходящих записей в базе данных. Относительное отличительное имя (RDN) в DN является важной частью поиска LDAP, поскольку оно используется на каждом этапе процесса поиска через информационное дерево каталога (DIT). Если поиск успешен, совпадающие UID и пароль пользователя сопоставляются для подтверждения пользователя. Если нет, возвращаются недопустимые результаты.
Наконец, клиент отвязывается от сервера LDAP. После этого аутентифицированный пользователь может взаимодействовать с сервисами через API. Это означает, что он может просматривать всю хранящуюся информацию – единственным ограничением являются предоставленные разрешения. Если вы хотите прочитать больше о том, как работает LDAP, ознакомьтесь с документом, опубликованным в 2003 году Грегом Ванедером и Марком Уолом. А если вы хотите прочитать больше о том, как работает LDAP-поиск, ознакомьтесь со статьей The LDAP Search Operation.
Ключевые особенности LDAP
Основные возможности LDAP можно кратко описать ниже:
- Аутентификация пользовательских сессий: Он может использоваться для аутентификации сеансов пользователей в службе базы данных, например, Active Directory.
- Различные типы операций: Он также может выполнять операции с базой данных сервера каталогов, включая
- Легкий вес: LDAP является легковесным, обеспечивая небольшую нагрузку на сеть и системные ресурсы.
- Независимость от поставщиков и протоколов: LDAP также не зависит от производителя и протокола. Это означает, что она работает с любым поставщиком/решением/протоколом. Например, вы можете использовать LDAP через TCP/IP или X.25. Однако последняя версия LDAP, LDAPv3, использует TCP/IP.
- Структура каталога: LDAP использует структуру дерева каталогов для хранения и доступа к активам в базе данных каталога. Отношения “родитель-ребенок” обеспечивают более быстрый поиск и извлечение информации.
- Стандартизация: LDAP стандартизирован IETF (Internet Engineering Task Force). Стандартизация гарантирует, что LDAP будет работать у разных производителей.
- Безопасность: LDAP безопасна. Безопасность достигается за счет использования безопасного протокола TLS на уровне TCP/IP. Он также может использовать Secure Socket (SSL) для шифрования, расшифровки и передачи информации удаленно с полной целостностью и конфиденциальностью.
- Репликация: LDAP также поддерживает репликацию на нескольких серверах. Это обеспечивает избыточность данных и доступность данных в случае каких-либо сбоев. Для этого используется Syncrepl – механизм репликации Sync.

Структура каталога LDAP
Каталог LDAP имеет четкую, определенную структуру. Это обеспечивает легкий доступ к данным и повышает удобство поиска содержимого каталога LDAP. Поскольку LDAP имеет древовидную структуру, он является иерархическим. Именно поэтому его предпочитают называть Directory Information Tree (DIT).
Различные уровни структуры каталога LDAP включают:
- Корневой каталог
- Страны
- Организация
- Организационная единица
- Физические лица
- Организационная единица
Как вы можете видеть, в каталоге LDAP существует древовидная структура. Корневой” каталог – это запись верхнего уровня, которая включает в себя все остальные записи уровня каталога. Под ним вы получаете страну (страны), которая затем разветвляется на организацию (организации). Далее он разветвляется на организационные единицы (OU) и, наконец, на индивидуумов и группы. Чтобы понять структуру каталога LDAP, давайте рассмотрим пример ниже.
- Root (Top-level entry)
|
+-- Country: "dc=com" (e.g., dc=example,dc=com)
|
+-- Organization: "dc=example" (e.g., dc=example)
|
+-- Organizational Unit (OU): "ou=Users"
| |
| +-- User: "cn=Nitish Singh"
| |
| +-- User: "cn= Oliver Green"
|
+-- Organizational Unit (OU): "ou=Groups"
|
+-- Group: "cn=Admins"
|
+-- Group: "cn=Users"
|
+-- Group: “cn=Superusers”
Корневая сущность идентифицируется с помощью DC, что означает атрибут компонента домена. Так, если “dc=com”, то корневая запись идентифицируется как домен “com”. Под корнем можно иметь несколько организаций или доменов. Это представлено “dc=organization.” под доменом “com”. Аналогично, каждая организация может иметь одну или несколько организационных единиц (OU). Администратор может логически организовать их в подразделения. Например, можно задать OU как “пользователи”, “группы” или “суперпользователи”.
Наконец, под каждой OU можно перечислить различные записи, включая группы, устройства, пользователей и т.д. В нашем примере два значения OU users включают “Nitish Singh” и “Oliver Green”. Аналогично, в OU Groups у нас есть “Admins”, “Users” и “Superusers”. Структура каталога LDA в значительной степени зависит от Distinguished Name (DN), поскольку оно используется для идентификации каждой записи. Это потому, что оно содержит уникальное имя и используется для получения относительного отличительного имени (RDN).
Общие элементы LDAP
Чтобы понять организацию данных LDAP, нам необходимо разобраться в общих элементах LDAP, на основе которых строятся записи системы LDAP.
К основным компонентам данных LDAP относятся:
- Атрибуты:
- Записи:
- Информационные деревья данных
Атрибуты
Атрибуты в LDAP – это пары ключ-значение. Они хранят данные в системе LDAP. Например, атрибут mail должен использоваться для хранения почты в системе LDAP.
mail: nitish@geekflare.com
Записи
Записи в системе LDAP ассоциируются с атрибутами, чтобы придать им смысл. Записи можно рассматривать как коллекцию связанных атрибутов. Например, данные в формате LDIF (LDAP Data Interchange Format) будут выглядеть следующим образом:
dn: sn=Hogwarts, ou=wizards, dc=WizardingWorld, dc=fiction
objectclass: wizard
sn: Hogwarts
cn: Harry Potter
Информационные деревья данных
Информационные деревья данных, или DIT, представляют данные и обеспечивают доступ к ним в системе LDAP. Поскольку большинство данных разветвлены, имеет смысл представлять их в виде деревьев. Это аналогично файловой системе с ассоциацией “родитель-дети”.
Организация данных LDAP
Теперь, имея базовое представление о сущностях, мы можем изучить организацию данных в системе LDAP. Здесь LDAP использует DIT для организации и структурирования данных. Однако как это достигается? Давайте обсудим это ниже. Поместить в DIT записи, которые связаны друг с другом иерархически. Таким образом, когда создается новая запись, она добавляется в древовидную структуру как дочерняя по отношению к существующей записи.
Все начинается с вершины иерархического дерева в DIT. Поскольку она охватывает все дочерние записи, она в основном маркируется как организация, например, “dc=com или пример”. Это делается с помощью компонентов домена для обеспечения простоты управления. Таким образом, администратор может установить местоположение, используя l=location_name или организационные сегменты, такие как ou=tech, marketing и т.д.
В записях используется объектный класс Organization Unit (OU). Это потому, что записи могут использовать метку атрибута ou=. Они просты и предлагают отличный способ категоризации и поиска информации в DIT. Далее следует еще одно важное понятие, известное как относительное отличительное имя. Это относительное имя элемента в зависимости от его уровня иерархии DIT. Таким образом, чтобы получить доступ к записи, вам нужно ввести значения RDN элемента вместе со значением RDN родительского элемента.
Это создает цепочку значений RDN, которая идет снизу вверх, создавая путь к этой записи. И эта цепочка значений RDN известна как “отличительное имя или DN”. Другими словами, вы должны упомянуть DN во время создания записи, чтобы LDAP точно знал, куда вам нужно поместить новый актив или информацию. Таким образом, RDN действует как относительное значение, в то время как DN – это скорее абсолютный путь.
Важность LDAP
В этом разделе мы рассмотрим важность LDAP с двух точек зрения:
- Управление службой каталогов: Протокол LDAP имеет соответствующие средства для хранения и доступа к данным каталога LDAP. Мы уже обсуждали их в разделах “Как работает LDAP и компоненты данных” и “Организация”. LDAP – это средство для управления, хранения, доступа и защиты данных. Она также обеспечивает эффективный поиск информации. Кроме того, он обеспечивает масштабируемость и репликацию.
- Аутентификация пользователей: Помимо управления службами каталогов, LDAP отлично справляется с аутентификацией и авторизацией пользователей. После создания соединения пользователь может получить доступ к хранимым активам на основе правил доступа, установленных администратором.
LDAP vs. Active Directory
Обычно люди путают LDAP и Active Directory. LDAP и Active Directory от Microsoft тесно сотрудничают, чтобы предоставить организациям средства для безопасного и надежного хранения и доступа к организационным данным в разных отделах. Итак, LDAP – это протокол, тогда как Active Directory – это продукт службы каталогов, который хранит организационные данные в древовидной структуре. LDAP действует как коммуникационный протокол для доступа к серверам каталогов, таким как Active Directory.
Заключение
LDAP является ключевым протоколом для работы со службами активных каталогов. Это легкий протокол, который не создает никаких накладных расходов на службы и серверы, с которыми он работает. Более того, его открытый исходный код, нейтральность к поставщикам и стандартизированный характер означает, что он может быть легко интегрирован в существующие решения.