Zkratka LDAP neboli Lightweight Directory Access Protocol[1][5] označuje protokol pro přístup k centrálně uloženým informacím prostřednictvím počítačové sítě. Počítačová síť je v tomto případ zastoupena spojením přes protokol TCP a centrálně uložená data představuje strukturovaný adresář.
LDAP vychází z protokolu X.500, je však jednodušší a méně náročný na zdroje - proto se mu někdy přezdívá "X.500 Lite".
Adresář má stromovou strukturu, která určuje jednoznačný klíč k záznamům uloženým v listech.
Zachování integrity adresářového stromu má na starosti tzv. schéma, což je soubor pravidel aplikovaných jak na strukturu stromu, tak hodnoty uložené v listech či porovnávání záznamů.
Adresář může také obsahovat odkazy, které umožňují přesměrování dotazujícího na jiné adresáře, což lze použít k vytvoření geograficky rozsáhlého ad-hoc informačního repositáře.
LDAP umožňuje klientským programům přistupovat prostřednictvím serveru k adresáři. Klienti pokládají serveru dotazy, server dotazy nad adresářem vyhodnotí a pošle zpátky odpověď. Komunikace probíhá s několika výjimkami asynchronně, tzn. klient nemusí čekat na vyřízení dotazů a může jich poslat více hned za sebou a server vrací odpovědi v libovolném pořadí. K přiřazení dotazu ke správné odpovědí slouží identifikační čísla obsažená ve zprávách.
Komunikace probíhá na TCP portu číslo 389, starší verze protokolu (LDAPv2) ještě používaly port 636 pro tunelování LDAPU pomocí SSL, od roku 2003 je však tento způsob šifrování společně s protokolem verze 2 oficiálně považován za zastaralý.
LDAP je binární protokol, popsaný pomocí ASN.1[3] (Abstract Syntax Notation One) a přenášený kódováním BER (Basic Encoding Rules). Naštěstí jej však lze prezentovat i v lidsky čitelné formě např. pomocí LDIF[4] (LDAP Data Interchange Format).
Příklad LDIF převzatý z wikipedie:
dn: cn=The Postmaster,dc=example,dc=com objectClass: organizationalRole cn: The Postmaster
U LDAPu verze 2 bylo zabezpečení často tunelováním veškeré komunikace prostřednictvím SSL. LDAP verze 3 přidává nový příkaz StartTLS, který zahájí komunikaci prostřednictvím TLS. Pro ověření identity serveru (a volitelně i klienta) je použit X.509 certifikát.
StartTLS - Použije TLS rozšíření LDAP verze 3 pro zabezpečení spojení.
Bind - Autentizace a oznámení verze protokolu. Pokud je LDAP používán pouze k autentizaci, bývá zpravidla používán jen a pouze tento příkaz.
Search - Vyhledávání položek v adresáři.
Compare - Ověření zda položka s daným jménem obsahuje danou hodnotu.
Add - Přidá nový záznam.
Delete - Smaže záznam.
Modify - Modifikace záznamu.
Modify Distinguished Name - Vzhledem k tomu, že DN udává jedinečnou cestu k hodnotě záznamu, dojde modifikací DN k přesunu či přejmenování záznamu.
Abandon - Zrušení požadavku s daným ID zprávy. Server tento požadavek nemusí přijmout, tato operace také nevrací žádnou zprávu o úspěšném ukončení operace.
Extended Operation - Obecná operace pro tvorbu nových rozšiřujících operací.
Unbind - Zruší všechny doposud nevyřízené operace a ukončí spojení. Nevrací žádný návratový kód nebo jeho obdobu.
Umožňují klientským programům přístup k adresáři pomocí počítačové sítě.
Komunikují s LDAP serverem pomocí počítačové sítě, zadávají dotazy týkající se adresáře a zpracovávají vrácené výsledky.
Instalace OpenLDAPu na CENTOS je podrobně popsána v dokumentaci CENTOSu[6], zde pro přehlednost uvedu výtah založený na stručné instalační příručce.[7]
Předpokládejme, že je uživatel přihlášen jako root.
Nainstalujeme potřebné balíky:
yum install openldap openldap-servers openldap-clientsPoté modifikujeme hlavní konfigurační soubory:
nano /etc/openldap/slapd.confA spustíme LDAP démona:
service ldap start
Funkčnost můžeme ověřit např. pomocí příkazu ldapssearch:
ldapsearch -x
ldapssearch s parametrem -x by měl vyhledat všechny záznamy a vypsat je v LDIF formátu na standardní výstup.
Převzato z referátu na LDAP z jara 2011[8].
Připojení uživatele xstepan3 na server můjhost, port 389, s heslem heslo.
ldapbind -h můjhost -p 389 -D "cn=xstepan3" -w heslo
Vyhledání všech položek (filtr objectclass=*), prohledávaná oblast je specifikována pomocí ou=people,dc=acme,dc=com, anonymní autentizace.
ldapsearch -h můjhost -p 389 -b "ou=students,o=muni,dc=cz" "objectclass=*"
Přidání položky z textového souboru novyuzivatel.ldif
ldapadd -h můjhost -p 389 -D "cn=xstepan3" -w heslo -f novyuzivatel.ldif
Smazání položky.
ldapdelete -h můjhost -p 389 -D "cn=xstepan3" -w heslo "uid=uzivatel,ou=students,o=muni,dc=cz"