Від відмінних імен до автентифікації користувача

Що таке LDAP та його роль в управлінні користувачами?

Організації часто використовують LDAP (Lightweight Directory Access Protocol) як фундаментальний інструмент для управління, зберігання та автентифікації користувачів. Проте, це може призвести до плутанини серед користувачів, які можуть вважати його тотожним Active Directory.

У цій статті ми детально розглянемо LDAP, його призначення та принципи функціонування. Розглянемо також його основні можливості, організацію каталогів та методи зберігання даних. Зрештою, ми підкреслимо важливість LDAP у контексті управління службами каталогів та автентифікації користувачів.

Що являє собою LDAP?

LDAP, або Lightweight Directory Access Protocol, – це полегшений протокол доступу до каталогів. Він являє собою відкритий стандарт, який забезпечує безпечну автентифікацію користувачів для локальних каталогів. Крім того, це протокол прикладного рівня, незалежний від конкретного постачальника, що робить його універсальним та широко застосовуваним, особливо в контексті розподілених інформаційних служб каталогів в Інтернеті.

Ефективність LDAP полягає в його здатності дозволяти додаткам звертатися за необхідною інформацією про користувачів. Це означає, що він може використовуватися в різноманітних аспектах ІТ-інфраструктури, таких як електронна пошта, авторизація, управління ліцензіями та контроль за обліковими записами користувачів.

Важливо не плутати LDAP зі службами Active Directory, які є набором сервісів/баз даних, що використовуються компаніями для організації, доступу та захисту ІТ-ресурсів. Загалом, служби каталогів дозволяють організаціям зберігати описову, статичну та важливу інформацію.

З технічної точки зору, LDAP – це спосіб представлення даних у службі каталогів, який гарантує, що користувачі можуть отримувати дані чітко визначеним способом. Тобто, LDAP дозволяє організаціям створювати записи даних в службах каталогів за допомогою власних інструментів.

Зокрема, в Active Directory, LDAP забезпечує можливість створення записів на основі різних, чітко окреслених, базових елементів.

Підсумовуючи, LDAP є:

  • Комунікаційний протокол.
  • Відкритий протокол прикладного рівня, що не залежить від постачальника.
  • Програмний протокол для зберігання та систематизації даних з метою полегшення пошуку.
  • Інструмент, що працює з локальними каталогами.
  • Інструмент, сумісний з Active Directory, що зберігає статичні, описові та цінні дані.
  • Протокол, випущений ще в 2003 році.

Яке призначення LDAP?

Основні цілі LDAP полягають у наступному:

  • Зберігання даних у каталозі LDAP/Active Directory.
  • Автентифікація доступу користувачів до певного каталогу.
  • Забезпечення програмним засобам необхідної мови для відправки та отримання даних з служб каталогів.

Іншими словами, LDAP діє як протокол зв’язку, який не тільки здатний забезпечити автентифікацію та авторизацію, але й організовує дані, полегшуючи їх пошук. Завдяки LDAP організації можуть зберігати важливу інформацію про користувачів та ІТ-ресурси, включаючи облікові дані. Крім того, він забезпечує безпечний доступ, дозволяючи адміністраторам активно встановлювати правила доступу.

Як функціонує LDAP?

В основі LDAP лежить архітектура клієнт-сервер.

При здійсненні автентифікації LDAP, застосовується модель клієнт-сервер. Основними компонентами цієї взаємодії є:

  • Агент системи каталогів (DSA): Це сервер, на якому працює LDAP в конкретній мережі.
  • Розрізнене ім’я (DN): Це шлях для навігації по дереву інформації каталогу (DIT).
  • Агент користувача каталогу (DUA): DUA використовується як клієнт для доступу до DSA.
  • Відносне розрізнене ім’я (RDN): RDN визначає кожен компонент у шляху DN.
  • Інтерфейс прикладного програмування (API): API дозволяє обмін даними між різними службами та продуктами.

У процесі автентифікації, коли користувач запускає клієнтську програму LDAP (наприклад, електронну пошту), адміністратор може налаштувати спосіб взаємодії клієнта LDAP зі службами каталогів для автентифікації. Наприклад, можна використовувати будь-який з двох доступних методів автентифікації:

При спробі входу, відбувається запит на автентифікацію DN. Після запуску цього процесу, LDAP призначає клієнта агенту системи каталогів (DSA), який використовує DN для пошуку відповідних записів у базі даних.

Відносне розрізнене ім’я (RDN) в DN відіграє ключову роль у пошуку LDAP, оскільки воно застосовується на кожному етапі пошуку в дереві інформації каталогу (DIT).

Якщо пошук успішний, відповідні UID та пароль користувача перевіряються для підтвердження його особи. У випадку невдачі, повертаються недійсні результати.

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

Для отримання більш детальної інформації про функціонування LDAP, рекомендуємо ознайомитись зі статтею, опублікованою у 2003 році Грегом Ванедером та Марком Валом. Також, якщо вас цікавлять пошукові операції LDAP, перегляньте Операцію пошуку LDAP.

Основні характеристики LDAP

