LDAP: відмінності між версіями

Матеріал з Вікіпедії — вільної енциклопедії.
Перейти до навігації Перейти до пошуку
[перевірена версія][перевірена версія]
Вилучено вміст Додано вміст
TohaomgBot (обговорення | внесок)
м Перекладено дати в примітках з англійської на українську
 
(Не показано 34 проміжні версії 8 користувачів)
Рядок 1: Рядок 1:
{{IPstack}}
{{IPstack}}

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

Серед поширених варіантів використання LDAP&nbsp;— надання єдиного сховища для зберігання імен користувачів та паролів. Це дозволяє різним службам та застосункам надсилати запити до LDAP сервера для валідації користувачів<ref>{{cite web|title=Introduction to OpenLDAP Directory Services|url=http://www.openldap.org/doc/admin24/intro.html|website=OpenLDAP|access-date=1 лютого 2016}}</ref>.


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


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


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


Як правило, каталог LDAP реалізується згідно з [[модель|моделлю]] [[X.500]]: він складається із [[дерево (структура даних)|дерева]] [[запис (програмування)|записів]]<ref>[http://www.itu.int/rec/T-REC-X.500-200811-S/en ITU-T Recommendation X.500 (11/08) "Information technology Open Systems Interconnection The Directory: Overview of concepts, models and services"], зокрема ''Figure 2 Structure of the DIT and of entries''</ref>, кожне з яких складається із множини іменованих атрибутів зі значеннями. Деякі зі служб підтримують складнішу модель «ліс», але більшість мають лише один початковий запис.
Як правило, каталог LDAP реалізується згідно з [[модель|моделлю]] [[X.500]]: він складається із [[дерево (структура даних)|дерева]] [[запис (програмування)|записів]]<ref>[http://www.itu.int/rec/T-REC-X.500-200811-S/en ITU-T Recommendation X.500 (11/08) «Information technology&nbsp;— Open Systems Interconnection&nbsp;— The Directory: Overview of concepts, models and services»] {{Webarchive|url=https://web.archive.org/web/20141217163613/http://www.itu.int/rec/T-REC-X.500-200811-S/en |date=17 грудня 2014 }}, зокрема ''Figure 2&nbsp;— Structure of the DIT and of entries''</ref>, кожне з яких складається із множини іменованих атрибутів зі значеннями. Деякі зі служб підтримують складнішу модель «ліс», але більшість мають лише один початковий запис.


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


== Структура каталогів ==
== Структура каталогів ==
Протокол надає інтерфейс з каталогами, які відповідають стандарту [[X.500]] видання 1993 р.:
Протокол надає інтерфейс з каталогами, які відповідають стандарту [[X.500]] видання 1993&nbsp;р.:
* Запис складається з набору атрибутів.
* Запис складається з набору атрибутів.
* Атрибут має ім'я, яке може бути ''типом атрибута (attribute type)'' або ''описом'' (фактично скороченою назвою) ''атрибута (attribute description''), і одне або кілька значень. Атрибути визначені в ''схемі''.
* Атрибут має ім'я, яке може бути ''типом атрибута (attribute type)'' або ''описом'' (фактично скороченою назвою) ''атрибута (attribute description''), і одне або кілька значень. Атрибути визначені в ''схемі''.
* Кожен запис має унікальний ідентифікатор: його ''розрізняльне ім'я (Distinguished Name'' — DN). Воно складається з одного чи декількох ''відносних розрізняльних імен (Relative Distinguished Name'' — RDN), утворених з одного чи декількох атрибутів в запису. Можна уявити DN як [[Шлях файлу|повний шлях до файлу]] і RDN як ім'я файлу в батьківській папці (наприклад, якщо <code>/foo/bar/myfile.txt</code> є DN, то <code>myfile.txt</code> буде RDN). Добре DN і RDN пояснено [http://www.zytrax.com/books/ldap/apa/dn-rdn.html тут].
* Кожен запис має унікальний ідентифікатор: його ''розрізняльне ім'я (Distinguished Name''&nbsp;— DN). Воно складається з одного чи декількох ''відносних розрізняльних імен (Relative Distinguished Name''&nbsp;— RDN), утворених з одного чи декількох атрибутів в запису. Можна уявити DN як [[Шлях файлу|повний шлях до файлу]] і RDN як ім'я файлу в батьківській папці (наприклад, якщо <code>/foo/bar/myfile.txt</code> є DN, то <code>myfile.txt</code> буде RDN). Добре DN і RDN пояснено [http://www.zytrax.com/books/ldap/apa/dn-rdn.html тут] {{Webarchive|url=https://web.archive.org/web/20141108224139/http://www.zytrax.com/books/ldap/apa/dn-rdn.html |date=8 листопада 2014 }}.

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


Про ''опис атрибута'' йдеться в третьому розділі RFC 4514:
Implementations MUST recognize AttributeType name strings
Implementations MUST recognize AttributeType name strings
(descriptors) listed in the following table, but MAY recognize other
(descriptors) listed in the following table, but MAY recognize other
Рядок 90: Рядок 94:
[[X.500]] [[служби каталогів]] були доступні через [[X.500]] протокол доступу до каталогів ({{lang-en|Directory Access Protocol}}&nbsp;— [[DAP]]), який використовував Open Systems Interconnection ([[OSI]]) стек протоколів. Розробка LDAP мала на меті полегшити доступ до [[X.500]] [[служби каталогів]] через простіший стек протоколів [[TCP/IP]].
[[X.500]] [[служби каталогів]] були доступні через [[X.500]] протокол доступу до каталогів ({{lang-en|Directory Access Protocol}}&nbsp;— [[DAP]]), який використовував Open Systems Interconnection ([[OSI]]) стек протоколів. Розробка LDAP мала на меті полегшити доступ до [[X.500]] [[служби каталогів]] через простіший стек протоколів [[TCP/IP]].


== Примітки ==
{{reflist}}
== Посилання ==
== Посилання ==
===RFCи===
<!--{{Inuse-by|--[[Користувач:Володимир Ф|<span style='color: green'><i> Володимир Ф</i></span>]] ([[Обговорення користувача:Володимир Ф|<span style='color: green'><i>обговорення</i></span>]]) 19:08, 6 листопада 2014 (UTC)}}-->
{{Edited section}}
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)
<br />
* RFC 4518 - LDAP: Internationalized String Preparation
* RFC 4519 - LDAP: Schema for User Applications (Obsoletes RFC 2256, Updates RFC 2247, RFC 2798 & RFC 2377)


=== RFC ===
The following RFCs detail LDAP-specific Best Current Practices:
LDAP описано в низці документів [[Request for Comments]]:
* RFC 4520 (also BCP 64) - Internet Assigned Numbers Authority (IANA) Considerations for the Lightweight Directory Access Protocol (LDAP) (replaced RFC 3383)
* RFC 4510&nbsp;— 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 4521 (also BCP 118) - Considerations for Lightweight Directory Access Protocol (LDAP) Extensions
* RFC 4511&nbsp;— LDAP: The Protocol (Протокол) (Obsoletes RFC 2251, RFC 2830 & RFC 3771)
* RFC 4512&nbsp;— LDAP: Directory Information Models (Моделі вмісту каталогу) (Obsoletes RFC 2251, RFC 2252, RFC 2256 & RFC 3674)
* RFC 4513&nbsp;— LDAP: Authentication Methods and Security Mechanisms (Методи автентифікації і механізми безпеки) (Obsoletes RFC 2251, RFC 2829 & RFC 2830)
* RFC 4514&nbsp;— LDAP: String Representation of Distinguished Names (Рядкове подання розрізняльних імен) (Obsoletes RFC 2253)
* RFC 4515&nbsp;— LDAP: String Representation of Search Filters (Рядкове подання фільтрів пошуку) (Obsoletes RFC 2254)
* RFC 4516&nbsp;— LDAP: Uniform Resource Locator (Універсальний локатор ресурсу) (Obsoletes RFC 2255)
* RFC 4517&nbsp;— LDAP: Syntaxes and Matching Rules (Синтаксис і правила відповідності) (Obsoletes RFC 2252 & RFC 2256, '''''Updates (оновлює)''''' RFC 3698)
* RFC 4518&nbsp;— LDAP: Internationalized String Preparation (Інтернаціоналізована підготовка рядків)
* RFC 4519&nbsp;— LDAP: Schema for User Applications (Схема для користувацьких застосунків/додатків) (Obsoletes RFC 2256, Updates RFC 2247, RFC 2798 & RFC 2377)


Наступні RFCи детально описують LDAP-специфічні найкращі існуючі практики/технічні прийоми:
The following is a partial list of RFCs specifying LDAPv3 extensions:
* RFC 4520 ('''''also (також)''''' BCP 64)&nbsp;— Internet Assigned Numbers Authority (IANA) Considerations for the Lightweight Directory Access Protocol (LDAP) (Адміністрації адресного простору Інтернет (IANA) рекомендації/міркування для полегшеного протоколу служби каталогів (LDAP)) ('''''replaced (замінений)''''' RFC 3383)
* RFC 2247 - Use of [[Domain Name System|DNS]] domains in distinguished names (Updated by RFC 4519 & RFC 4524)
* RFC 4521 (also BCP 118)&nbsp;— Considerations for Lightweight Directory Access Protocol (LDAP) Extensions (Рекомендації щодо розширень полегшеного протоколу служби каталогів (LDAP))
* RFC 2307 - Using LDAP as a [[Network Information Service]]
* RFC 2589 - LDAPv3: Dynamic Directory Services Extensions
* RFC 2649 - LDAPv3 Operational Signatures
* RFC 2696 - LDAP Simple Paged Result Control
* RFC 2798 - inetOrgPerson LDAP Object Class (Updated by RFC 3698, RFC 4519 & RFC 4524)
* RFC 2830 - LDAPv3: Extension for Transport Layer Security
* RFC 2849 - The LDAP Data Interchange Format ([[LDIF]])
* RFC 2891 - Server Side Sorting of Search Results
* RFC 3045 - Storing Vendor Information in the LDAP root DSE
* RFC 3062 - LDAP Password Modify Extended Operation
* RFC 3296 - Named Subordinate References in LDAP Directories
* RFC 3671 - Collective Attributes in LDAP
* RFC 3672 - Subentries in LDAP
* RFC 3673 - LDAPv3: All Operational Attributes
* RFC 3687 - LDAP Component Matching Rules
* RFC 3698 - LDAP: Additional Matching Rules
* RFC 3829 - LDAP Authorization Identity Controls
* RFC 3866 - Language Tags and Ranges in LDAP
* RFC 3909 - LDAP Cancel Operation
* RFC 3928 - LDAP Client Update Protocol
* RFC 4370 - LDAP Proxied Authorization Control
* RFC 4373 - LBURP
* RFC 4403 - LDAP Schema for UDDI
* RFC 4522 - LDAP: Binary Encoding Option
* RFC 4523 - LDAP: X.509 Certificate Schema
* RFC 4524 - LDAP: COSINE Schema (replaces RFC 1274)
* 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 - LDAP: Requesting Attributes by Object Class
* RFC 4530 - LDAP: entryUUID
* RFC 4531 - LDAP Turn Operation
* RFC 4532 - LDAP Who am I? Operation
* RFC 4533 - LDAP Content Sync Operation
* RFC 4876 - Configuration Profile Schema for LDAP-Based Agents
* RFC 5020 - LDAP entryDN Operational Attribute


Неповний список RFCів, які визначають розширення LDAPv3:
LDAPv2 was specified in the following RFCs:
* RFC 2247&nbsp;— Use of [[Domain Name System|DNS]] domains in distinguished names (Використання [[DNS]] доменів в розрізняльних іменах) (Updated by RFC 4519 & RFC 4524)
* RFC 1777 - Lightweight Directory Access Protocol (replaced RFC 1487)
* RFC 2307&nbsp;— Using LDAP as a {{нп|Network Information Service|Network Information Service|en|Network Information Service}} (Використання LDAP як Інформаційної служби мережі)
* RFC 1778 - The String Representation of Standard Attribute Syntaxes (replaced RFC 1488)
* RFC 2589&nbsp;— LDAPv3: Dynamic Directory Services Extensions (Розширення служби динамічного каталогу)
* RFC 1779 - A String Representation of Distinguished Names (replaced RFC 1485)
* RFC 2649&nbsp;— LDAPv3 Operational Signatures (LDAPv3 Операційні підписи)
* RFC 2696&nbsp;— LDAP Simple Paged Result Control (LDAP Простий сторінковий контроль результатів)
* RFC 2798&nbsp;— inetOrgPerson LDAP Object Class (inetOrgPerson клас об'єкта LDAP) ('''''Updated by (Оновлений в)''''' RFC 3698, RFC 4519 & RFC 4524)
* RFC 2830&nbsp;— LDAPv3: Extension for Transport Layer Security (LDAPv3: Розширення для безпеки на транспортному рівні)


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

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

LDAPv2 був наданий історичний статус за наступним RFC:
* RFC 3494&nbsp;— Lightweight Directory Access Protocol version 2 (LDAPv2) to Historic Status (Полегшений протокол доступу до каталогів версії 2 (LDAPv2)) в історичний статус)

[[Файл:LDAP RFC Hist.jpg|thumb|center|700пкс|Історія RFCів пов'язаних з LDAP]]

== Примітки ==
{{reflist}}


[[Файл:LDAP RFC Hist.jpg||center|700пкс|]]


{{Compu-stub}}
{{telecom-stub}}
{{URI scheme}}
{{мови запитів}}


[[Категорія:Інтернет-протоколи]]
[[Категорія:Інтернет-протоколи]]

Поточна версія на 01:50, 13 жовтня 2023

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

Серед поширених варіантів використання LDAP — надання єдиного сховища для зберігання імен користувачів та паролів. Це дозволяє різним службам та застосункам надсилати запити до LDAP сервера для валідації користувачів[1].

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

[ред. | ред. код]

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: він складається із дерева записів[2], кожне з яких складається із множини іменованих атрибутів зі значеннями. Деякі зі служб підтримують складнішу модель «ліс», але більшість мають лише один початковий запис.

Залежно від обраної моделі, 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 пояснено тут [Архівовано 8 листопада 2014 у Wayback Machine.].

Про опис атрибута йдеться в третьому розділі 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.

Посилання

[ред. | ред. код]

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[en] (Використання 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

Примітки

[ред. | ред. код]
  1. Introduction to OpenLDAP Directory Services. OpenLDAP. Процитовано 1 лютого 2016.
  2. ITU-T Recommendation X.500 (11/08) «Information technology — Open Systems Interconnection — The Directory: Overview of concepts, models and services» [Архівовано 17 грудня 2014 у Wayback Machine.], зокрема Figure 2 — Structure of the DIT and of entries