LDAP

LDAP (англ. Lightweight Directory Access ProtocolПолегшений протокол доступу до директорій / каталогів) мережевий протокол прикладного рівня для надсилання запитів та модифікації даних служби каталогів через TCP/IP. LDAP є відкритим, комерційно-нейтральним, (англ. vendor-neutral), промисловим стандартним протоколом. LDAP розроблений IETF як полегшений варіант розробленого ITU-T протоколу DAP.

Короткий опис

LDAP — відносно простий протокол, що використовує TCP/IP і дозволяє проводити операції аутентифікації (bind), пошуку (search) та порівняння (compare), а також операції додавання, зміни або видалення записів. Зазвичай LDAP-сервер приймає вхідні з'єднання на порт 389 по протоколах TCP або UDP. Для LDAP-сеансів, інкапсульованих в SSL, зазвичай використовується порт 636.

Будь-який запис у каталозі LDAP складається з одного або декількох атрибутів і володіє унікальним / розрізняльним ім'ям (DN - англ. Distinguished Name). Унікальне ім'я може виглядати, наприклад, наступним чином: «cn = Іван Петренко, ou = Співробітники, dc = example, dc = com». Унікальне ім'я складається з одного або декількох відносних унікальних імен (RDN - англ. Relative Distinguished Name), розділених комою. Відносне унікальне ім'я має вигляд ІмяАтрибута = значення. На одному рівні каталогу не може існувати двох записів з однаковими відносними унікальними іменами. В силу цієї структури унікального імені записи в каталозі LDAP можна легко уявити у вигляді дерева.

Запис може складатися тільки з тих атрибутів, які визначені в описі класу запису (object class), які, у свою чергу, об'єднані в схеми (schema). У схемі визначено, які атрибути є для даного класу обов'язковими, а які — необов'язковими. Також схема визначає тип і правила порівняння атрибутів. Кожен атрибут запису може зберігати кілька значень.

Як правило, каталог LDAP реалізується згідно з моделлю X.500: він складається із дерева записів[1], кожне з яких складається із множини іменованих атрибутів зі значеннями. Деякі зі служб підтримують складнішу модель «ліс», але більшість мають лише один початковий запис.

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

Остання версія протоколу — LDAPv3. Стандарт LDAPv3 визначено в низці документів IETF, як описано в RFC 4510.

Структура каталогів

Протокол надає інтерфейс з каталогами, які відповідають стандарту X.500 видання 1993 р.:

  • Запис складається з набору атрибутів.
  • Атрибут має ім'я, яке може бути типом атрибута (attribute type) або описом (фактично скороченою назвою) атрибута (attribute description), і одне або кілька значень. Атрибути визначені в схемі.
  • Кожен запис має унікальний ідентифікатор: його розрізняльне ім'я (Distinguished Name — DN). Воно складається з одного чи декількох відносних розрізняльних імен (Relative Distinguished Name — RDN), утворених з одного чи декількох атрибутів в запису. Можна уявити DN як повний шлях до файлу і RDN як ім'я файлу в батьківській папці (наприклад, якщо /foo/bar/myfile.txt є DN, то myfile.txt буде RDN). Добре DN і RDN пояснено тут.

Про опис атрибута йдеться в третьому розділі RFC 4514:

Implementations MUST recognize AttributeType name strings
(descriptors) listed in the following table, but MAY recognize other
name strings. 
(Реалізації ПОВИННІ розпізнавати рядки назв AttributeType (дескрипторів), перелічених в
наступній таблиці, але МОЖУТЬ розпізнавати й інші назви рядків.)
     String  X.500 AttributeType
     ------  --------------------------------------------
     CN      commonName (2.5.4.3)
     L       localityName (2.5.4.7)
     ST      stateOrProvinceName (2.5.4.8)
     O       organizationName (2.5.4.10)
     OU      organizationalUnitName (2.5.4.11)
     C       countryName (2.5.4.6)
     STREET  streetAddress (2.5.4.9)
     DC      domainComponent (0.9.2342.19200300.100.1.25)
     UID     userId (0.9.2342.19200300.100.1.1)

Подану вище таблицю можна оформити так:

(Скорочена) назва Атрибут X.500 Ідентифікатор об'єкта (OID)
CN commonName 2.5.4.3

L

localityName 2.5.4.7
ST stateOrProvinceName 2.5.4.8
O organizationName 2.5.4.10
OU organizationalUnitName 2.5.4.11
C countryName 2.5.4.6
STREET streetAddress 2.5.4.9
DC domainComponent 0.9.2342.19200300.100.1.25
UID userId 0.9.2342.19200300.100.1.1

