Západočeská univerzita v Plzni,

Podobné dokumenty
Adresářové služby úvod do problematiky

Autor. Potřeba aplikací sdílet a udržovat informace o službách, uživatelích nebo jiných objektech

X36PKO Jmenné služby Jan Kubr - X36PKO 1 4/2007

PDS. Obsah. protokol LDAP. LDAP protokol obecně. Modely LDAP a jejich funkce LDIF. Software pro LDAP. Autor : Petr Štaif razzor_at

The Lightweight Directory Access Protocol version 3 (LDAPv3) is specified by this set of eleven RFCs:

Projekt Pleiades informační infrastruktura z pohledu

Windows Server 2003 Active Directory

SNMP Simple Network Management Protocol

Adresářové služby, DNS

Osnova dnešní přednášky

TÉMATICKÝ OKRUH Softwarové inženýrství

Případová studie: Adresářové řešení pro webhosting pomocí ApacheDS. Lukáš Jelínek

Úvod do informatiky 5)

Metody tvorby ontologií a sémantický web. Martin Malčík, Rostislav Miarka

Inovace výuky prostřednictvím šablon pro SŠ

Identifikátor materiálu: ICT-3-03

TECHNICKÁ SPECIFIKACE VEŘEJNÉ ZAKÁZKY

Informační systémy 2008/2009. Radim Farana. Obsah. Obsah předmětu. Požadavky kreditového systému. Relační datový model, Architektury databází

8.2 Používání a tvorba databází

EXTRAKT z mezinárodní normy

1 Administrace systému Moduly Skupiny atributů Atributy Hodnoty atributů... 4

Identity and Access Management

Internet Information Services (IIS) 6.0

Č á s t 1 Příprava instalace

1. Webové služby. K čemu slouží? 2. RPC Web Service. 3. SOA Web Service. 4. RESTful Web services

Roční periodická zpráva projektu

EU-OPVK:VY_32_INOVACE_FIL9 Vojtěch Filip, 2013

Datum vytvoření. Vytvořeno 18. října Očekávaný výstup. Žák chápe pojmy URL, IP, umí vyjmenovat běžné protokoly a ví, k čemu slouží

EXTRAKT z mezinárodní normy

Replikace je proces kopírování a udržování databázových objektů, které tvoří distribuovaný databázový systém. Změny aplikované na jednu část jsou

FreeIPA a SSSD. Správa uživatelů pomocí Free Software. LinuxAlt 2009 Jakub Hrozek Martin Nagy 30. listopadu 2009

Obsah přednášky 7. Základy programování (IZAPR) Přednáška 7. Parametry metod. Parametry, argumenty. Parametry metod.

DOPLNĚK. Projekt Informační systém základních registrů je spolufinancován Evropskou unií z Evropského fondu pro regionální rozvoj.

Microsoft SharePoint Portal Server Zvýšená týmová produktivita a úspora času při správě dokumentů ve společnosti Makro Cash & Carry ČR

Registrační číslo projektu: CZ.1.07/1.5.00/ Elektronická podpora zkvalitnění výuky CZ.1.07 Vzděláním pro konkurenceschopnost

Referenční rozhraní. Jiří Kosek. Ministerstvo informatiky ČR. ISSS 25. března 2003

EXTRAKT z technické normy ISO

Úvod 17 ČÁST 1. Kapitola 1: Principy návrhu doménové struktury služby Active Directory 21

POLOPROVOZ ZNALOSTNÍ DATABÁZE INTERPI DOKUMENTACE

1. Integrační koncept

Požadavky pro výběrová řízení TerraBus ESB/G2x

Systém souborů (file system, FS)

Identifikátor materiálu: ICT-3-10

Přístup k transportní vrstvě z vrstvy aplikační rozhraní služeb služby pro systémové aplikace, služby pro uživatelské aplikace DNS

PŘÍRUČKA SÍŤOVÝCH APLIKACÍ

CAL (CAN Application Layer) a CANopen

Tonda Beneš Ochrana informace podzim 2011

Počítačové sítě. Lekce 4: Síťová architektura TCP/IP

ENUM v telefonní síti Ostravské univerzity. M. Dvořák

10 Balíčky, grafické znázornění tříd, základy zapozdření

Administrační systém ústředen MD-110

POKROČILÉ POUŽITÍ DATABÁZÍ

Specifikace rozhraní. Oznamovací povinnost podle zákona č. 307/2013 Sb., ve znění pozdějších předpisů. Martin Falc, SW architekt.

Koncept centrálního monitoringu a IP správy sítě

Inovace výuky prostřednictvím šablon pro SŠ

Databázové systémy. Doc.Ing.Miloš Koch,CSc.

INTEGRACE IS DO STÁVAJÍCÍ HW A SW ARCHITEKTURY

CCNA I. 3. Connecting to the Network. CCNA I.: 3. Connecting to the network

Systém elektronického rádce v životních situacích portálu

Úvod Bezpečnost v počítačových sítích Technologie Ethernetu

SSL Secure Sockets Layer

Profilová část maturitní zkoušky 2017/2018

Algoritmizace prostorových úloh

DATABÁZOVÉ SYSTÉMY. Metodický list č. 1

Obsah OLAP A ESO9... 3

UML - opakování I N G. M A R T I N M O L H A N E C, C S C. Y 1 3 A N W

Vývoj moderních technologií při vyhledávání. Patrik Plachý SEFIRA spol. s.r.o.

TECHNICKÉ POŽADAVKY NA NÁVRH, IMPLEMENTACI, PROVOZ, ÚDRŽBU A ROZVOJ INFORMAČNÍHO SYSTÉMU

SIMATIC S IT. Micro Automation. Promoters Meeting October Představení CP IT SPIDER CONTROL TELESERVIS. TESTOVACÍ server.

Počítačové sítě Aplikační vrstva Domain Name System (DNS)

Osnova. GIOP a IIOP IDL IOR POA. IDL Klient Server. 2 Historie. 3 Princip a základní pojmy. 4 Implementace. 5 Aplikace CORBA

Obsah. Zpracoval:

Poslední aktualizace: 1. srpna 2011

IMPLEMENTACE SYSTÉMU GROUPWISE NA PEF ČZU V PRAZE IMPLEMENTATION OF THE SYSTEM GROUPWISE ON THE PEF ČZU PRAGUE. Jiří Vaněk, Jan Jarolímek

MBI - technologická realizace modelu

Relační vrstva SMB-Síťový komunikační protokol aplikační vrstvy, který slouží ke sdílenému přístupu k souborům, tiskárnám, sériovým portům.

MATURITNÍ OTÁZKY ELEKTROTECHNIKA - POČÍTAČOVÉ SYSTÉMY 2003/2004 PROGRAMOVÉ VYBAVENÍ POČÍTAČŮ

Certifikační prováděcí směrnice

Definice pojmů a přehled rozsahu služby

KSRZIS. Postup kroků nutných pro napojení nemocničního informačního systému s registrem NSHNU v prostředí registrů resortu zdravotnictví

Příloha č. 12. Systém společného přihlašování, tzv. Single Sign On, ochrana dat

ilé aspekty distribuovaných objektových systémů

Nastavení provozního prostředí webového prohlížeče pro aplikaci

Elektronická evidence tržeb. Produkční prostředí Přístupové a provozní informace

EXTRAKT z technické normy CEN ISO

Kolaborativní aplikace

