V tomto referátu bude stručně popsán systém LDAP, jeho účel, použití a vlastnosti.
LDAP je protokol, určený k správě a uchovávání informací v adresářové struktuře. Jedná se většinou o informace o osobách, zaměstnancích, uživatelích (jméno, heslo, e-mail, domovský adresář, telefonní čísla, id, pozice, bydliště), zařízení (umístění, cena, detaily), nebo třeba společnostech (jméno, IČO, sídlo, kontaktní osoba). Služba LDAP funguje na bázi server - klient dotazování, které probíhá přes IP protokol. Je tedy obecně vhodná pro účely databáze v niž jsou data strukturovaná do stromové struktury (skupiny, podskupiny libovolné úrovně, seznamy).
Adresářové služby slouží pro organizaci a uchování dat v hierarchické struktuře, které se říká adresář. Specifikem adresářů je datový model, ten obsahuje položky uspořádané v zmíněné hierarchické struktuře a každá položka obsahuje atributy (atribut je nositel hodnoty). Adresáře můžeme rozdělit podle toho jakým způsobem spolupracují s ostatními aplikacemi [K. Benák].
X.500 je označení standardů pro adresářové služby, které jsou definovány dokumenty X.500 až X.521 [Recommendations X.500] vytvořenými CCITT (Consultative Committee on International Telephony and Telegraphy) [J. Sitera]. Tyto standardy specifikují adresářové datové struktury a operace nad nimi. Součastně jsou vystavěny na modelu server - klient (komunikace klienta s adresářovým serverem - directory access protocol DAP). LDAP byl navržen jako zjednodušená forma DAP (lightweight) přizpůsobená protokolům TCP/IP, tento projekt se postupem času osamostatnil.
Pro adresáře obvykle platí, že jsou vhodné pro taková data ke kterým je často přistupováno, ale nebyvají tak často měněna (databáze osob, společností, zařízení).
Strom objeků (DIT - Directory Information Tree) je konkretní struktura adresářového stromu. Zahrnuje specifikaci větvení stromu, rozdělení položek do skupin, atributy jednotlivých položek. Každá položka má unikátní jméno, které je složené z části popisující větev do které patří a jméno položky v dané větvi. Pro návrh struktury stromu objektů existuje mnoho postupů, členění konkretního stromu je totiž danné a neměné, ale existuje mnoho různých hledisek jak k datům přistupovat, což je třeba zohlednit při návrhu.
Data jsou tedy v LDAP informačním modelu uložena v hierarchické struktuře v položkách, každá položka obsahuje atrubuty s hodnotou definovaného typu. LDAP schéma určuje soubor povolených typů položek stromu, určuje jména a typy atributů každé položky.
Standartní LDAP atributy jsou například: c - country, o - organisation, ou - organization unit, cn - common name, uid - identification
Příklad definice standartní položky Person a atributu Surname je uveden níže.
objectclass ( 2.5.6.6 NAME 'person'
attributetype ( 2.5.4.4 NAME ( 'sn' 'surname' )
LDAP Schema obsahuje definici standartních typů dat, atributů a položek. Základními typy jsou: ces - řetězec znaků (case sensitive), cis - retězec znaků (Case Insensitive), tel - telefonní číslo, bin - libovolná (binární) data, dn - rozlišovací jméno (objektu v adresářových službách). Je možné definovat vlastní datové typy, atributy a položky.
Každý záznam v LDAP má unikátní jméno - distinguished name (DN), složené z atributů a jejich hodnot určujících, kde se daný záznam nachází ve stromové struktuře.
Pro práci v LDAP slouží nástroje konzolové (ldap-utils, ldaptor-utils), nebo s grafickým rozhraním (GQ). Všechny tyto nástroje se snaží uživateli poskytnout přístup k LDAP operacím. LDAP operace můžeme rozdělit do 3 tříd: a) prohledávání, b) změny dat, c) autentizace.
Prohledávání (ldapsearch) - jediná operace pro získávání dat z databáze, je navržena obecně, jak pro prohledávání, tak pro získání konkretních dat.
Změny dat - ldapadd, ldapdelete, ldapmodify
Autentizace - ldapbind, ldapunbind
OpenLDAP [OpenLDAP] je open source implementace protokolu LDAP, vyvíjený OpenLDAP Project od roku 1998. Software je dostupný pro různé platformy: Linux, BSD-variants, AIX, Android, HP-UX, Mac OS X, Solaris, Microsoft Windows (NT, 2000, XP, Vista, Windows 7), a z/OS. Součástí balíku je:
Server je po instalaci v základním nastavení, konfigurační soubor je umístěn na Linuxu v /etc/ldap/slapd.conf. Schéma je umístěno v adresáři /etc/ldap/schema/.
Připojení uživatele xstepan3 na server můjhost, port 389, s heslem heslo.
Vyhledání všech položek (filtr "objectclass=*"), prohledávaná oblast je specifikována pomocí "ou=people,dc=acme,dc=com", anonimní autentifikace.
Přidání položky z textového souboru novyuzivatel.ldif
Smazání položky.
Atributy PosixAccount a ShadowAccount odpovídají obsahově záznamům v unixových souborech /etc/passwd, /etc/shadow. Tyto záznamy jsou nutné pro autentizaci v unixových systémech.
Existuje několik možností autentizace:
Pro možnost použití LDAP serveru pro autentizaci v unixu je třeba mít nastavené položky posixAccount a shadowAccount. Dále je třeba nainstalovat podporu LDAP v nsswitch a pam modul pro LDAP. Konfigurace nsswitch bývá v souboru /etc/nsswitch.conf, je zde potřeba nastavit možnost dotazování na informace o uživatelích:
passwd: files ldap
group: files ldap
Pam modul je treba nastavit na adresu konkretního LDAP serveru, a začlenit pam modul pam_ldap.so do autentizačního systému /etc/pam.d/common.
Důležitým faktorem LDAP serveru je jeho dostupnost, robustnost a rychlost. Pro zlepšení těchto vlastností lze použít následující postupy.
Členění na části, kdy každá část obsahuje určitou část LDAP stromu a je zajištěna jinými prostředky. Jednotlivé části jsou potom spojeny odkazy.
Pro zvýšení rychlosti a dostupnosti je možné utvořit několik replik, kdy v případě výpadku jedné zajistí dostupnost služby druhá. Při běžném provozu je nápor rozložen na jednotlivé repliky, což zvyšuje rychlost.