Назви (імена) атрибутів у формі тип атрибута і опис атрибута наведені та описані в RFC 4519.

Історія виникнення

Телекомунікаційні компанії впровадили концепцію служби каталогів до інформаційних технологій та комп'ютерних мереж так як вони розуміли, на підставі свого 70-річного досвіду роботи з телефонними каталогами. Це вилилося у специфікації X.500 (набору протоколів розробленого ITU у 1980 роках). X.500 служби каталогів були доступні через X.500 протокол доступу до каталогів (англ. Directory Access Protocol DAP), який використовував Open Systems Interconnection (OSI) стек протоколів. Розробка LDAP мала на меті полегшити доступ до X.500 служби каталогів через простіший стек протоколів TCP/IP.

Примітки

Посилання

RFCи

LDAP описується в серії Request for Comments документів:

  • RFC 4510 - LDAP: Technical Specification Road Map (LDAP: Дорожня карта (путівник) технічних характеристик) (Obsoletes (замінює застарілі): RFC 2251, RFC 2252, RFC 2253, RFC 2254, RFC 2255, RFC 2256, RFC 2829, RFC 2830, RFC 3377, RFC 3771)
  • RFC 4511 - LDAP: The Protocol (Протокол) (Obsoletes RFC 2251, RFC 2830 & RFC 3771)
  • RFC 4512 - LDAP: Directory Information Models (Моделі вмісту каталогу) (Obsoletes RFC 2251, RFC 2252, RFC 2256 & RFC 3674)
  • RFC 4513 - LDAP: Authentication Methods and Security Mechanisms (Методи автентифікації і механізми безпеки) (Obsoletes RFC 2251, RFC 2829 & RFC 2830)
  • RFC 4514 - LDAP: String Representation of Distinguished Names (Рядкове подання розрізняльних імен) (Obsoletes RFC 2253)
  • RFC 4515 - LDAP: String Representation of Search Filters (Рядкове подання фільтрів пошуку) (Obsoletes RFC 2254)
  • RFC 4516 - LDAP: Uniform Resource Locator (Універсальний локатор ресурсу) (Obsoletes RFC 2255)
  • RFC 4517 - LDAP: Syntaxes and Matching Rules (Синтаксис і правила відповідності) (Obsoletes RFC 2252 & RFC 2256, Updates (оновлює) RFC 3698)
  • RFC 4518 - LDAP: Internationalized String Preparation (Інтернаціоналізована підготовка рядків)
  • RFC 4519 - LDAP: Schema for User Applications (Схема для користувацьких застосунків/додатків) (Obsoletes RFC 2256, Updates RFC 2247, RFC 2798 & RFC 2377)

Наступні RFCи детально описують LDAP-специфічні найкращі існуючі практики/технічні прийоми:

  • RFC 4520 (also (також) BCP 64) - Internet Assigned Numbers Authority (IANA) Considerations for the Lightweight Directory Access Protocol (LDAP) (Адміністрації адресного простору Інтернет (IANA) рекомендації/міркування для полегшеного протоколу служби каталогів (LDAP)) (replaced (замінений) RFC 3383)
  • RFC 4521 (also BCP 118) - Considerations for Lightweight Directory Access Protocol (LDAP) Extensions (Рекомендації щодо розширень полегшеного протоколу служби каталогів (LDAP))