GIS Geografické informační systémy

Pokročilé Webové služby a Caché security. Š. Havlíček

12. Virtuální sítě (VLAN) VLAN. Počítačové sítě I. 1 (7) KST/IPS1. Studijní cíl. Základní seznámení se sítěmi VLAN. Doba nutná k nastudování

Kapitola 1: Úvod. Systém pro správu databáze (Database Management Systém DBMS) Účel databázových systémů

Kritéria hodnocení praktické maturitní zkoušky z databázových systémů

GIS Geografické informační systémy

Semináˇr Java X J2EE Semináˇr Java X p.1/23

Jádrem systému je modul GSFrameWork, který je poskytovatelem zejména těchto služeb:

Počítačové sítě Systém pro přenos souborů protokol FTP

X33EJA Web Services. Martin Ptáček, KOMIX s.r.o.

6 Objektově-orientovaný vývoj programového vybavení

Transkript:

Adresářové služby Jemný úvod do problematiky adresářových služeb Jiří Sitera 1 Březen 1999 1 Centrum informatizace a výpočetní techniky, Laboratoř počítačových systémů, Západočeská univerzita v Plzni, e-mail: sitera@civ.zcu.cz

Obsah 1 Adresářové služby 1 1.1 Jmenné služby............................. 1 1.2 Adresářové služby.......................... 2 1.2.1 DIT Directory Information Tree............... 3 1.2.2 Pojmenování položek DN (Distinguished Name)..... 4 1.2.3 Příklad pojmenování atributů, tvorba rozlišovacího jména 4 1.2.4 Základní vlastnosti...................... 6 1.2.5 Základní použití....................... 6 1.3 X.500, LDAP standardy adresářových služeb.......... 7 1.3.1 Co je to X.500......................... 7 1.3.2 Co je to LDAP......................... 7 1.3.3 Základní vlastnosti protokolu LDAP............ 8 1.4 Architektura protokolu LDAP.................... 9 1.5 Informační model........................... 11 1.5.1 Atributy, syntaxe atributů.................. 11 1.5.2 Schéma............................. 12 1.6 Jmenný model............................. 13 1.7 Funkční model............................. 14 1.7.1 Operace search........................ 14 1.7.2 Operace compare....................... 15 1.7.3 Operace pro změnu dat................... 15 1.7.4 Autentizační operace..................... 15 1.7.5 Možnosti rozšíření funkčního modelu........... 16 1.8 Bezpečnostní model.......................... 16 1.8.1 Autentizace.......................... 16 1.8.2 Zabezpečení komunikace.................. 17 1.9 LDIF.................................. 18 1.9.1 LDIF formát pro zápis adresářových položek...... 18 1.9.2 LDIF formát pro zápis změn adresářových položek.. 19 1.10 Nástroje pro komunikaci s LDAP serverem z příkazové řádky. 19 1.10.1 Prohledávání adresářového stromu ldapsearch... 19 i

Obsah 1.10.2 Modifikace položek adresářového stromu ldapmodify, ldapdelete, ldapmodrdn................ 20 2 LDAP Co dále? 22 2.1 Některé další důležité vlastnosti protokolu LDAP........ 22 2.1.1 LDAP URL.......................... 22 2.1.2 Odkazy............................ 23 2.1.3 Replikace........................... 23 2.2 Kostra základního nasazení adresářových služeb......... 23 2.3 Hlavní implementace......................... 25 2.4 Vývojové nástroje........................... 25 2.5 Kde hledat další informace a zkušenosti.............. 25 Použitá a doporučená literatura 27 ii

Kapitola 1 Adresářové služby Tato kapitola se snaží o přiblížení pojmu adresářové služby a poskytuje přehled základních informací z této oblasti. 1.1 Jmenné služby Jmenné služby obecně jsou jedním ze základních kamenů sít ových technologií a sít ové infrastruktury. Mnoho entit vyskytujících se v komunikačních technologiích se identifikuje čísly, přičemž existuje snaha o zavádění dalšího pojmenování těchto entit. V tomto okamžiku vzniká potřeba služby, která zajišt uje vazbu jména na číselnou identifikaci. Používání termínů číslo a jméno je spíše symbolickým, resp. snadno pochopitelým příkladem. Hlavním důvodem pro zavádění jmenného systému není totiž jen zakrytí vnitřních identifikátorů z hlediska člověka přijatelnějšími, ale i řada dalších aspektů, především souvisejících se strukturou jmenného prostoru zavedených jmen. Tento jmenný prostor je totiž obvykle strukturovaný hierarchický a v každém případě nezávislý na omezeních a vnitřní struktuře primárních identifikátorů. Příkladem jmenné služby je DNS (Domain Name System). Jedná se o specializovanou jmennou službu, která poskytuje v rámci sítí TCP/IP a Internetu funkci pro převod IP adres na (DNS) jména. DNS jména mají hierarchický charakter a logickou strukturu nezávislou na struktuře odpovídajících IP adres. Pomocí DNS mohou být dále získávány některé další informace přiřazené jednotlivým jménům, jako jsou například odkazy na tzv. mail exchanger, tj. uzel prostřednictvím kterého je doručována pošta 1. Imlementace DNS je navržena tak, aby vyhověla nárokům které jsou na ni kladeny databáze zahrnuje celý Internet a poskytuje služby všem uzlům v něm zapojeným. Mezi hlavní znaky 1 Existují obecnější jmenné služby založené na infrastruktuře DNS, jako je například Hesiod, který slouží k distribuovanému přístupu k informacím typu uživatelé, služby, zdroje, adt. Stejně tak existují obecnější jmenné služby, které jsou samostatné. Jako příklad může sloužit NIS (Network Information System) (viz například také [10]). 1

Kapitola 1, Adresářové služby implementace patří distribuce dat, replikace dat a decentralizovaná správa. Více o DNS viz [10]. 1.2 Adresářové služby Adresářovou službou se rozumí specializovaná aplikace pro ukládání dat, jejich organizaci a přístup k nim. Specifikum je především v datovém modelu, který je rámcem pro práci s daty. Nejjednodušší představa je taková, že data jsou uložena ve formě položek, přičemž každá položka obsahuje několik atributů. Atribut je nositelem dat, tj. má hodnotu. Entry Name Attribute Name Value Obrázek 1.1: První přiblížení formy uložení dat v adresářových službách entry položka, attribute atribut, name jméno, value hodnota Na obr. 1.1 je naznačen vzájemný vztah položek a atributů. Každá položka má unikátní jméno (globálně v rámci položek více viz dále) a každý atribut má unikátní jméno v rámci položky 2. Jméno položky je strukturované, složené z hierarchicky uspořádaných částí. Logicky jsou takto položky v adresářových službách rozmístěny v hierarchické struktuře, adresářovém stromu. V souvislosti s tím, se setkáváme s pojmem DIT (Directory Information Tree). 2 Mohou existovat vícenásobné atributy, které si lze představit bud to jako jeden atribut s více hodnotami nebo jako několik atributů se stejným jménem a různými hodnotami. V podstatě jsou obě představy správné, ale je třeba si uvědomit, že k atributu lze přistupovat pouze na základě jeho jména, takže první představa spíše odpovídá možným operacím. 2

