Adresářová služba X.500 a LDAP Autor Martin Lasoň Abstrakt Potřeba aplikací sdílet a udržovat informace o službách, uživatelích nebo jiných objektech vedla ke vzniku specializovaných databází adresářů. Adresářová služba může být například seznam lidí ve firmě, jejich přihlašovací jména, osobní informace nebo čísla telefonů. Díky ní může mít uživatel například jen jedno heslo pro více systémů. Standard X.500 byl navržen proto, aby všechny tyto objekty popsal. Je však velmi obecný a jeho implementace je náročná. Proto byl navržen protokol LDAP, který definuje způsoby, jak přistupovat k adresáři a upravovat v něm informace. Klíčová slova X.500, Adresářová služba, LDAP. Obsah 1 Adresářová služba 2 2 LDAP 2 3 Informační model LDAP 3 3.1 Uspořádání informací.............................. 3 3.2 Přístup k informacím.............................. 4 3.3 Ochrana proti neautorizovanému přístupu.................. 4 1
1 Adresářová služba Adresář je specializovaná databáze optimalizovaná pro čtení a vyhledávání [2]. Adresáře obsahují informace popisující objekt pomocí atributů. Na rozdíl od relačních databází, operace čtení se v adresářích používá mnohem častěji než operace zápisu. Takže zatímco adresáře poskytují rychlou odezvu při čtení informací, relační databáze jsou výkonnější při častých aktualizacích. Adresáře nepodporují komplikované transakce ani náročné dotazy jako je spojování tabulek. Mají ovšem lepší podporu vyhledávání podřetězců a umožňují široce replikovat informace na více strojů pro zvládnutí větší zátěže, zvýšení spolehlivosti a zkrácení doby odezvy. Adresáře navíc většinou používají předdefinovaná schémata a není tedy nutné schéma definovat, jako v případě relačních databází. Adresářové protokoly se navíc více hodí pro provoz v rozsáhlých sítích. Je mnoho metod, jak ukládat informace do adresáře, jak se na tyto informace odkazovat, aktualizovat je, chránit proti neautorizovanému přístupu, atd. Z hlediska rozsahu platnosti informací mohou být adresářové služby lokální nebo globální. Zatímco lokální poskytují služby omezenému kontextu, globální služby slouží mnoha nadřízeným kontextům (například celému Internetu). Globální služby jsou obvykle distribuované, což znamená, že data, která obsahují, jsou rozložena na mnoha strojích, které spolupracují na poskytování adresářové služby. Globální služba typicky definuje jednotný namespace, který poskytuje stejný pohled na data, aniž by záleželo na umístění dat. Internetová služba DNS je příkladem globálně distribuované adresářové služby. 2 LDAP V roce 1988 byl vytvořen protokol X.500, který byl přijat jako standard ISO 9594 [1] pro adresářové služby. X.500 uspořádává položky v adresáři do hierarchického jmenného prostoru, který umožňuje spravovat velké množství informací. Tento standard definuje, že ke komunikaci mezi adresářovým klientem a adresářovým serverem bude použit Directory Access Protokol (DAP). Tento protokol je však příliš náročný a nehodí se pro malá zařízení. Proto byla snaha vyvinout méně náročný protokol. Lightweight Directory Access Protocol (LDAP) byl vyvinut jako odlehčená verze protokolu DAP. Jeho výhodou je, že běží nad protokolem TCP/IP a nevyžaduje, na rozdíl od DAP, protokoly definované v rámci síťového modelu OSI. LDAP také zjednodušuje některé operace protokolu X.500 a vynechává těžko srozumitelné funkce. LDAP definuje komunikační protokol, ale nedefinuje adresář samotný. Pojmy jako LDAP adresář a LDAP databáze označují server, jehož služby lze využívat prostřednictvím protokolu LDAP. Adresářová služba LDAP je založena na modelu klient server. Data uložená v adresáři mohou být distribuována mezi několik LDAP serverů. LDAP klient se připojí k LDAP serveru a zašle mu dotaz. Server vrátí odpověď a/nebo ukazatel, kde může klient získat další informace (obvykle jiný LDAP server). Nezáleží na který LDAP server se klient připojí, vždy se jedná o stejný pohled na adresář. Jméno poskytnuté jednomu LDAP serveru ukazuje na stejný záznam, který může být na jiném serveru. 2
Obrázek 1: LDAP adresářový strom (tradiční pojmenování) 3 Informační model LDAP Informační a jmenný model je odvozen z X.500. V LDAP jsou data uložena ve formě položek (anglicky entries). Položka je skupina atributů, které mají globálně jedinečné tak zvané význačné jméno (anglicky distinguished name), dále jen DN. DN slouží k jednoznačnému určení záznamu. Každý atribut záznamu má svůj typ a jednu nebo více hodnot. Typy jsou typicky mnemotechnické řetězce jako cn pro jméno (anglicky common name) nebo mail pro e-mailovou adresu. Syntaxe hodnoty závisí na typu atributu. Například atribut mail může obsahovat hodnotu martin.lason.fei@vsb.cz. Atribut jpegphoto může obsahovat fotografii v binárním JPEG formátu. Atributy v záznamu mohou být povinné a volitelné. Definujeme je pomocí speciálního atributu nazvaného objectclass. Hodnoty atributu objectclass vymezují pravidla schématu, která musí záznam splňovat. Schéma definuje typ objektů, které mohou být v adresáři uloženy a u každého objektu určuje jeho atributy a jejich vlastnosti. 3.1 Uspořádání informací V LDAP adresáři jsou záznamy uspořádány v hierarchické stromové struktuře. Tato struktura obvykle odráží geografické nebo organizační hranice. Záznamy reprezentující země jsou na vrcholu stromu. Pod nimi mohou být záznamy reprezentující státy a národní organizace. Pod nimi mohou být záznamy reprezentující organizační jednotky, lidi, tiskárny, dokumenty nebo cokoli jiného, na co si vzpomenete. Na obrázku 1 je příklad takového LDAP adresářového stromu. Strom může být uspořádán také na základě doménových jmen Internetu. Tento způsob 3
Obrázek 2: LDAP adresářový strom (Internetové pojmenování) pojmenovávání se stává čím dál více populárnější, protože adresářové služby berou v úvahu umístění podle DNS (Domain Name System). Na obrázku 2 je příklad adresářového stromu LDAP využívající jména založená na doménách. Jak již bylo řečeno, každý záznam je přístupný pomocí svého jedinečného jména Distinguished Name (DN), které je vytvořeno ze jména samotného záznamu (nazývaného Relative Distinguished Name nebo také RDN) a zřetězením jmen záznamů jeho předků. Například záznam Barbory Jenson v příkladu Internetového pojmenování uvedeného na obrázku má RDN uid=babs a DN uid=babs,ou=people,dc=example,dc=com. 3.2 Přístup k informacím LDAP definuje operace pro dotazování a aktualizace adresáře. Jsou poskytovány operace pro přidávání a mazání záznamů z adresáře, změnu existujícího záznamu a změnu jména záznamu. Většinu času ovšem zabere vyhledávání informace v adresáři. Vyhledávací operace umožňují vyhledávat záznamy v části stromu, která splňuje kritéria uvedené ve filtru. Informaci můžeme požadovat z každého záznamu, který splňuje kritéria. Například můžeme chtít vyhledat v adresářovém podstromu záznamy lidí, jejichž jméno je František Koudelka. Stejně tak LDAP umožňuje prohledat záznamy organizací ve státě California, jejichž záznamy vyhovují zadaným kritériím. 3.3 Ochrana proti neautorizovanému přístupu Některé adresářové služby neposkytují ochranu přístupu k informacím a kdokoli si je může prohlížet. LDAP poskytuje mechanismy pro autentizaci klienta nebo pro ověření jeho identity u adresářového serveru a využívá bohatou přístupovou kontrolu, aby chránil informace na serveru. Nabízí také možnost velmi efektivně nastavovat přístupová práva a to i na jednotlivé atributy objektů. LDAP servery nabízejí autentizaci přes SSL a je také možné 4
využívat silné autentizační služby poskytované systémem Kerberos. Jeho výhodou je oddělení komponent autentizace a identifikace. Reference [1] JOHNER, Heinz; BROWN, Larry; HINNER, Franz-Stefan; REIS, Wolfgang; WEST- MAN, Johan. Understanding LDAP [online]. 1998 [cit. 14.3.2003]. Dostupný na WWW: <http://www.redbooks.ibm.com>. [2] OpenLDAP Foundation. OpenLDAP 2.1 Administrator s Guide [online]. 2003 [cit. 16.3.2003]. Dostupný na WWW: <http://www.openldap.org/doc/admin21/>. 5