Неповний список RFCів, які визначають розширення LDAPv3:

  • RFC 2247 - Use of DNS domains in distinguished names (Використання DNS доменів в розрізняльних іменах) (Updated by RFC 4519 & RFC 4524)
  • RFC 2307 - Using LDAP as a Network Information Service (Використання LDAP як Інформаційної служби мережі)
  • RFC 2589 - LDAPv3: Dynamic Directory Services Extensions (Розширення служби динамічного каталогу)
  • RFC 2649 - LDAPv3 Operational Signatures (LDAPv3 Операційні підписи)
  • RFC 2696 - LDAP Simple Paged Result Control (LDAP Простий сторінковий контроль результатів)
  • RFC 2798 - inetOrgPerson LDAP Object Class (inetOrgPerson клас об'єкта LDAP) (Updated by (Оновлений в) RFC 3698, RFC 4519 & RFC 4524)
  • RFC 2830 - LDAPv3: Extension for Transport Layer Security (LDAPv3: Розширення для безпеки на транспортному рівні)
  • RFC 2849 - The LDAP Data Interchange Format (LDIF) (Формат обміну даними LDAP (LDIF))
  • RFC 2891 - Server Side Sorting of Search Results (Серверна частина/сторона сортування результатів пошуку)
  • RFC 3045 - Storing Vendor Information in the LDAP root DSE (Збереження інформації про виробника в кореневих DSE LDAP)
  • RFC 3062 - LDAP Password Modify Extended Operation (Розширена операція зміни пароля в LDAP)
  • RFC 3296 - Named Subordinate References in LDAP Directories (Іменовані підлеглі посилання в LDAP каталогах)
  • RFC 3671 - Collective Attributes in LDAP (Колективні/спільні атрибути в LDAP)
  • RFC 3672 - Subentries in LDAP (Підзаписи в LDAP)
  • RFC 3673 - LDAPv3: All Operational Attributes (LDAPv3: Всі операційні атрибути)
  • RFC 3687 - LDAP Component Matching Rules (LDAP Компонент правил відповідності)
  • RFC 3698 - LDAP: Additional Matching Rules (LDAP: Додаткові правила відповідності)
  • RFC 3829 - LDAP Authorization Identity Request and Response Controls (Авторизація запитів ідентифікації і відповіді управління)
  • RFC 3866 - Language Tags and Ranges in LDAP (Мовні теги і діапазони в LDAP)
  • RFC 3909 - LDAP Cancel Operation (LDAP Операція скасування)
  • RFC 3928 - LDAP Client Update Protocol (LCUP) (Клієнтський протокол оновлень)
  • RFC 4370 - LDAP Proxied Authorization Control (Доручений контроль авторизації)
  • RFC 4373 - LDAP Bulk Update/Replication Protocol (LBURP) (Протокол масового оновлення/реплікації)
  • RFC 4403 - LDAP Schema for Universal Description, Discovery, and Integration version 3 (UDDIv3) (LDAP Схема для опису, представлення та інтеграції версії 3 (UDDIv3))
  • RFC 4522 - LDAP: Binary Encoding Option (Опція двійкового кодування)
  • RFC 4523 - LDAP: X.509 Certificate Schema (Схема Х.509-сертифікату)
  • RFC 4524 - LDAP: COSINE Schema (replaces RFC 1274) (Схема COSINE (Co-operation and Open Systems Interconnection in Europe (Кооперація і взаємодія відкритих систем в Європі))
  • RFC 4525 - LDAP: Modify-Increment Extension (Розширення зміни-збільшення [значення атрибутів])
  • RFC 4526 - LDAP: Absolute True and False Filters (Абсолютні фільтри істини і хибності)
  • RFC 4527 - LDAP: Read Entry Controls (Управління читанням записів)
  • RFC 4528 - LDAP: Assertion Control (Управління підтвердженням)
  • RFC 4529 - Requesting Attributes by Object Class in the Lightweight Directory Access Protocol (LDAP) (Запит атрибутів за класом об'єкта в LDAP)
  • RFC 4530 - LDAP: entryUUID Operational Attribute (Операційний атрибут entryUUID [UUID запису])
  • RFC 4531 - LDAP Turn Operation (Операція зміни [ролей клієнта і сервера])
  • RFC 4532 - LDAP "Who am I?" Operation ( "Хто я?" операція)
  • RFC 4533 - LDAP Content Synchronization Operation (Операція синхронізації контенту)
  • RFC 4876 - Configuration Profile Schema for LDAP-Based Agents (Конфігурація профілю схеми для LDAP-заснованих агентів)
  • RFC 5020 - LDAP entryDN Operational Attribute (Операційний атрибут entryDN [запис розрізняльного імені])

LDAPv2 було зазначено в наступних документах RFC:

  • RFC 1777 - Lightweight Directory Access Protocol (replaced RFC 1487)
  • RFC 1778 - The String Representation of Standard Attribute Syntaxes (Рядкове подання синтаксисів стандартних атрибутів) (replaced RFC 1488)
  • RFC 1779 - A String Representation of Distinguished Names (Рядкове подання розрізняльних імен) (replaced RFC 1485)


LDAPv2 був наданий історичний статус за наступним RFC:

  • RFC 3494 - Lightweight Directory Access Protocol version 2 (LDAPv2) to Historic Status (Полегшений протокол доступу до каталогів версії 2 (LDAPv2)) в історичний статус)
Історія RFCів пов'язаних з LDAP
This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.