1.2 Adresářové služby 1.2.1 DIT Directory Information Tree Pod pojmem DIT (Directory Information Tree) se rozumí především konkrétní návrh struktury adresářového stromu, jeho větvení, tj. rozčlenění položek a informací jimi nesených do hierarchicky uspořádaných skupin. Pro přiblížení významu DIT je na obr. 1.2 je zobrazena část konkrétního adresářového stromu. Je účelné si uvědomit, že takto lze rozdělit položky adresářového stromu na uzly a listy. Uzly definují větve stromu, zatímco listy jsou samostatnými koncovými objekty. Samozřejmě i uzlová položka může nést další informaci, než je pouhá existence větve adresářového stromu, nicméně aby bylo lze umist ovat do příslušné větve nějaké položky musí uzlová položka existovat. zcu.cz People <depts> Staff civ Jiri Sitera Groups Administrators Resources Groups Jiri Sitera Node Leaf Obrázek 1.2: Stromová struktura adresářových služeb node uzel, leaf větev Pro návrh DIT architektury adresářových služeb z hlediska členění adresářového stromu a tím i informací existuje mnoho různých postupů. Členění konkrétního stromu je totiž právě jedno, přičemž existuje vždy mnoho různých hledisek a vlivů, které je vhodné posoudit. V této oblasti existuje několik prací poskytujících rozbor jednotlivých možností (např. [9, 19]). Struktura stromu (DIT) se přímo projeví ve jménech jednotlivých položek. Každá položka obsahuje unikátní jméno, které je složeno z části, která popi- 3

Kapitola 1, Adresářové služby suje do které větve adresářového stromu položka patří a z unikátního jména položky v rámci větve. 1.2.2 Pojmenování položek DN (Distinguished Name) DN (Distinguished Name), tj. rozlišovací jméno identifikuje jednoznačně položku v globálním jmenném prostoru adresářového stromu. Rozlišovací jméno se skládá z RDN (Relative Distinguished Name), tj. relativních rozlišovacích jmen. Relativní rozlišovací jméno unikátně specifikuje položku v rámci jedné větve stromu. Rozlišovací jméno se skládá z jednotlivých relativních rozlišovacích jmen, které odpovídají větvím adresářového stromu, kterými je třeba projít v hierarchii mezi položkou a kořenem stromu. Lze říci, že tato hierarchická architektura a způsob pojmenování jednotlivých položek je analogická souborovému systému a jeho adresářové struktuře. Každé relativní rozlišovací jméno je odvozeno od atributu (jména a hodnoty) příslušné položky 3. 1.2.3 Příklad pojmenování atributů, tvorba rozlišovacího jména Pojmenování atributů Každý atribut má své jméno. Existují standardy pro jména a významy běžných atributů. Na tomto místě je třeba poznamenat, že každé položce je přiřazen typ položky (objectclass). Typ položky určuje, které atributy se mohou v položce vyskytovat, přičemž může stanovit skupinu atributů, které se musí v položce vyskytovat. Stejně tak atributy mají přiřazen typ. Zde se jedná pouze o jednoduché typy, jako například celé číslo či řetězec. Tato pravidla jsou definována tzv. schématem databáze. Více o schématu viz kap. 1.5.2. Některé nejzákladnější atributy, které slouží jako elementy relativního rozlišovacího jména jsou uvedeny v následující tabulce: Jméno atributu, alias význam příklad country, c jméno (zkratka) státu cz organization, o jméno organizace zcu organizationalunitname, ou jméno organizační jednotky civ commonname, cn common name položky Jiri Sitera 3 Toto je nejjednodušší případ, obecně je RDN odvozeno od atributů (jednoho nebo více) příslušné položky. 4

1.2 Adresářové služby Rozlišovací jméno zcu.cz o=zcu, c=cz People ou=people Groups ou=groups Staff ou=staff Administrators ou=administrators <depts> civ ou=civ Jiri Sitera cn= Jiri Sitera Resources Groups Jiri Sitera Node Leaf Obrázek 1.3: Atributy určující relativní rozlišovací jméno položky. Na obr. 1.3 jsou doplněny hodnoty některých základních atributů u položek v příkladu adresářového stromu. Náš příklad specifikuje podvětev, která je umístěna v oblasti pojmenované dle organizace, v našem případě o=zcu, c=cz V této větvi jsou umístěny všechny objekty (položky) adresářového stromu z uvedeného příkladu, tj. všechna jména budou mít výše uvedenou specifikaci jako suffix. Pro uzly stromu v návrhu DIT jsou v našem příkladu použity atributy ou, organization unit name. Pojmenování objektu uživatele či skupiny je reprezentováno atributem cn. Pak pojmenování neboli rozlišovací jméno (DN) položky uživatele v příkladu je: cn=jiri Sitera, ou=civ, ou=staff, ou=people, o=zcu, c=cz a (položky) skupiny: cn=administrators, ou=groups, o=zcu, c=cz 5

Kapitola 1, Adresářové služby 1.2.4 Základní vlastnosti Adresářové služby jsou navrženy pro specifickou oblast aplikací. Jak návrh komunikačního protokolu, tak implementace hlavních částí těchto systémů jsou vedeny snahou o specializaci. Hlavní myšlenkou je specifikace specializovaného datové modelu, který definuje rámec pro ukládání informací a přístup k nim (operace nad nimi). Za adresářové služby lze v podstatě považovat množinu nástrojů pro práci s takto uspořádanými daty (spolu s metodologií k jejich použití). Podstata tohoto přístupu je analogická jako například u relačních databází. Relační model dat je navržen a použit pro usnadnění tvorby složitých datových struktur a slouží také jako základ pro efektivní návrh a realizaci jisté množiny aplikací. Lze říci, že v případě adresářových služeb se jedná o specializovanou databázi určenou především pro realizaci aplikací, které zacházejí s daty, k nímž je velmi intenzivně přistupováno (čtení, prohledávání), ale nejsou příliš často měněna. A pokud jsou měněna, tak pouze velmi jednoduchými prostředky (žádné transakce apod.) 4. 1.2.5 Základní použití Základním příkladem použití adresářových služeb jsou aplikace jako telefonní seznam (seznam lidí), či databáze zdrojů, například tiskáren či aplikačních serverů. V případě telefonního seznamu mohou adresářové služby obsahovat položky reprezentující jednotlivé lidi, přičemž u každé položky jsou uvedeny atributy s informacemi jako je telefonní číslo, číslo kanceláře, e mail apod. U objektů popisujících tiskárny může jít například o informace typu formát papíru, rychlost tisku, umístění či cena vytištěné strany. Adresářové služby primárně dovolují uživatelům a aplikacím hledat objekty (lidi, zdroje) dle specifikovaných podmínek. Například jsou určeny pro zodpovídání dotazů typu hledám uživatele a znám e-mail nebo hledám tiskárnu formátu A4, která umí tisknout barevně. Adresářové služby mohou samozřejmě sloužit také k získávání informací o konkrétních objektech, tj. znám-li konkrétní specifikaci objektu (například jméno tiskárny), mohu se dotázat na jení vlastnosti 5. 4 Toto je základní představa adresářových služeb. To však neznamená, že se nemohou ukázat rozumnými například snahy o rozšíření možností změn položek v adresářových službách (často se měnící data, jako je např. stav zařízení; podpora jednoduchých transakcí) otevřené standardy v těchto oblastech otevírají volnou cestu libovolnému vývoji, který se ukáže životaschopným. 5 V literatuře se lze často setkat s pojmy jako jsou yellow pages a white pages. Tyto pojmy v podstatě odpovídají dvěma naznačeným přístupům. Hledání objektu, který splňuje žádané podmínky je analogické používání zlatých (žlutých) stránek (yellow pages), zatímco získání informací o konkrétním objektu (jehož identifikaci jméno znám) odpovídá použití bílých 6