Основні функції LDAP можна підсумувати наступним чином:

  • Автентифікація сеансів користувачів: LDAP можна використовувати для автентифікації сеансів користувачів у базах даних, таких як Active Directory.
  • Різноманітні типи операцій: LDAP дозволяє виконувати різні операції з базою даних сервера каталогів, включаючи:
    • обов’язкові сесії,
    • видалення записів LDAP,
    • редагування існуючих записів,
    • пошук та порівняння записів,
    • скасування запитів,
    • операції роз’єднання.
  • Легкість: LDAP є “легким” протоколом, що забезпечує низьке навантаження на мережу та системні ресурси.
  • Незалежність від постачальника та протоколу: LDAP працює незалежно від конкретного постачальника або протоколу. Він може використовуватися з будь-яким постачальником, рішенням або протоколом, наприклад, TCP/IP або X.25. Проте, остання версія LDAP, LDAPv3, використовує TCP/IP.
  • Структура каталогів: LDAP використовує деревоподібну структуру для зберігання та доступу до даних у базі даних каталогів. Структура “батько-дитина” забезпечує швидкий пошук та навігацію.
  • Стандартизація: LDAP стандартизовано IETF (Internet Engineering Task Force), що забезпечує його сумісність між різними постачальниками.
  • Безпека: LDAP забезпечує безпеку завдяки використанню TLS на рівні TCP/IP. Він також може використовувати SSL для шифрування, дешифрування та віддаленої передачі даних із забезпеченням цілісності та конфіденційності.
  • Реплікація: LDAP підтримує реплікацію на декількох серверах, що забезпечує резервування даних та їх доступність у випадку збоїв. Він використовує Syncrepl – механізм реплікації Sync.

Структура каталогу LDAP

Каталог LDAP має чітку, визначену структуру, що забезпечує легкий доступ до даних та ефективний пошук.

Оскільки LDAP має деревоподібну структуру, він ієрархічний, і тому його часто називають деревом інформації каталогу (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 включають “Нітіш Сінгх” та “Oliver Green”. Подібним чином, в групах OU є “Адміністратори”, “Користувачі” та “Суперкористувачі”.

Структура каталогу LDAP тісно пов’язана з розрізненим ім’ям (DN), яке використовується для ідентифікації кожного запису, містить унікальне ім’я та використовується для отримання відносного розрізненого імені (RDN).

Загальні елементи LDAP

Для розуміння організації даних LDAP, необхідно розглянути загальні елементи LDAP, які формують записи системи LDAP.

Основні компоненти даних LDAP включають:

  • Атрибути
  • Записи
  • Інформаційні дерева даних

Атрибути

Атрибути в LDAP представляють пари ключ-значення, що зберігають дані в системі LDAP. Наприклад, атрибут “mail” використовується для зберігання електронної пошти.

mail: [email protected]

Записи

Записи в системі LDAP пов’язані з атрибутами, щоб надати їм значення. Записи можна розглядати як набір пов’язаних атрибутів.

Наприклад, дані у форматі LDIF (формат обміну даними LDAP) можуть виглядати так:

dn: sn=Hogwarts, ou=wizards, dc=WizardingWorld, dc=fiction

objectclass: wizard

sn: Hogwarts

cn: Harry Potter
  

Інформаційні дерева даних

Інформаційні дерева даних (DIT) використовуються для представлення та доступу до даних в системі LDAP. Оскільки більшість даних мають розгалужену структуру, DIT є аналогом файлової системи з відносинами “батько-дитина”.

Організація даних LDAP

Маючи основне розуміння сутностей LDAP, можна перейти до дослідження організації даних в системі LDAP.

LDAP використовує DIT для організації та структурування даних, розміщуючи записи в ієрархічній структурі, де новий запис додається як дочірній до існуючого. Це досягається за допомогою ієрархічного розташування даних, починаючи з вершини дерева DIT, де організація (наприклад, “dc=com” або “example”) слугує кореневим записом.

Адміністратори можуть визначати місцезнаходження записів за допомогою атрибутів “l=назва_розташування” або організаційних сегментів, наприклад, “ou=tech”, “marketing” тощо. Записи можуть використовувати мітку атрибута “ou=” та objectClass організаційної одиниці (OU) для класифікації та пошуку інформації в DIT.

Відносне розрізнене ім’я (RDN) – це відносна назва елемента залежно від його рівня ієрархії в DIT. Щоб отримати доступ до запису, потрібно вказати RDN сутності та RDN її батьківського елемента. Цей ланцюжок значень RDN, що йде знизу вгору, створює шлях до цього запису, відомий як “Розрізнене ім’я” (DN). DN використовується під час створення запису, щоб LDAP точно знав, де розмістити нову інформацію. RDN є відносним значенням, а DN є абсолютним шляхом.

Важливість LDAP

Розглянемо важливість LDAP з двох точок зору:

  • Керування службою каталогу: LDAP надає відповідні засоби для зберігання та доступу до даних каталогу LDAP, як це було описано в розділах “Як працює LDAP” та “Організація даних”. LDAP є інструментом для управління, зберігання, доступу та захисту даних. Він забезпечує ефективний пошук інформації, а також пропонує масштабованість та реплікацію.
  • Автентифікація користувачів: Окрім управління службами каталогів, LDAP ефективний для автентифікації та авторизації користувачів. Після встановлення з’єднання, користувач може отримати доступ до збережених ресурсів на основі правил доступу, встановлених адміністратором.

LDAP проти Active Directory

Часто виникає плутанина між LDAP та Active Directory. LDAP і Microsoft Active Directory тісно взаємодіють, щоб забезпечити організаціям засоби для безпечного зберігання та доступу до даних.

LDAP – це протокол, а Active Directory – продукт служби каталогів, що зберігає організаційні дані у деревоподібній структурі. LDAP діє як протокол зв’язку для доступу до серверів каталогів, таких як Active Directory.

Висновок

LDAP є ключовим протоколом для роботи зі службами Active Directory. Це “легкий” протокол, що не створює навантаження на служби та сервери, з якими він працює. Його відкритий вихідний код, незалежність від постачальника та стандартизований характер роблять його легким для інтеграції з існуючими рішеннями.

Також рекомендуємо дослідити можливості багатофакторної аутентифікації (MFA).