LDAP

LDAP (Lightweight Directory Access Protocol – олекотен протокол за достъп до справочници) е протокол за достъп до онлайн справочни услуги.

IETF проектира и дефинира LDAP като по-добър начин за използване на X.500 справочниците, тъй като намира първоначалния DAP (Directory Access Protocol – протокол за достъп до справочници) твърде сложен, за да може да бъде използван от обикновени интернет клиенти. LDAP дефинира сравнително прост протокол за обновяване и претърсване на справочници, който използва TCP/IP.

Общият термин „LDAP справочник“ заблуждава. Няма определен тип справочник, който е „LDAP справочник“. Всеки справочник, достъпен чрез LDAP протокола и способен да идентифицира обектите в справочника чрез X.500 идентификатори, може да бъде обозначен с този термин. Въпреки че справочници като OpenLDAP и неговите предшественици от Мичиганския университет са били проектирани предимно като местни хранилища, оптимизирани за достъп чрез LDAP, а не като шлюз към X.500 протоколи, те не са „LDAP справочници“ до степен, по-голяма от всеки друг справочник, достъпен чрез LDAP протокола.

Един запис в LDAP справочника се състои от именуван набор от атрибути. Записът има уникален идентификатор – DN (distinguished name – отличително име), който се образува от стойността на един от атрибутите и пълният път в дървото – например cn=Петър Петров,ou=People,dc=example,dc=com. Всеки от атрибутите в записа има тип и една или повече стойности. Типовете обикновено са мнемонични символни низове като „cn“ за common name (обикновено име) или „mail“ за електронен адрес. Стойностите зависят от типа и повечето недвоични стойности в LDAPv3 са UTF-8 символни низове. Например един атрибут за електронен адрес би могъл да съдържа стойността „user@example.com“. Един jpegPhoto атрибут би могъл да съдържа снимка в двоичен JPEG/JFIF формат.

Записите в LDAP справочниците са подредени йерархично. Структурата се нарича DIT (Directory Information Tree, Информационно дърво на справочника) и отразява политически, географски или организационни граници. В първоначалния X.500 модел записите, представящи държави, са в корена на дървото; под тях са записите, представящи щати, области, провинции или национални организации. Моделът X.500 предполага национални регистратори, които раздават идентификаторите и се грижат те да са уникални. Типичните LDAP реализации обаче използват DNS имена за структуриране на горните нива на йерархията, т.е. стъпват на вече изградена структура за уникално идентифициране в световен мащаб. Например, ако българската Уикипедия имаше LDAP справочник, коренът му според DNS структурата би бил dc=bg,dc=wikipedia,dc=org. По-надолу може да има записи, представящи хора, организационни подразделения и единици, принтери, документи и др.

Примерна структура на справочник 
 dc=example,dc=com
 |
 +ou=People
 | |
 | +cn=Петър Петров
 | |
 | +cn=Иванка Иванова
 |
 +ou=Groups
          |
          +cn=Управители
          |
          +cn=Счетоводство
          |
          +cn=Маркетинг

Официални стандарти 
 RFC 2251 – LDAP версия 3
 RFC 2252 – атрибути на записите в LDAP справочници
 RFC 2253 – представяне на отличителните имена
 RFC 2254 – филтри за търсене в LDAP справочници
 RFC 2255 – LDAP URL
 RFC 2256 – X.500 схема за ползване в LDAP справочници

Софтуер за реализиране на LDAP справочници 
LDAP сървъри, които са свободен софтуер:

 OpenLDAP – доработка на първоначалната реализация на Мичиганския университет. Разработчиците му активно развиват протокола в IETF.
 Fedora Directory Server  – бившият Netscape Directory Server, който също води началото си от реализацията на Мичиганския университет.

Мрежови протоколи
Интернет