1.3 X.500, LDAP standardy adresářových služeb Adresářové služby Specializované prostředky pro ukládání dat a přístup k nim. Optimalizace návrhu vzhledem k specifickým podmínkám, zejména: Předpoklad málo se měnících informací. Předpoklad jednoduchých operací s daty. Předpoklad majority přístupů, které pouze čtou data, navíc obvykle potřebují data hledat. 1.3 X.500, LDAP standardy adresářových služeb 1.3.1 Co je to X.500 X.500 je obvyklá zkratka používaná pro označení standardu adresářových služeb, který definují dokumenty X.500 až X.521 [23]. Standard X.500 byl vytvořen CCITT (Consultative Committee on International Telephony and Telegraphy) a je postaven na rodině protokolů ISO/OSI. X.500 je poměrně komplexní a standardní specifikace pro adresářovou organizaci dat a operace nad nimi. Obecně lze říci, že X.500 je vystavěn na architektuře klient/server, přičemž definuje protokol pro komunikaci mezi klientem a adresářovým serverem directory access protocol (DAP). Protokol DAP, stejně jako implementace X.500 obecně, potřebuje OSI protokolový stack, který je relativně náročný na zdroje. Odtud plyne prvotní myšlenka návrhu prostředku pro jednodušší (lightweight) přístupu k adresářovým službám. 1.3.2 Co je to LDAP LDAP (Lightweight Directory Access Protocol) byl primárně navržen jako zjednodušená varianta protokolu DAP, tj. jako jednodušší přístupový protokol mezi klientem a adresářovým serverem (X.500). Hlavní zjednodušení tkví v použití rodiny protokolů TCP/IP jako komunikační vrstvy a ve zjednodušení protokolu jako celku (minimalizovány operace, vypuštěny složitější vlastnosti). Postupem času došlo k osamostatnění protokolu LDAP, tj. byla uplatněna idea samostatného LDAP serveru, což znamená adresářový server, který komunikuje s klientem protokolem LDAP (dosud sloužil LDAP pouze jako přístupový protokol k plnokrevnému X.500 serveru). Z obr. 1.4 je tento vývoj stránek telefonního seznamu (white pages). 7

Kapitola 1, Adresářové služby jasně patrný. Tak se postupně stalo, že pod pojmem LDAP se rozumí nejen komunikační protokol, ale i adresářový server sám (a to obvykle včetně všech náležitostí, tj. především datového modelu a konceptu distribuované infrastruktury adresářových služeb). Z hlediska klienta by mělo být v principu jedno, zda přistupuje k adresářovým službám realizovaným samostatným (LDAP) serverem, či zda se jedná pouze o gateway k serveru X.500. LDAP Client TCP/IP LDAP Server ISO/OSI X.500 Server Directory Data Stand-alone LDAP server LDAP Client TCP/IP LDAP Server Directory Data Obrázek 1.4: Protokol LDAP a jeho úloha LDAP hlavní významy Protokol pro přístup k datům. Model ukládání, organizace a přístupu k datům (informacím). Rozhraní pro přístup k datům (operace). 1.3.3 Základní vlastnosti protokolu LDAP Specifikace protokolu LDAP je implementačně nezávislá a je vedena snahou o maximální jednoduchost pro koncepci byla určující snaha o zjednodušení 8

1.4 Architektura protokolu LDAP implementace (za účelem podpory nasazení LDAPu v aplikacích, tj. tvorby tzv. LDAP enabled aplikací). Díky těmto vlastnostem se protokol LDAP začal skutečně výrazněji prosazovat a dosáhl dokonce stavu, kdy je běžně implementován a užíván samostatně. Shrňme hlavní rozdíly oproti X.500: TCP/IP namísto OSI protokolového stacku, jednodušší funkční model, jednodušší reprezentace dat. Globálně se k vývoji situace kolem protokolu LDAP dá říci asi toto: Poté, co se protokol LDAP začal prosazovat díky svojí jednoduchosti, začala tato jednoduchost býti omezujícím aspektem pro některé případy nasazení. Z toho ovšem vyplynula snaha o vylepšování protokolu LDAP a jeho doplňování dalšími vlastnostmi. Takto se vlasně tvoří nový standard pro adresářové služby a to od elementárního (ale dostatečně otevřeného) základu, postupným doplňováním potřebných vlastností. LDAP hlavní vlastnosti Jednoduchost, dobrý poměr implementační náročnosti vůči šíři spektra možného využití. Rozšiřitelnost, otevřenost. Distribuovaný model uložení dat a přístupu k nim. 1.4 Architektura protokolu LDAP Protokol LDAP definuje komunikaci mezi serverem a klientem. Klient zašle serveru zprávu obsahující požadavek na provedení jedné z definovaných operací a server vrátí odpověd (viz obr. 1.5). Zprávy obsahují také příslušná data a informace o jejich formátu. Základní schéma komunikace: Klient naváže spojení s LDAP serverem. Pro operaci navázaní spojení se používá termín binding. Klient se může připojit anonymně nebo musí prokázat svoji identitu (identitu uživatele) provede se autentizace jednou z možných metod. Pro navázaní spojení je tedy nutné, aby klient znal IP adresu a port, na kterém je LDAP server. 9

Kapitola 1, Adresářové služby Klient má k dispozici spojení na server (identifikace spojení byla vydána serverem při navázání spojení) a může v jeho rámci posílat žádosti o provedení definovaných operací nad adresářovými daty. Klient uzavře spojení s adresářovým serverem. Pro tuto operaci se používá termín unbinding. Ačkoli se nejedná o přímou součást protokolu LDAP, jedním z důležitých faktorů v této oblasti je standardní LDAP API (application program interface), tj. rozhraní (knihovny) přímo přístupné pro psaní aplikací. Největší význam má standardní rozhraní do jazyka C a jazyka Java. Directory client app. Directory server Internal directory server structure Application Back end Request Reply API LDAP Client Library TCP/IP Front end LDAP reply/request TCP/IP TCP/IP Obrázek 1.5: Komunikace architektura klient/server LDAP Architektura klient/server. Komunikace prostřednictvím rodiny protokolů TCP/IP. Standardní LDAP API, knihovny pro psaní aplikací. Z hlediska návrhu adresářových služeb je komunikační protokol pouze jedním z několika aspektů návrhu a implementace. Pro lepší pochopení celku je vhodné rozčlenit LDAP do několika modelů: 10

1.5 Informační model Informační model struktura informací uložených v adresářových službách. Jmenný model organizace a identifikace informací v adresářových službách. Funkční model operace nad informacemi v adresářových službách. Bezpečnostní model řízení přístupu k informacím v adresářových službách. 1.5 Informační model Základní pojmy informačního modelu adresářových služeb byly nastíněny v kap. 1.2. Základní datová jednotka umístěná v adresářových službách se nazývá položka. Položka má atributy, které popisují její vlastnosti. Jak položka, tak atribut jsou identifikovány jménem (obr. 1.1 na straně 2). 1.5.1 Atributy, syntaxe atributů Každý atribut má přiřazen typ, tj. informaci o tom, jaké hodnoty může nést, neboli informaci o syntaxi pro zápis hodnot atributu. Typ atributu také definuje zacházení s hodnotou atributu při operacích, například při prohledávání či porovnávání. Například je definován typ atributu pro uložení telefonního čísla. Atribut označený tímto typem může obsahovat libovolný text, přičemž znaky jako mezera a pomlčka se ignorují pro účely porovnávání. Dále se ignoruje velikost písmen a je definováno lexikografické uspořádání. Základní typy hodnot atributů jsou uvedeny v následující tabulce: Typ atributu ces cis tel bin dn význam řetězec znaků, při porovnávání se bere ohled na velikost písmen (Case Exact String) řetězec znaků, při porovnávání se nebere ohled na velikost písmen (Case Insensitive String) telefonní číslo, tj. řetězec znaků, mezery a pomlčky jsou při porovnávání ignorovány stejně tak jako velikost písmen libovolná (binární) data rozlišovací jméno (objektu v adresářových službách) 11

Kapitola 1, Adresářové služby 1.5.2 Schéma Také jména atributů a jejich význam, samozřejmě včetně přiřazení typu atributu, jsou standardizována. Každá položka má navíc přiřazen typ, který popisuje které atributy se musí a které se mohou u ní vyskytovat. Globálně se pro označení popisu těchto pravidel používá pojmu schéma. Příklady některých nejběžnějších atributů, jejich typ a význam: Jméno atributu, alias typ atributu význam organization, o cis jméno organizace organizationalunitname, ou cis jméno organizační jednotky commonname, cn cis common name položky surname, sn cis jméno osoby, kterou položka reprezentuje telephonenumber tel telefonní číslo jpegphoto bin portrét osoby, kterou položka reprezentuje ve formátu JPEG Schéma definuje třídy objektů (object class), tj. typy položek, které se mohou vyskytovat v adresářovém stromu. Třída objektu definuje jména a typy atributů, které se mohou v objektu (položce) vyskytovat, přičemž určuje, které z nich jsou povinné (musí se vyskytovat). Typ položky ve formě jména třídy objektu je u každé položky uveden ve vyhrazeném a povinném atributu objectclass. Příklady tříd objektů (obsahují pouze příklady atributů, přičemž tučně tištěné jsou povinné): Třída objektu význam příklad atributů inetorgperson Reprezentuje člověka (v rámci intranetu) commonname (cn) surname (sn) objectclass mail telephonenumber organization Reprezentuje organizaci organization (o) objectclass location (l) postaladdress seealso Při definování tříd objektů je možno používat dědičnost, tj. definovat novou 12

1.6 Jmenný model třídu objektů jako rozšíření jiné, již definované třídy. Schéma lze tedy chápat také jako hierarchii tříd objektů 6. Schéma dává možnost definovat vlastní datové typy, definovat popis nových objektů nebo rozšiřovat či měnit popis běžných objektů. Pro interoperabilitu je velmi důležitá standardizace, proto je třeba vycházet ze standardizovaných schémat. Základní informace z této oblasti lze najít v [3] a [7]. Pro pokročilejší řešení interoperability je definován v rámci LDAP verze 3 mechanismus pro publikaci schématu. Adresářový server poskytuje některé základní informace o sobě včetně schématu, klienti mohou definovaným způsobem k těmto informacím přistupovat. Pro textový zápis položky a obsahu adresářového stromu je definována syntaxe LDIF (LDAP Data Interchange Format) viz kap. 1.9. Základní nástroje pro komunikaci s adresářovým serverem z příkazové řádky (viz kap. 1.10) používají pro zápis dat také formát LDIF. LDAP informační model Datové entity: položka, atribut. Položka má typ položky (třída objektu), obsahuje atributy, má jméno, DN (rozlišovací jméno) globální v rámci DIT, uspořádání do Directory Information Tree (DIT). Atribut má typ, má hodnotu, resp. hodnoty, má jméno identifikaci v rámci položky. Schéma rozšiřitelnost (ale také standardizace). 1.6 Jmenný model Základní koncept jmenného modelu byl nastíněn již v kapitole 1.2. Položky jsou organizovány do hierarchické struktury zvané Directory Information Tree (DIT). Každá položka je jednoznačně identifikována jménem (DN), přičemž toto jméno jednoznačně určuje polohu položky v rámci stromu. 6 Atribut objectclass obsahuje jména všech tříd objektů, které jsou použity pro definici aktuální třídy objektu, tj. ze kterých je aktuální třída objektů odvozena. 13

Kapitola 1, Adresářové služby 1.7 Funkční model Standardní operace protokolu LDAP lze rozdělit do tří kategorií: Dotazování a prohledávání slouží pro získávání informací z adresářového stromu. Operace search a compare. Změny dat operace add, delete, modify (modifyrdn). Základní prostředky pro změnu dat. Autentizace navázání spojení a prokázání identity uživatele. Operace bind a unbind. 1.7.1 Operace search Pro realizaci veškerého přístupu k datům (čtení) v adresářovém serveru slouží jediná operace, prohledávání. Tato operace je navržena obecně, tj. pokryje jak potřebu hledání, tak čtení přesně specifikovaných dat. Specifikace požadavku pro operaci search se definuje prostřednictvím několika základních parametrů: Báze Rozlišovací jméno definující nejvyšší objekt v hierarchii DIT, který je prohledáván. Rozsah Specifikuje rozsah prohledávání vzhledem k bázovému objektu. Lze požadovat prohledání celého podstromu, jedné úrovně podstromu či pouze bázového objektu samého. Prohledávací filtr Pro definici kritéria pro výběr vyhovujících položek existuje relativně komplexní syntaxe a sémantika tzv. prohledávacího filtru. Základní syntaxe filtru je: <atribut> <operátor> <hodnota> kde nejjednodušším operátorem je rovnítko, například sn=sitera. Filtry lze skládat pomocí logických operací. Syntaxe je: ( <operátor> (<filtr>) (<filtr>) (<filtr>)...) 14

1.7 Funkční model například (& (ou=civ)(mail=si*)), kde & je operátor logického součinu a * zástupný znak pro libovolný řetězec. Pak tedy tento příklad definuje prohledávací filtr, jemuž vyhovují všechny položky mající atribut ou s hodnotou civ a atribut mail s hodnotou, která začíná znaky si. Podrobnější informace o syntaxi filtru viz [5]. Atributy k vyzvednutí Je možno omezit množinu atributů, které jsou z hlediska konkrétního dotazu zajímavé. Limity Klient může omezit maximální počet položek vrácených dotazem nebo maximální objem času který je možno věnovat na zodpovězení dotazu. To je užitečná vlastnost v případě dotazů, u kterých není z hlediska klienta jasná informace o objemu položek, které splňují kritéria dotazu. 1.7.2 Operace compare Operace compare slouží speciálně pro porovnání hodnoty atributu konkrétní položky se zadanou hodnotou. Vrací logickou hodnotu. 1.7.3 Operace pro změnu dat Operace pro změnu dat: add delete modify modifyrdn Vytvoření nové položky. Zrušení existující položky. Mohou být smazány pouze položky, které jsou listy stromu (tj. pokud neexistují žádné položky umístěné v podstromu mazané položky). Slouží ke změnám uvnitř existující položky. Dovoluje měnit hodnotu atributu, mazat atribut a přidávat nový atribut. Slouží ke změně rozlišovacího jména položky. Dovoluje změnit pouze relativní rozlišovací jméno v rámci větve, ve které je položka umístěna. 1.7.4 Autentizační operace Operace pro navázání a řízení komunikace: bind unbind abandon Navázání spojení mezi LDAP serverem a klientem. Při navázání spojení probíhá autentizace. Zrušení spojení mezi LDAP serverem a klientem. Operace, kterou klient požaduje zrušení nedokončené (předchozí) operace. 15

Kapitola 1, Adresářové služby Vlastní autentizace může být provedena několika standardními mechanismy. Více viz kap. 1.8. 1.7.5 Možnosti rozšíření funkčního modelu Také funkčního model je navržen jako rozšiřitelný. Jednak je možno definovat tzv. controls, což jsou dodatečná rozšíření standardních operací, jednak je možno definovat zcela nové operace (extended operations). LDAP funkční model Prohledávání obecně definovaná operace search. Změna dat, na úrovni položek a na úrovni atributů. Otevřený návrh, rozšiřitelnost. 1.8 Bezpečnostní model Z hlediska bezpečnosti lze v rámci protokolu LDAP hovořit především o autentizaci uživatele, tj. metodě prokázání identity (a tím vazbě uživatele na položku která ho reprezentuje v adresářovém stromu), o bezpečnosti obecně (zabezpečení proti odposlechu a napadení komunikace) a o autorizaci (řízení přístupových práv k jednotlivým objektům a operacím nad nimi). Autorizace není dosud součástí žádného přijatého standardu. Existuje řada řešení (obvykle formou přístupových listů, např. Netscape [20]) a návrh standardu. 1.8.1 Autentizace Z hlediska prokázání identity uživatele (autentizace) lze v současných adresářových službách mluvit o třech základních možnostech: 16 Žádná autentizace Nejjednodušší přístup, určený obvykle pouze pro čtení veřejných položek, je anonymní. V tomto případě není potřeba provádět žádnou autentizaci. Základní autentizace Jednoduchá metoda prokázání identity uživatele. Klient specifikuje DN uživatele a jeho heslo. Heslo je uloženo (obvykle přes jednosměrnou šifru) v atributu příslušné adresářové položky.

1.8 Bezpečnostní model SASL (Simple Authentication and Security Layer) SASL (Simple Authentication and Security Layer) je standardizovaná ([1]) cesta pro dodatečné zabezpečení spojově orientovaných komunikačních protokolů. Jedná se v podstatě o jasně definované rozhraní, jehož prostřednictvím lze propojovat standardní autentizační mechanismy s komunikačnímy protokoly. Podpora SASL je novou vlastností standardu LDAP verze 3. Základní schéma použití SASL autentizace je následující: I. Klient předá informace pro autentizaci: DN rozlišovací jméno entity, která se autentizuje. mechanismus identifikace SASL autentizačního mechanismu. Server může prostřednictvím SASL podporovat několik autentizačních mechanismů 7. Běžně podporovaným autentizačním mechanismem je SSL (nebo jeho následník TLS - viz kap. 1.8.2) 8, přičemž tyto protokoly poskytují také zabezpečení komunikace. credentials data prokazující identitu (v příslušném autentizačním mechanismu). II. Přes LDAP API dojde autentizační požadavek LDAP serveru, který pro jeho vyřízení použije příslušný autentizační modul (dle zadaného mechanismu). III. Příslušný autentizační modul na základě předaných dat rozhodne, zda je identita prokázána či nikoli. Za tímto bodem se může skrývat další komunikace vlastní autentizačnímu mechanismu (např. Kerberos). 1.8.2 Zabezpečení komunikace Protokol SSL (Secure Socket Layer) je určen jak pro zabezpečení komunikace tak pro provádění autentizace komunikujících entit. Slouží primárně pro zabezpečení TCP/IP komunikace jako mezivrstva mezi aplikací a běžnou TCP/IP komunikační abstrakcí (sokety). Další informace o protokolu SSL a TLS (Transport Layer Security) přesahují rámec tohoto dokumentu. Lze pouze doporučit některé základní informační zdroje [11, 12, 13]. 7 Samozřejmě server musí podporovat klientem použitý autentizační mechanismus, jinak nemůže autentizace uspět. Podporované autentizační mechanismy lze získat standardizovaným LDAP dotazem. 8 Mezi jiné možné autentizační mechanismy patří: Kerberos, S/Key, GSSAPI ([8]), CRAM- MD5. 17

Kapitola 1, Adresářové služby LDAP bezpečnostní model Autentikace prokázání identity uživatele, vazba na objekt v adresářových službách. Zabezpečení komunikace, odolnost proti napadení. Autorizace řízení přístupu. 1.9 LDIF LDIF (LDAP Interchange Format) [14] je textový formát pro zápis obsahu adresářových služeb. Slouží také jako prostředek pro zápis operací pro změnu obsahu adresářových položek. LDIF se používá především pro hromadné změny dat, import a export dat (přenos ze serveru na server) apod. LDIF také využívají nástroje pro komunikaci s LDAP serverem z příkazové řádky. V této kapitole lze najít základní nástin formátu LDIF, další iformace viz doporučená literatura. 1.9.1 LDIF formát pro zápis adresářových položek Popišme použití formátu LDIF pro zápis adresářových položek. LDIF soubor se skládá z bloků dat oddělených prázdnou řádkou. Každý blok dat reprezentuje jednu položku. Základní struktura: dn: <rozlišovací jméno> objectclass: <třída objektu>... <jméno atributu>: <hodnota atributu>... Atribut objectclass je z hlediska formátu LDIF atribut jako každý jiný, jeho zvýraznění ve výše uvedené struktuře slouží pouze k přiblížení obvyklého vzhledu LDIF formátu položky. Příklad položky: 18 dn: cn=jiri Sitera, ou=civ, ou=staff, ou=people, o=zcu, c=cz objectclass: top objectclass: organizationalperson objectclass: inetorgperson cn: Jiri Sitera sn: Sitera mail: sitera@civ.zcu.cz seealso: http://home.zcu.cz/ sitera l: UI404

1.10 Nástroje pro komunikaci s LDAP serverem z příkazové řádky 1.9.2 LDIF formát pro zápis změn adresářových položek Způsob zápisu příkazů pro modifikaci položek v adresářových službách je popsán v kapitole 1.10.2. LDIF Standardní textový formát pro zápis dat v adresářových službách. Slouží také pro zápis příkazů pro modifikaci dat v adresářových službách. Pro hromadné změny dat, export a import databáze adresářového serveru. 1.10 Nástroje pro komunikaci s LDAP serverem z příkazové řádky Nástroje pro komunikaci s LDAP serverem z příkazové řádky jsou obvykle součástí prostředků pro tvorbu aplikací, často označovaných jako SDK (Software Development Kit). Nicméně v hlavních rysech jsou zcela kompatibilní. Základní použití těchto nástrojů je nastíněno v následujících odstavcích. Více informací viz příslušná dokumentace, např. [18]. 1.10.1 Prohledávání adresářového stromu ldapsearch Funkce ldapsearch odpovídá operaci search LDAP funkčního modelu. Základní použití: ldapsearch -h <LDAP server> -b <báze> <prohledávací filtr> například: ldapsearch -h pleiades.zcu.cz -b o=zcu,c=cz sn=sitera Dále lze parametry prohledávání určit především: seznam atributů, jejichž hodnoty mají být vráceny, rozsah prohledávání, port na kterém je LDAP server (implicitně 389), limity, autentizační data (jednoduchá autentizace, tj. DN a heslo), zabezpečení a autentizaci, obvykle se používá SSL. 19

Kapitola 1, Adresářové služby 1.10.2 Modifikace položek adresářového stromu ldapmodify, ldapdelete, ldapmodrdn Příkaz ldapmodify používá pro zadávání požadavků na modifikaci adresářových položek tzv. LDIF update formát. Základní syntaxe je: dn: <rozlišovací jméno> changetype: <typ změny> <bližší specifikace změny> <seznam atributů>... - <bližší specifikace změny> <seznam atributů>... Například pro provádění základních změn uvnitř položky se užívá specifikace changetype:modify, přičemž bližší specifikace změny může být: add: <jméno atributu> přidá specifikovaný atribut a jeho hodnotu do položky. Existuje-li již takový atribut, přidá mu další hodnotu. Například: dn: cn=jiri Sitera, ou=civ, ou=staff, ou=people, o=zcu, c=cz changetype: modify add: telephonenumber telephonenumber: 580 delete: <jméno atributu> smaže specifikovaný atribut z položky. Pokud má specifikovaný atribut více hodnot, smaže všechny. Je-li potřeba smazat pouze jednu hodnotu a ostatní ponechat, je možno ke jménu atributu připsat hodnotu, která se má smazat. replace: <jméno atributu> slouží k obecné modifikaci atributu zadáním cílového stavu, tj. neexistuje-li atribut, je vytvořen a neníli specifikována žádná nová hodnota, tak je případný původní atribut smazán. Další typy změny jsou: add, delete a modrdn. Takto lze pomocí příkazu ldapmodify a příslušného LDIF vstupu zakládat, mazat a přejmenovávat položky. Přidání nových položek lze také realizovat na základě běžného LDIF souboru popisujícího tyto položky. K tomu slouží přepínač -a příkazu ldapmodify 20

1.10 Nástroje pro komunikaci s LDAP serverem z příkazové řádky poté je operace add implicitní. Smazání položky je možno také realizovat příkazem ldapdelete. Poznamenejme ještě, že při operacích, které mění data v adresářovém serveru, je potřeba použít autentizaci a pravděpodobně také zabezpečení komunikace (SSL). 21

Kapitola 2 LDAP Co dále? Vzhledem k rozsahu tohoto dokumentu není možno pokročilejší a praktičtější otázky probírat podrobně. Proto se tato kapitola snaží poskytnout stručnou formou základy pro praktickou práci s adresářovými službami, jmenovitě protokolem LDAP a pro studium informací z této oblasti, které sami o sobě překračují rámec tohoto dokumentu. 2.1 Některé další důležité vlastnosti protokolu LDAP 2.1.1 LDAP URL V rámci snah o standardizaci protokolu LDAP a využití adresářových služeb jako jednotné informační infrastruktury byl navržen URL (Universal Resource Locators) [24] formát pro přístup k LDAP službám. LDAP URL je přijatým standardem [6] a podporuje ho řada aplikací (například Netscape Navigator 4.0). Základní syntaxe LDAP URL: kde: ldap://<host>:[<port>] [/ [<dn>[? [<atributy>] [? [<rozsah>] [? [<filtr>]]]]]] ldap host port dn atributy rozsah filtr Specifikuje protokol LDAP. Může zde být také ldaps což určuje použití protokolu LDAP přes SSL (implicitní port 636). Jméno LDAP serveru. TCP/IP port na kterém je přítomen server. Rozlišovací jméno určující bázi pro hledání. Seznam atributů, které mají být získány. Rozsah hledání. base, one nebo sub. Implicitní je base. Filtr pro hledání. Implicitní je objectclass=* Příklad použití LDAP URL pro dotaz: 22

2.2 Kostra základního nasazení adresářových služeb ldap://pleiades.zcu.cz/o=zcu,c=cz??sub?sn=sitera LDAP URL je velmi flexibilní může vyjadřovat odkaz na LDAP server, odkaz na položku v adresářových službách nebo LDAP dotaz. LDAP URL lze také s výhodou používat pro specifikaci dotazů v aplikacích. 2.1.2 Odkazy LDAP server nemusí obsahovat celý adresářový strom. Tento strom může být rozprostřen mezi hierarchicky uspořádané servery. Každý server obsahuje jeden podstrom 1 a některé položky mohou reprezentovat odkaz, tzv. referal. Tímto způsobem jsou jednotlivé servery, a části dat v nich umístěné, propojeny. Kořenová položka podstromu se nazývá suffix, nebot její název je vždy suffixem rozlišovacích jmen všech položek v podstromu se nacházejících. Odkaz (referal) je speciální položka (objectclass=referal), jež slouží jako ukazatel na server, který obsahuje příslušný podstrom. Pro zápis odkazu se používá atribut ref a LDAP URL. Více informací o odkazech viz doporučená LDAP literatura a dokumentace k příslušnému vývojovému nástroji (většina implementací LDAP API poskytuje transparentní vyhodnocování odkazů). 2.1.3 Replikace Z hlediska návrhu implementace adresářových služeb je samozřejmě důležitým faktorem dostupnost a rozšiřitelnost ( škálovatelnost ). První z mechanismů pro zajištění robustnosti infrastuktury LDAP služeb, členění na části (partitioning), je realizováno výše popsaným mechanismem odkazů. Data jsou rozdělena do hierarchicky uspořádaných částí, přičemž každá část je poskytována samostatnými prostředky. Druhým mechanismem je replikace. Adresářový server může mít několik replik, tj. serverů, které poskytují stejná data. Datový obsah je mezi replikami udržován konzistentní a je zajištěna základní funkce systému i v případě výpadku některého ze serverů. Více informací opět viz příslušná dokumentace, např. [20, 15]. 2.2 Kostra základního nasazení adresářových služeb Nastiňme nyní, které základní kroky je třeba provést v rámci nasazení adresářových služeb. Předpokládejme základní nasezení, tj. jako seznam lidí s 1 Ve skutečnosti může LDAP server obsahovat několik podstromů. 23

Kapitola 2, LDAP Co dále? informacemi o nich. Mezi takové informace patří především telefon, fax, kancelář, příslušnost organizační jednotce, e-mail, atd. Mezi funkce může patřit telefonní seznam s vazbou na běžné aplikace (e-mail,...). Server výběr a instalace serverového SW. Obvykle je k dispozici dokumentace s informacemi nejen o instalaci, ale i konfiguraci a návrhu adresářových služeb. Patří sem samozřejmě návrh fyzické infrastruktury, tj. především otázky replikace a rozčlenění dat. To je samozřejmě již úzce vázáno na návrh DIT. Pravděpodobně nejlepší cesta pro většinu případů je učinit základní návrh a postupovat dále dle naznačeného schématu, přičemž celek bude sloužit jako ověrovací implementace a v rámci posledního kroku se navrhnou změny vedoucí k nasazení do produkčního prostředí. Schéma volba, respektive návrh informačního modelu. V našem případě nejspíše vybereme některou ze standardních tříd objektů. Pro realizaci objektů pro uživatele se hodí organizationalperson či inetorgperson. Je samozřejmě třeba navrhnout DIT a realizovat jeho uzly. K tomu se hodí třída objektů organization a organizationalunit. Klient je třeba navrhnout základní využití adresářových služeb. V první fázi postačí nástroje pro komunikaci s LDAP serverem z příkazové řádky a standardní aplikace (mail klient, WEBový prohlížeč). Je možné vybrat si a vyzkoušet některý z pokročilejších nástrojů, jako je WWW LDAP brána (gateway) či samostatný LDAP prohlížeč (browser). Rozhraní nástroje, synchronizace, migrace dat jedním z důležitých kroků je samozřejmě naplnění daty. Po prvních pokusech s testovacími daty bude nutno navrhnout mechanismy pro získání reálných dat. Samozřejmě, že zde se dotýkáme velmi komplexního problému, který se často označuje pojmem metadirectory integrace existujících zdrojů dat, resp. přechod na jednotnou bázi dat. Zde bude potřeba stanovit postupy a navrhout nástroje pro synchronizaci dat, resp. pro jejich migraci. Existuje řada postupů a nástrojů v této oblasti 2. Mezi nejjednodušší začátek patří transformace dat z existujících systémů do formátu LDIF a import tohoto souboru. Konfigurace aplikací viz dokumentace příslušných aplikací. Velmi mnoho současných e-mail klientů podporuje LDAP pro získávání e-mail adres lidí (viz například Netscape Communicator Mail). Údržba, restrukturalizace pro nasazení do produkčního prostředí 2 V této oblasti lze najít řadu komerčních (více či méně komplexních) řešení. Je také třeba si uvědomit, že s tímto usílím souvisí práce s vlastním obsahem dat, často označovaná (po právu) termínem konsolidace dat. 24

2.3 Hlavní implementace 2.3 Hlavní implementace Jmenujme nyní, bez nároku na úplnost a správnost výběru, několik základních implementací LDAP serveru a souvisejících věcí. University of Michigan LDAP implementace tato práce otevřela svět LDAPu tak, jak je nastíněn v tomto dokumentu. Je k dispozici standalone LDAP directory server (slapd), standalone LDAP update replication daemon (slurpd), front end for an X.500 DSA a mnoho vývojových nástrojů. Vše je k dispozici volně včetně zdrojových textů [16]. Netscape Communications dobře podporovaná rozvíjející se technologie LDAPu. Adresářový server s modulární architekturou, podporou LDAPv3 a mnoha rozšířeními (autorizace, schéma, integrace s ostatními produkty). Jsou k dispozici nástroje pro tvorbu aplikací (C SDK, Java SDK, modul pro Perl PerLDAP). Nástroje pro tvorbu aplikací jsou k dispozici včetně zdrojových textů zdarma, server je komerční [21]. OpenLDAP projekt OpenLDAP, vývoj LDAP technologie na otevřené bázi, vychází z implementace University of Michigan. Rychle se rozvíjející projekt, server i vývojové nástroje volně šířené včetně zdrojových textů [17]. 2.4 Vývojové nástroje Kromě knihoven SDK pro C a Javu, které jsou součástí mnoha implementací LDAPu, stojí za alespoň stručnou zmínku především: Java Naming and Directory Interface (JNDI) rozhraní pro tvorbu aplikací v jazyce Java. Jedná se o zobecněné rozhraní k jmenným a adresářovým službám, které dovoluje jednotné zacházení se souborovým systémem, DNS a LDAPem. JNDI je navrženo jako otevřené vzhledem k dalším jmenným službám. Oproti LDAP Java SDK poskytuje abstrakci vyšší úrovně. Více viz [25]. PerLDAP knihovna pro programovací jazyk Perl, která poskytuje objektově orientované rozhraní pro práci s adresářovými službami [22]. 2.5 Kde hledat další informace a zkušenosti Možností je mnoho. Uved me několik základních vstupních bodů. 25

Kapitola 2, LDAP Co dále? Innosoft s LDAP World, dříve Critical Angle. Mnoho informací a odkazů udržovaných Markem Wahlem, autorem UMICH LDAPu. http://www3.innosoft.com/ldapworld An LDAP Roadmap & FAQ, Kings Mountain Systems, udržuje Jeff Hodges, Stanford. http://www.kingsmountain.com/ldaproadmap.shtml 26

Použitá a doporučená literatura [1] RFC 2222, Simple Authentication and Security Layer (SASL). [2] Wahl, M., Howes, T., Kille, S., Lightweight Directory Access Protocol (v3), RFC 2251, Critical Angle, Inc., ISODE Consortium, Netscape Communications Corp., July, 1997. [3] Wahl, M., Coulbeck, A., Howes, T. and S. Kille, Lightweight Directory Access Protocol (v3): Attribute Syntax Definitions, RFC 2252, December 1997. [4] Wahl, M., Kille, S., and T. Howes, Lightweight Directory Access Protocol (v3): UTF-8 String Representation of Distinguished Names, RFC 2253, December 1997. [5] T. Howes, Lightweight Directory Access Protocol (v3): The String Representation of LDAP Search Filters, RFC 2254, December 1997. [6] T. Howes, M. Smith, The LDAP URL Format, RFC 2255, December 1997. [7] RFC 2256, A Summary of the X.500: User Schema for use with LDAPv3. [8] RFC 2078, Generic Security Service Application Program Interface. [9] Jim Rommel, Perot System Corporation: DIT Design. Electronic Messaging Association Conference 1998. [10] Jiří Sitera: Administrace TCP/IP sítí v prostředí OS UNIX. Akademie informačních technologií ZČU Plzeň, materiály pro posluchače, 1998. [11] Netscape Communications, The SSL Protocol Version 3.0, Secure Sockets Layer, Internet Draft, http://home.netscape.com/eng/ssl3 [12] RFC 2246, The TLS Protocol Version 1.0,Transport Layer Security protocol. [13] LDAPExt Working Group, Lightweight Directory Access Protocol (v3): Extension for Transport Layer Security, Internet Draft, draft-ietf-ldapext-ldapv3-tls-04.txt 27

Použitá a doporučená literatura [14] Gordon Good, Netscape Communications, The LDAP Data Interchange Format (LDIF) - Technical Specification, Internet Draft, draft-good-ldap-ldif-02.txt [15] University of Michigan, The SLAPD and SLURPD Administrator s Guide, http://www.umich.edu/ dirsvcs/ldap/doc/guides/slapd [16] University of Michigan, Lightweight Directory Access Protocol, http://www.umich.edu/ dirsvcs/ldap/ [17] The OpenLDAP Project, Open source suite of LDAP applications and development tools, http://www.openldap.org [18] Netscape Communications, Netscape Directory Server 3.0 Administrator s Guide, http://developer.netscape.com/docs/manuals/directory/admin30/ [19] Netscape Communications, Netscape Directory Server 3.0 Deployment Guide, http://developer.netscape.com/docs/manuals/directory/deploy30/ [20] Netscape Communications, Netscape Directory Server Documentation, http://developer.netscape.com/docs/manuals/directory.html [21] Netscape Communications, Directory Developer Central, http://developer.netscape.com/tech/directory [22] Netscape Communications, PerLDAP Central, http://developer.netscape.com/tech/directory/perldap central.html [23] Recommendations X.500, OSI Directory Standard, http://www.nexor.com/public/directory.html [24] Berners-Lee, T., Masinter, L. and M. McCahill, Uniform Resource Locators (URL), RFC 1738, December 1994. [25] Java Naming and Directory Interface (JNDI), Java Standard Extension http://www.javasoft.com/products/jndi 28