ˇ ´ VYSOKE ´ UCEN ˇ ´I TECHNICKE ´ V PRAZE CESK E
Fakulta stavebn´ı Katedra syst´emov´eho inˇzen´ yrstv´ı
Diplomov´ a pr´ ace Pouˇzit´ı adres´aˇrov´ ych sluˇzeb v informaˇcn´ıch syst´emech
Autor pr´ace: Vedouc´ı pr´ace: ˇ Skoln´ ı rok:
Karel Ben´ ak doc. RNDr. Jiˇ r´ı Demel, CSc. 2003/2004
kvˇeten 2004
Prohl´ aˇ sen´ı Prohlaˇsuji, ˇze jsem tuto pr´aci vypracoval samostatnˇe, pouze za odborn´eho veden´ı vedouc´ıho diplomov´e pr´ace doc. RNDr. Jiˇr´ıho Demela, CSc. D´ale prohlaˇsuj´ı, ˇze veˇsker´e podklady, ze kter´ ych jsem ˇcerpal, jsou uvedeny v seznamu literatury. V Praze dne 7. ˇcervna 2004
Karel Ben´ak
Podˇ ekov´ an´ı Touto cestou bych r´ad podˇekoval vedouc´ımu diplomov´e pr´ace, panu doc. RNDr. Jiˇr´ımu Demelovi, CSc., za konzultace a rady, jak ps´at diplomovou pr´aci pomoc´ı s´azec´ıho syst´emu LATEX. D´ale bych chtˇel podˇekovat sv´ ym koleg˚ um z Klubu Sinkuleho koleje za moˇznost vyzkouˇsen´ı a realizace nˇekter´ ych m´ ych n´apad˚ u a n´avrh˚ u v ostr´em provozu. Velk´e podˇekov´an´ı ˇ patˇr´ı Ing. Martinu Cerven´ emu nejen za zap˚ ujˇcen´ı cenn´e pokladnice informac´ı, [UDLDAPDS], ale pˇredevˇs´ım za jeho pˇripom´ınky a rady k realizaci nov´eho informaˇcn´ıho syst´emu. Karel Ben´ak
ABSTRAKT V diplomov´e pr´aci se zab´ yv´am moˇznost´ı vyuˇzit´ı adres´aˇrov´ ych sluˇzeb v informaˇcn´ıch syst´emech a jejich moˇzn´eho nasazen´ı jako d˚ uleˇzit´e souˇc´ asti informaˇcn´ıho syst´emu. Pr´ace seznamuje s protokolem LDAP, jeho pouˇzit´ım a n´avrhem z´akladn´ıch datov´ ych typ˚ u, adres´aˇrov´ ych struktur a z´akladn´ıch metod zabezpeˇcen´ı proti zneuˇzit´ı. Na re´aln´em pˇr´ıkladu je pˇredvedena realizace adres´aˇrov´e sluˇzby jako d˚ uleˇzit´e sluˇzby poˇc´ıtaˇcov´e s´ıtˇe, kter´a dynamicky poskytuje data sluˇzb´am, napˇr. DNS, DHCP a dalˇs´ım. Kl´ıˇcov´a slova: Adres´aˇrov´e sluˇzby, LDAP, objektov´e tˇr´ıdy, atributy
ABSTRACT My diploma thesis is engaged in possibilities of usage of directory services in information systems and of their possible use as important part of information system. Thesis acquaints with LDAP protocol, with its use and elementary data types design, directory structures and basic security methods against misuse. Real example demonstrates practical realization of directory service as important service of computer network, which dynamically provides data to other services (e.g. DNS, DHCP, etc.) Key words: Directory Services, LDAP, ObjectClass, Attributes
Karel Ben´ ak
OBSAH
Obsah ´ 1 Uvod
4
2 Adres´ aˇ rov´ e sluˇ zby 2.1 Adres´aˇre a adres´aˇrov´e sluˇzby . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.2 Pouˇzit´ı adres´aˇrov´ ych sluˇzeb . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.3 Data a jejich spr´ava . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5 5 7 9
3 LDAP 3.1 Protokol LDAP . . . 3.2 Informaˇcn´ı model . . 3.3 Jmenn´ y model . . . 3.4 Funkˇcn´ı model . . . 3.5 Bezpeˇcnostn´ı model 3.6 LDIF . . . . . . . . . 3.7 Topologie . . . . . .
. . . . . . .
13 13 15 22 30 35 39 42
4 Software pro adres´ aˇ rov´ e sluˇ zby 4.1 Adres´aˇrov´e servery . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.2 Prohl´ıˇzeˇce a editory . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.3 V´ yvojov´e prostˇredky . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
44 44 45 47
5 Anal´ yza a ˇ reˇ sen´ı ˇ c´ asti IS Klubu Sinkuleho koleje 5.1 SQL datab´aze . . . . . . . . . . . . . . . . . . . . . 5.2 Topologie . . . . . . . . . . . . . . . . . . . . . . . 5.3 Jmenn´e prostory . . . . . . . . . . . . . . . . . . . 5.4 Adres´aˇrov´a sluˇzba . . . . . . . . . . . . . . . . . . 5.5 Sch´emata . . . . . . . . . . . . . . . . . . . . . . . 5.6 Spolupr´ace se software . . . . . . . . . . . . . . . . 5.7 Z´avˇer . . . . . . . . . . . . . . . . . . . . . . . . .
49 49 49 53 55 55 68 71
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
6 Z´ avˇ er
72
Pouˇ zit´ e zdroje Literatura . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Software . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
73 73 75
-1-
Karel Ben´ ak
SEZNAM TABULEK
Seznam tabulek 3.1 3.2 3.3 3.4
Pˇr´ıklad hierarchie OID . Syntaxe vybran´ ych typ˚ u Vybran´a pravidla shody Vyhled´avac´ı filtry LDAP
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
16 18 18 32
5.1
Hierarchie OID pro KSk . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
55
-2-
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
´ ˚ SEZNAM OBRAZK U
Karel Ben´ ak
Seznam obr´ azk˚ u 2.1 2.2 2.3 2.4 2.5 2.6 2.7 2.8
Souˇc´asti adres´aˇrov´ ych sluˇzeb . . . . . . . . . . . Autentizace v SAPu pomoci adres´aˇrov´ ych sluˇzeb Centralizace ovˇeˇren´ı dat . . . . . . . . . . . . . . Duplicita datab´az´ı . . . . . . . . . . . . . . . . . Centralizace datab´az´ı . . . . . . . . . . . . . . . . Centralizace adres´aˇrov´ ych dat na jednom serveru Distribuce adres´aˇrov´ ych dat mezi v´ıce server˚ u . . Replikovan´e adres´aˇrov´e sluˇzby . . . . . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
7 8 9 10 10 11 12 12
3.1 3.2 3.3 3.4 3.5 3.6 3.7 3.8 3.9 3.10 3.11 3.12 3.13 3.14 3.15 3.16 3.17 3.18 3.19 3.20 3.21 3.22 3.23 3.24 3.25 3.26 3.27
Jeden nalezen´ y z´aznam . . . . . . . . . . . V´ıce nalezen´ ych z´aznam˚ u . . . . . . . . . . Typick´a komunikace protokolu LDAP . . . ˇ ast typick´eho adres´aˇre . . . . . . . . . . . C´ Organizace dat . . . . . . . . . . . . . . . . Adres´aˇrov´ y z´aznam . . . . . . . . . . . . . . Popis typu atributu . . . . . . . . . . . . . Vyuˇzit´ı atributu . . . . . . . . . . . . . . . Vztahy mezi supertypem a subtypy . . . . . Pˇr´ıklad nov´eho atributu skanskaCard . . . . Odvozen´ y atribut skanskaCardCar . . . . . Dˇediˇcnost objektov´ ych tˇr´ıd . . . . . . . . . Definice objektov´e tˇr´ıdy . . . . . . . . . . . Objektov´a tˇr´ıda typu STRUCTURAL . . . Objektov´a tˇr´ıda typu AUXILIARY . . . . . ˇ ast typick´eho adres´aˇrov´eho stromu . . . . C´ ˇ ast typick´eho souborov´eho syst´emu UNIX C´ ˇ ast typick´eho LDAP adres´aˇre . . . . . . . C´ Z´aznamy se shodn´ ym RDN . . . . . . . . . Podporovan´e jmenn´e prostory . . . . . . . . Nepodporovan´e jmenn´e prostory . . . . . . Jmenn´e prostory podle normy X500 . . . . Pˇr´ıklady sufix˚ u v LDAP . . . . . . . . . . . Jmenn´e prostory podle kontinent˚ u . . . . . Jmenn´e prostory podle oddˇelen´ı . . . . . . . Jmenn´e prostory podle souˇc´ ast´ı . . . . . . . Aliasy v adres´aˇrov´em stromu . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . .
14 14 15 16 17 17 19 19 20 20 20 21 21 22 22 23 23 24 26 27 27 27 28 28 28 29 29
-3-
. . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . .
´ ˚ SEZNAM OBRAZK U
Karel Ben´ ak
3.28 3.29 3.30 3.31 3.32 3.33 3.34 3.35 3.36 3.37 3.38 3.39 3.40 3.41 3.42 3.43
Aliasy mezi adres´aˇrov´ ymi servery . . . . . . . . Vyhled´an´ı v konkr´etn´ı vˇetvi . . . . . . . . . . . Prohled´av´an´ı adres´aˇrov´eho stromu . . . . . . . Vyhled´av´an´ı v konkr´etn´ı vˇetvi do prvn´ı u ´rovnˇe Kombinace vyhled´avac´ıch filtr˚ u . . . . . . . . . V´ ypis konkr´etn´ıch atribut˚ u . . . . . . . . . . . Operace compare . . . . . . . . . . . . . . . . . Jednoduch´a autentizace . . . . . . . . . . . . . PKI autentizace . . . . . . . . . . . . . . . . . . Syst´em PKI . . . . . . . . . . . . . . . . . . . . SASL mechanismus . . . . . . . . . . . . . . . . Bezpeˇcn´e spojen´ı pˇres ned˚ uvˇeryhodn´e prostˇred´ı Typick´ y LDIF soubor . . . . . . . . . . . . . . Z´aznam ve form´atu DSMLv2 . . . . . . . . . . . Topologie Skansky podle poboˇcek . . . . . . . . Topologie Skansky podle m´ısta pracoviˇstˇe . . .
. . . . . . . . . . . . . . . .
29 30 31 31 32 33 33 36 37 37 38 39 40 41 42 43
4.1
GQ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
46
5.1 5.2 5.3
ER diagram datab´aze . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Topologie s´ıtˇe KSk . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . KSk - n´avrh DIT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
50 52 54
-4-
. . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . .
´ KAPITOLA 1. UVOD
Karel Ben´ ak
Kapitola 1
´ Uvod Snahou t´eto pr´ace je pˇribl´ıˇzit moˇznosti adres´aˇrov´ ych sluˇzeb, pˇredevˇs´ım standardizovan´eho protokolu LDAP, a jejich pouˇzit´ı v informaˇcn´ıch syst´emech, vytipovat vhodn´e oblasti pouˇzit´ı adres´aˇrov´ ych sluˇzeb v informaˇcn´ıch syst´emech a realizovat uk´azkov´e ˇreˇsen´ı vybran´ ych sluˇzeb. Adres´aˇre a adres´aˇrov´e sluˇzby prov´ azej´ı n´aˇs ˇzivot, aniˇz bychom si uvˇedomili jejich existenci a mˇeli tuˇsen´ı o jejich v´ yznamu. Jejich pouˇzit´ı je natolik jednoduch´e a relativnˇe pˇrirozen´e, ˇze jejich skuteˇcn´ y v´ yznam pro n´aˇs ˇzivot nen´ı dostateˇcnˇe ocenˇen. Adres´aˇrem je klasick´ y telefonn´ı seznam, v adres´aˇri je organizovan´ y seznam kontakt˚ u, vizitek a cel´a ˇrada dalˇs´ıch uˇziteˇcn´ ych a praktick´ ych informac´ı. Bohuˇzel, jejich pouˇzit´ı je bˇehem na dlouhou trat’ a n´avrh´ aˇri informaˇcn´ıch syst´em˚ u mus´ı prov´est velmi d˚ ukladnou anal´ yzu, kter´a je pro z´akazn´ıka n´akladn´ a. D´ale je nutn´e br´at v u ´vahu cenu licenc´ı software, kter´e se mohou velmi v´ yraznˇe liˇsit pro r˚ uzn´ y poˇcet z´aznam˚ u, uˇzivatel˚ u, nebo pro r˚ uzn´e technick´e prostˇredky. Pokud se jeˇstˇe pˇripoˇc´ıt´ a z´akaznick´ a podpora, moˇzn´e probl´emy s migrac´ı st´avaj´ıc´ıch dat, pˇr´ıpadn´e v´ ypadky pˇri zav´ adˇen´ı syst´emu, n´aklady na spr´avu dat, n´aroky kladen´e na spr´avce informaˇcn´ıho syst´emu a pˇreˇskolen´ı uˇzivatel˚ u na nov´ y syst´em, vyˇsplh´a se cena nov´eho informaˇcn´ıho syst´emu na pomˇernˇe vysokou ˇc´ astku. Proˇc se tedy zab´ yvat adres´aˇrov´ ymi sluˇzbami, prostˇredky umoˇzn ˇuj´ıc´ımi jejich provoz a spolupr´aci s dalˇs´ımi aplikacemi? D˚ uvod je pomˇernˇe jednoduch´ y. Pokud si z´akazn´ık sv´ ych informac´ı skuteˇcnˇe cen´ı, dok´aˇze v adres´aˇrov´ ych sluˇzb´ ach zorganizovat a poskytovat obrovsk´e mnoˇzstv´ı dat podle konkr´etn´ıch poˇzadavk˚ u i s ohledem na dalˇs´ı v´ yvoj n´arok˚ u a poˇzadavk˚ u. Adres´aˇrov´e sluˇzby jsou velmi siln´ ym n´astrojem pro aplikace, kter´e vyˇzaduj´ı rychl´ y, stabiln´ı a bezpeˇcn´ y pˇr´ıstupu k dat˚ um. Pro uk´azky v textu pr´ace jsou pouˇzity n´avrhy ˇc´ ast´ı informaˇcn´ıho syst´emu spoleˇcnosti Skanska CZ. Na t´eto spoleˇcnosti lze n´azornˇe vysvˇetlit a popsat n´avrh jmenn´ ych prostor˚ ua topologie pro rozs´ahlejˇs´ı podnik. Bohuˇzel, popis nebude zcela odpov´ıdat skuteˇcnosti pˇredevˇs´ım proto, ˇze se jedn´a o velmi rozs´ahlou spoleˇcnost a jej´ı anal´ yza by zabrala pˇr´ıliˇs mnoho ˇcasu. Pˇresto je Skanska CZ ide´aln´ım pˇr´ıkladem vˇetˇs´ıho podniku, kter´ y by mohl pouˇz´ıvat adres´aˇrov´e sluˇzby. Z´avˇereˇcn´a kapitola je vˇenov´ana anal´ yze ˇreˇsen´ı ˇc´ asti informaˇcn´ıho syst´emu Klubu Sinkuleho koleje, realizovan´eho v tomto roce.
-5-
Karel Ben´ ak
2.1 Adres´ aˇre a adres´ aˇrov´ e sluˇ zby
Kapitola 2
Adres´ aˇ rov´ e sluˇ zby 2.1
Adres´ aˇ re a adres´ aˇ rov´ e sluˇ zby
Adres´aˇr slouˇz´ı k organizov´an´ı a sdruˇzov´ an´ı dat do skupin, aby se v nich mohl uˇzivatel sn´aze orientovat. V podstatˇe jsou to jak´esi kontejnery pro ukl´ad´ an´ı dat, specializovan´e datab´aze, ve kter´ ych lze uchovat a pˇredevˇs´ım vyhled´avat velk´e mnoˇzstv´ı informac´ı r˚ uzn´eho charakteru. Na rozd´ıl od relaˇcn´ıch datab´az´ı jsou urˇceny pˇredevˇs´ım pro vyhled´av´ an´ı, nikoliv pro klasick´e transakce, ˇcast´e ukl´ad´an´ı a zmˇeny dat anebo pro velmi komplikovan´e dotazy. V norm´aln´ım ˇzivotˇe se lze vˇetˇsinou setkat s off-line adres´ aˇri, kter´e jsou nejˇcastˇeji k dispozici v tiˇstˇen´e verzi (telefonn´ı seznam apod.). Pˇri pr´aci s poˇc´ıtaˇci se pouˇz´ıvaj´ı on-line adres´aˇre, kter´e maj´ı oproti zm´ınˇen´ ym off-line adres´aˇr´ım n´asleduj´ıc´ı v´ yhody: On-line adres´ aˇ re jsou dynamick´ e – v pˇr´ıpadˇe potˇreby lze velmi snadno pˇrid´ avat nov´e z´aznamy, mazat zastaral´e z´aznamy a aktualizovat st´avaj´ıc´ı z´aznamy. U off-line adres´aˇr˚ u je jak´akoliv aktualizace obt´ıˇzn´ a a vˇetˇsinou se prov´ ad´ı nov´ ym v´ ytiskem. Pˇr´ıkladem v´ yhody dynamick´ ych adres´aˇr˚ u m˚ uˇze b´ yt situace, kdy zamˇestnanec z centr´ aly v Praze jede na sluˇzebn´ı cestu do poboˇcky v Brnˇe. Bˇehem jeho cesty mu lze pˇridˇelit pˇr´ısluˇsn´ a pˇr´ıstupov´a pr´ava pro objekt v Brnˇensk´e poboˇcce, aniˇz by muselo doj´ıt k nov´e registraci zamˇestnance. V pˇr´ıpadˇe off-line adres´aˇre, kter´ ym m˚ uˇze b´ yt napˇr. telefonn´ı seznam, katalog zboˇz´ı ad., je nutn´e prov´est jejich nov´ y v´ ytisk. On-line adres´ aˇ re jsou flexibiln´ı – v adres´aˇri lze ukl´adat data r˚ uzn´ ych typ˚ u, napˇr. ASCII text, text v k´odov´an´ı UTF-8, digit´aln´ı certifik´aty, obr´azky, audio, odkazy, r˚ uzn´e URL ad. V z´aznamech lze pak jednoduˇse a velmi rychle vyhled´avat podle pˇr´ısluˇsn´ ych pravidel. Mimo to lze data pomˇernˇe pruˇznˇe rozˇsiˇrovat a doplˇ novat o nov´e vlastnosti, nutn´e pro nov´e sluˇzby spolupracuj´ıc´ı s on-line adres´aˇrem. On-line adres´ aˇ re lze velmi dobˇ re zabezpeˇ cit – pˇrenosov´ y protokol je standardizovan´ y a m´a i svou zabezpeˇcenou verzi. Uˇzivatel˚ um lze pomoc´ı ACL (access control list) pˇresnˇe vymezit, ke kter´ ym z´aznam˚ um smˇej´ı a ke kter´ ym nesmˇej´ı pˇristupovat. On-line adres´ aˇ re lze snadno personalizovat – d´ıky adres´aˇrov´ ym sluˇzb´ am lze velmi snadno uchovat informace o nastaven´ı aplikace nebo prostˇred´ı pro konkr´etn´ıho uˇzivatele syst´emu. Rovnˇeˇz lze v adres´aˇri snadno uchovat informace o z´alib´ ach a uˇzivatelem nejˇcastˇeji hledan´ ych informac´ıch a dokumentech a c´ılenˇe mu pak pˇredkl´ adat konkr´etn´ı reklamu a nab´ıdky. Tento princip je ale postupnˇe nahrazov´ an principem kolaborace. -6-
Karel Ben´ ak
2.1 Adres´ aˇre a adres´ aˇrov´ e sluˇ zby
Adres´aˇre lze tak´e rozdˇelit podle zp˚ usobu, jak´ ym spolupracuj´ı s ostatn´ımi aplikacemi a syst´emy: Aplikaˇ cn´ı adres´ aˇ re – adres´aˇre, kter´e si udrˇzuj´ı aplikace pro ukl´ad´ an´ı sv´ ych vlastn´ıch z´aznam˚ u. Pˇr´ıkladem m˚ uˇze b´ yt napˇr. IBM/Lotus Notes, Microsoft Exchange a napˇr. aliasy obsaˇzen´e v /etc/aliases. Ty slouˇz´ı pro poˇstovn´ı aliasy MTA server˚ u. Adres´ aˇ re s´ıt’ov´ ych operaˇ cn´ıch syst´ em˚ u (NOS) – adres´aˇre, kter´e vyuˇz´ıvaj´ı r˚ uzn´e operaˇcn´ı syst´emy, jak´ ymi jsou napˇr. Windows, Linux, Solaris, AIX apod. Tyto adres´aˇre b´ yvaj´ı postaveny na nˇekter´em z uzn´avan´ ych standard˚ u a mohou kombinovat nˇekolik protokol˚ u, jako je tomu napˇr. u Microsoft Active Directory. Ten v sobˇe obsahuje protokoly LDAP, Kerberos a CIFS. Dalˇs´ım pˇrikladem je napˇr. Novell eDirectory (dˇr´ıve zn´am´ y jako Netware Directory Services), kter´ y implementuje protokol X.500, nebo Network Information Service (NIS ) od Sun Microsystems uˇz´ıvan´ y pro distribuci uˇzivatelsk´ ych u ´ˇct˚ u mezi UNIXov´ ymi poˇc´ıtaˇci. ´ celov´ Uˇ e adres´ aˇ re – velmi specializovan´ y typ adres´aˇr˚ u urˇcen´ ych pro jedin´ y konkr´etn´ı u ´ˇcel. Nelze je pˇr´ıliˇs rozˇsiˇrovat o dalˇs´ı typy informac´ı, pouze pˇri zmˇenˇe standardu. Typick´ ym pˇr´ıkladem u ´ˇcelov´eho adres´aˇre je Domain Name System (DNS ). Univerz´ aln´ı standardizovan´ e adres´ aˇ re – standardizovan´e adres´aˇrov´e sluˇzby zaloˇzen´e na protokolu X.500 postaven´eho nad s´ıt’ov´ ym modelem OSI a protokol LDAP, kter´ y je zjednoduˇsenou variantou protokolu X.500 a je podstatnou ˇc´ ast´ı t´eto pr´ace. Velmi ˇcasto se spojuj´ı term´ıny adres´ aˇr a adres´ aˇrov´ a sluˇzba a jsou povaˇzov´ any za synonymum. Adres´aˇrov´e sluˇzby jsou souhrnem software, hardware, proces˚ u, politik a administrativn´ıch procedur. Skl´adaj´ı se z n´asleduj´ıc´ıch komponent: • Informace uloˇzen´e v adres´aˇri • Serverov´ y software, kter´ y tyto informace poskytuje • Klientsk´ y software, kter´ y je schopen uˇzivateli tyto informace zprostˇredkovat • Hardware, na kter´em klienti a servery pracuj´ı • Podporuj´ıc´ı software jako jsou operaˇcn´ı syst´emy a ovladaˇce zaˇr´ızen´ı • S´ıt’ov´a infrastruktura, kter´a je schopna spojit klienty se servery • Bezpeˇcnostn´ı politika, kter´a specifikuje opr´avnˇen´ı pˇristup˚ u k z´aznam˚ um, aktualizaci dat, apod. • Procedury, kter´e adres´aˇrov´e sluˇzby pouˇz´ıvaj´ı pro udrˇzbu a monitorov´ an´ı • Software pouˇz´ıvan´ y pro u ´drˇzbu a monitorov´ an´ı adres´aˇrov´ ych sluˇzeb Obr´azek 2.1 zobrazuje typick´e souˇc´ asti adres´aˇrov´ ych sluˇzeb, ovˇsem nezobrazuje kompletn´ı seznam, pouze nejz´akladnˇejˇs´ı souˇc´asti.
-7-
Karel Ben´ ak
2.2 Pouˇ zit´ı adres´ aˇrov´ ych sluˇ zeb
Obr. 2.1: Souˇc´ asti adres´aˇrov´ ych sluˇzeb
2.2
Pouˇ zit´ı adres´ aˇ rov´ ych sluˇ zeb
Adres´aˇrov´e sluˇzby maj´ı velmi ˇsirok´e pole vyuˇzit´ı. Aˇckoliv nedosahuj´ı takov´ ych moˇznost´ı jako relaˇcn´ı datab´aze, pˇresto se jich ve velk´e m´ıˇre uˇz´ıv´ a pro ukl´ad´ an´ı informac´ı o uˇzivatel´ıch poˇc´ıtaˇcov´ ych s´ıt´ı r˚ uzn´ ych organizac´ı a spoleˇcnost´ı. Adres´aˇrov´e servery slouˇz´ı pˇredevˇs´ım jako zdroje pro ovˇeˇren´ı pˇr´ıstupov´ ych pr´av k dan´ ym prostˇredk˚ um, napˇr. poˇc´ıtaˇcov´emu u ´ˇctu a poˇstovn´ımu u ´ˇctu elektronick´e poˇsty. D´ale m˚ uˇze slouˇzit jako adres´aˇr a telefonn´ı seznam spoleˇcnosti, ve kter´em m˚ uˇze b´ yt uvedeno velk´e mnoˇzstv´ı informac´ı poˇc´ınaje jm´enem a pˇr´ıjmen´ım, pˇres telefonn´ı linku, mobiln´ı telefon, u ´ˇcet pro instant messengera aˇz po fotografii. V adres´aˇrov´ ych sluˇzb´ach jsou organizov´ any i veˇrejn´e kl´ıˇce a digit´aln´ı certifik´aty uˇzivatel˚ u podle norem PKI. Model certifik´at˚ u pouˇz´ıvan´ ych pro ovˇeˇren´ı uˇzivatelsk´e identity je pˇrevzat´ y z protokolu X.500, konkr´etnˇe X.509v3 ([X.509] a [Dostalek], kapitola 9.). Moˇznosti adres´aˇrov´ ych sluˇzeb jsou opravdu velik´e a z´aleˇz´ı pouze na n´avrh´ aˇr´ıch informaˇcn´ıho syst´emu, jak dok´aˇzou vyuˇz´ıt moˇznosti t´eto technologie. Pˇri spr´avn´em n´avrhu je tˇreba vz´ıt vu ´vahu nejen aktu´aln´ı, ale i budouc´ı potˇreby spoleˇcnosti. Ve vˇetˇsinˇe pˇr´ıpad˚ u se s adres´aˇrov´ ym serverem zaˇc´ın´a jako s levn´ ym a efektivn´ım zdrojem pro autentizaci uˇzivatel˚ u v poˇc´ıtaˇcov´e s´ıti spoleˇcnosti. Po nˇejak´e dobˇe pˇrijde n´avrh na propojen´ı tohoto seznamu uˇzivatel˚ u s vlastn´ım seznamem zamˇestnanc˚ u a moˇznost´ı jejich spr´avy. Pracovn´ıci zase ocen´ı moˇznost propojen´ı sv´eho poˇstovn´ıho klienta s adres´aˇrov´ ym serverem, ve kter´em budou m´ıt uloˇzeny kontakty nejen na sv´e spolupracovn´ıky, ale z´aroveˇ n i na sv´e z´akazn´ıky a dodavatele. V tomto okamˇziku se jiˇz jedn´a o prov´az´an´ı s CRM a SRM syst´emy. Nˇekter´e velk´e podnikov´e aplikace jsou schopny pouˇz´ıvat adres´aˇrov´e sluˇzby pro ovˇeˇren´ı uˇzivatele k pˇr´ıstupu ke konkr´etn´ım z´aznam˚ um, napˇr. SAP (obr. 2.2, strana 8.). Produkt mySAP, postaven´ y nad J2EE, je schopen pomoc´ı jednoduch´eho pˇremapov´ an´ı sv´ ych obvykl´ ych ABAP atribut˚ u z´ısk´avat z adres´aˇrov´e sluˇzby daleko v´ıce informac´ı, neˇz je pouh´a autentizace uˇzivatele1 . Velk´ y konkurent SAPu, produkt spoleˇcnosti PeopleSoft2 , je schopen d´ıky sv´emu zamˇeˇren´ı pˇredevˇs´ım na CRM a HR syst´emy pˇr´ım´e spolupr´ace s adres´aˇrov´ ymi sluˇzbami a vyuˇz´ıv´a jich jako moˇzn´eho zdroje dat. 1 2
http://www.sap.com http://www.peoplesoft.com
-8-
Karel Ben´ ak
2.2 Pouˇ zit´ı adres´ aˇrov´ ych sluˇ zeb
Obr. 2.2: Autentizace v SAPu pomoci adres´aˇrov´ ych sluˇzeb
Dalˇs´ım pˇr´ıkladem vyuˇzit´ı adres´aˇrov´ ych sluˇzeb je jejich spojen´ı s poˇstovn´ım serverem, kter´ y dok´aˇze pˇrepisovat poˇstovn´ı hlaviˇcky s n´azvem u ´ˇctu uˇzivatele na jeho poˇstovn´ı alias a zpˇet. Poˇstovn´ı server pˇrijme napˇr. e-mail pro pˇr´ıjemce
[email protected] a pˇri dotazu na syst´emov´e u ´ˇcty zjist´ı, ˇze ˇz´adn´ y takov´ yu ´ˇcet na dan´em serveru neexistuje. Pod´ıv´ a se tedy do seznamu poˇstovn´ıch alias˚ u uloˇzen´eho v adres´aˇrov´e sluˇzbˇe a zjist´ı, ˇze e-mail m´a uloˇzit do poˇstovn´ı schr´anky jnovak. Toto propojen´ı poˇstovn´ıho serveru s adres´aˇrov´ ym serverem m´a ’ napˇr. MS Active Directory s MS Exchange Serverem, kter´ y zajiˇst uje pr´avˇe zmiˇ novan´e poˇstovn´ı sluˇzby. MS Exchange Server sice obsahuje vlastn´ı verzi adres´aˇre, ale propojen´ı s jiˇz zmiˇ novan´ ym Active Directory z nˇej ˇcin´ı ˇcasto pouˇz´ıvan´e ˇreˇsen´ı pro stˇrednˇe velk´e a velk´e podniky. Podobnˇe je na tom [JES], kter´ y pracuje i na jin´ ych platform´ach, neˇz-li jsou Microsoft Windows, a snaˇz´ı se v´ıce dodrˇzovat standardy definovan´e v pˇr´ısluˇsn´ ych RFC. Obr´azek 2.3, strana 9., zobrazuje moˇznost praktick´eho vyuˇzit´ı adres´aˇrov´eho serveru jako moˇzn´eho autentizaˇcn´ıho zdroje pro IMAP /POP3 a HTTP server, ovˇsem jak bude pops´ano na stranˇe 70, nemus´ı se jeho moˇznosti omezovat pouze na u ´lohu autentizace. M˚ uˇze slouˇzit i jako datab´aze, ze kter´e ˇcerp´a potˇrebn´e informace DNS a DHCP server. Adres´ aˇrov´e sluˇzby se snaˇz´ı nahradit nˇekter´e zastaral´e standardy pro sd´ılen´ı dat pomoc´ı jmenn´ ych sluˇzeb. Pˇr´ıkladem je noˇcn´ı m˚ ura vˇsech administr´ator˚ u a odborn´ık˚ u, standardy NIS a NIS+, vytvoˇren´e spoleˇcnost´ı Sun Microsystems. Ve sv´e dobˇe se jednalo o pokrokov´e ˇreˇsen´ı, bohuˇzel se pˇr´ıliˇs nedbalo na jejich bezpeˇcnost. Pokud by z pˇredchoz´ıho ˇci n´asleduj´ıc´ıho textu mohlo vyplynout, ˇze adres´aˇrov´e sluˇzby jsou vˇsemocn´e, je tˇreba si uvˇedomit charakter a povahu dat, kter´a se v nich ukl´adaj´ı a se kter´ ymi uˇzivatel pracuje. Adres´aˇrov´e sluˇzby nejsou v ˇz´ adn´em pˇr´ıpadˇe podobn´e klasick´ ym relaˇcn´ım datab´az´ım, jak se je vˇetˇsina lid´ı snaˇz´ı pochopit. Lze si je pˇredstavit jako velmi jednoduchou kartot´eku, ve kter´e se ukl´adaj´ı jednotliv´e l´ıstky do jednotliv´ ych kontejner˚ u. Pˇri splnˇen´ı urˇcit´ ych podm´ınek lze vˇsak v takov´eto stromovˇe uspoˇr´ adan´e kartot´ece velmi rychle vyhled´avat.
-9-
Karel Ben´ ak
2.3 Data a jejich spr´ ava
Obr. 2.3: Centralizace ovˇeˇren´ı dat
Adres´aˇrov´e sluˇzby nejsou urˇceny k zachycen´ı transakˇcn´ıch dat a neovl´ adaj´ı pr´aci s referenˇcn´ı integritou. K tomu se velmi dobˇre hod´ı klasick´e relaˇcn´ı datab´aze, dnes jiˇz v drtiv´e vˇetˇsinˇe vyuˇz´ıvaj´ıc´ı jazyka SQL (Structured Query Language). Napˇr. pravideln´e platby je moˇzn´e v adres´aˇrov´ ych sluˇzb´ach jist´ ym zp˚ usobem zachytit, je to ale velmi nepraktick´e ˇreˇsen´ı. S tˇemito daty pak nelze rozumnˇe manipulovat. Jazyk SQL m´ a v tomto ohledu velmi ˇsirok´e moˇznosti (matematick´e operace, pohledy apod.). Adres´aˇrov´ ym sluˇzb´ am nelze kl´ast tak sofistikovan´e dotazy, jak´e je moˇzn´e pokl´adat pomoc´ı SQL, a jiˇz v˚ ubec nepˇripadaj´ı v u ´vahu jak´ekoliv rozs´ahl´e transakce spojen´e napˇr. s vkl´ad´ an´ım v´ıce z´aznam˚ u do datab´aze u kter´ ych je nutn´e prov´adˇet kontrolu spr´avn´ ych hodnot dat. Adres´aˇrov´e sluˇzby nejsou urˇceny k pˇrenosu soubor˚ u. K nˇemu je prim´arnˇe urˇcen protokol FTP (File Transfer Protocol). Je snahou, aby zaznamenan´a data mˇela co nejmenˇs´ı velikost, zat´ımco pomoc´ı FTP lze pˇren´aˇset data (pˇredevˇs´ım soubory) v rozsahu od nˇekolika byt˚ u aˇz do nˇekolika gigabyt˚ u. Adres´aˇrov´e sluˇzby nejsou urˇceny k prezentaci dat. K tomuto je urˇcen protokol HTTP (Hyper Text Transfer Protocol) a sluˇzba WWW (World Wide Web). Podobnˇe jako v pˇr´ıpadˇe FTP protokolu zde doch´az´ı k velk´emu pˇrenosu dat a pˇredevˇs´ım jejich vizualizaci v uˇzivatelovˇe prohl´ıˇzeˇci. Adres´aˇrov´a sluˇzba vˇsak m˚ uˇze slouˇzit jako dobr´ y z´aklad pro seznam odkaz˚ u na konkr´etn´ı www str´anky. Je tˇreba d˚ uslednˇe analyzovat potˇreby organizace a vyuˇz´ıvat vˇsechny sluˇzby ke konkr´etn´ımu u ´ˇcelu, ke kter´emu byly navrˇzeny. Adres´aˇrov´e sluˇzby jsou velmi v´ yhodn´e pro jiˇz zm´ınˇenou autentizaci, lze je ovˇsem vyuˇz´ıt i pro uloˇzen´ı jin´ ych dat.
2.3
Data a jejich spr´ ava
Klasick´e aplikace pouˇz´ıvaj´ı pro ukl´ad´ an´ı sv´ ych dat r˚ uzn´e druhy datab´az´ı. At’ uˇz se jedn´a o jejich intern´ı datov´e form´aty soubor˚ u, r˚ uzn´e embedded datab´aze zaloˇzen´e na principu kliˇc– hodnota, nebo dokonce velk´e RDMBS datab´ aze typu klient–server, vˇzdy je tu probl´em s duplicitou z´aznam˚ u. Nˇekter´e typy dat jsou duplicitnˇe veden´e v kaˇzd´e z datab´az´ı a jejich v´ ymˇena mezi jednotliv´ ymi aplikacemi je moˇzn´ a pouze na z´akladˇe exportn´ıch a importn´ıch filtr˚ u, kter´e jsou schopny pˇrev´est jeden typ dat na druh´ y. Administr´ator je tak nucen dohl´ıˇzet na nˇekolik - 10 -
Karel Ben´ ak
2.3 Data a jejich spr´ ava
datab´az´ı a mus´ı zajistit jejich konzistenci, spr´avnou u ´drˇzbu, z´alohov´ an´ı a pˇr´ıpadnou obnovu (obr. 2.4, strana 10.).
Obr. 2.4: Duplicita datab´az´ı Data uloˇzen´a v adres´aˇrov´em serveru lze organizovat a spravovat z jedin´eho m´ısta a aplikace, kter´e jsou schopny pouˇz´ıvat adres´aˇrov´e sluˇzby jako sv˚ uj zdroj dat, je pak mohou velmi snadno sd´ılet (obr. 2.5, strana 10.). Rovnˇeˇz je ale moˇzn´e delegovat administr´atorsk´ a pr´ava na
Obr. 2.5: Centralizace datab´az´ı v´ıce pracovn´ık˚ u, takˇze jednotliv´e ˇc´asti adres´aˇre mohou spravovat r˚ uzn´ı lid´e. Bohuˇzel, adres´aˇrov´e sluˇzby nelze pouˇz´ıt pro ukl´ad´ an´ı vˇsech typ˚ u dat. Zat´ımco v relaˇcn´ıch datab´az´ıch lze uloˇzit t´emˇeˇr vˇsechny druhy, v adres´aˇrov´ ych sluˇzb´ ach se jedn´a o data, kter´a nejsou transakˇcn´ıho charakteru a pro jejichˇz uloˇzen´ı se adres´aˇr hod´ı. Adres´aˇrov´e sluˇzby totiˇz ve vˇetˇsinˇe pˇr´ıpad˚ u umoˇzn ˇuj´ı pouze jednoduch´e transakce a na rozd´ıl od relaˇcn´ıch datab´az´ı neobsahuj´ı kontrolu referenˇcn´ı integrity3 . Tu mus´ı zajistit samotn´a aplikace informaˇcn´ıho syst´emu. 3
Nˇekter´e komerˇcn´ı adres´ aˇrov´e servery, napˇr. [JES] ji v omezen´e m´ıˇre umoˇzn ˇuj´ı.
- 11 -
Karel Ben´ ak
2.3 Data a jejich spr´ ava
Data jsou vˇetˇsinou uloˇzena v jednoduch´ ych datab´az´ıch typu Berkeley DB. Ty jsou zaloˇzeny na principu kl´ıˇc/hodnota (key/value), ovˇsem tento typ datab´az´ı m´a v nˇekter´ ych implementac´ıch velmi rozs´ahl´e moˇznosti, mezi kter´ ymi je i moˇznost transakc´ı (ty se ovˇsem net´ ykaj´ı samotn´e adres´aˇrov´e sluˇzby). Mezi dalˇs´ımi moˇznostmi ukl´ad´ an´ı dat jsou klasick´e textov´e nebo bin´arn´ı soubory a v nˇekter´ ych pˇr´ıpadech i relaˇcn´ı datab´aze. Napˇr. pˇri pouˇzit´ı Oracle Internet Directory je nutn´e zakoupit i licenci k jejich relaˇcn´ı datab´azi, kterou pak adres´aˇr vyuˇz´ıv´ a jako u ´loˇziˇstˇe dat. V jin´ ych pˇr´ıpadech je moˇzn´e pouˇz´ıt pro pˇr´ıstup k relaˇcn´ı datab´azi rozhran´ı ODBC (Open Database Connectivity) nebo JDBC (Java Database Connectivity). Kaˇzd´ y z´aznam uloˇzen´ y v datab´azov´em serveru se skl´ad´ a z atribut˚ u a kaˇzd´ y z atribut˚ u m´a pˇriˇrazenou nˇejakou hodnotu, jak je vidˇet z obr. 3.5, strana 17. Bl´ıˇze o nich pojedn´av´ a kapitola 3.2.2 na stranˇe 16. Data adres´aˇrov´ ych sluˇzeb jsou uloˇzena na pevn´em disku serveru, pˇr´ıpadnˇe na nˇekter´em specializovan´em hardwarov´em a softwarov´em ˇreˇsen´ı typu RAID, LVM, SAN apod. Tato ˇreˇsen´ı jsou pops´ana napˇr. v [BfHA]. V pˇr´ıpadˇe mal´eho rozsahu b´ yv´a adres´aˇrov´ y strom uloˇzen na jednom serveru (obr. 2.6, strana 11.), kter´ y je navrˇzen na odpov´ıdaj´ıc´ı v´ ykon a vhodnˇe nakonfigurov´ an.
Obr. 2.6: Centralizace adres´aˇrov´ ych dat na jednom serveru Nˇekdy je vˇsak vhodnˇejˇs´ı rozdˇelit adres´aˇrov´ y strom na nˇekolik jednotliv´ ych vˇetv´ı, kter´e pouze odkazuj´ı na data uloˇzen´a na jin´ ych serverech. V pˇr´ıpadˇe rozs´ahl´ ych strom˚ u a obrovsk´eho mnoˇzstv´ı z´aznam˚ u, kter´e by zab´ıraly velk´ y diskov´ y prostor, je v´ yhodn´e pouˇz´ıt rozdˇelen´ı adres´aˇrov´eho stromu na ˇc´asti mezi nˇekolik server˚ u a pak se pomoc´ı referenc´ı odkazovat na jednotliv´e vˇetve (obr. 2.7, strana 12.). O tomto probl´emu pojedn´av´ a kapitola 3.7. Topologie na stranˇe 42. Tuto moˇznost lze pouˇz´ıt pˇri dobr´em n´avrhu adres´aˇrov´eho stromu, kdy je tˇreba vz´ıt v u ´vahu, jak je to pro konkr´etn´ı pˇr´ıpad v´ yhodn´e z hlediska dostupnosti dat a ceny spojen´ı. Pro zv´ yˇsen´ı bezpeˇcnosti ukl´adan´ ych dat je pouˇzit princip replikac´ı. Replikace je proces, kter´ y slouˇz´ı pro spr´avu a u ´drˇzbu mnoha kopii dat mezi nˇekolika lokalitami. Tyto replikace mohou slouˇzit pro dotazov´an´ı klient˚ u a t´ım odlehˇcit hlavn´ımu serveru (obr. 2.8, strana 12.). V nˇekter´ ych pˇr´ıpadech je dokonce vhodn´e nastavit politiku replikac´ı tak, ˇze uˇzivatel´e nemohou z centr´aln´ıho adres´aˇrov´eho serveru ˇc´ıst, ale mohou do nich zapisovat. Naopak z replik je moˇzn´e pouze ˇc´ıst. Repliky je vhodn´e um´ıstit na poboˇcky, kter´e by byly nuceny se neust´ale dotazovat centr´aln´ıho serveru a zatˇeˇzovaly by tak linky pˇripojen´ı k internetu. - 12 -
Karel Ben´ ak
2.3 Data a jejich spr´ ava
Obr. 2.7: Distribuce adres´aˇrov´ ych dat mezi v´ıce server˚ u
Obr. 2.8: Replikovan´e adres´aˇrov´e sluˇzby
- 13 -
Karel Ben´ ak
3.1 Protokol LDAP
Kapitola 3
LDAP Lightweight Directory Access Protocol, ve zkratce LDAP [RFC 2251], je zjednoduˇsenou verz´ı adres´aˇrov´eho protokolu X.500 a p˚ uvodnˇe slouˇzil pro komunikaci s t´ımto protokolem. Postupem ˇcasu se vyvinul v plnohodnotn´ y adres´aˇrov´ y protokol, kter´ y je schopen sv´emu pˇredch˚ udci zdatnˇe konkurovat a je v podnikov´e sf´eˇre mnohem v´ıce pouˇzitelnˇejˇs´ı, neˇz jeho pˇredch˚ udce. V souˇcasn´e dobˇe vyuˇz´ıvaj´ı protokol X.500 pouze velk´e telekomunikaˇcn´ı spoleˇcnosti. Podnikov´a sf´era a ostatn´ı organizace pˇrech´ azej´ı na LDAP nebo na Microsoft Active Directory. Co je to LDAP? V´ yznam zkratky LDAP lze shrnout do nˇekolika n´asleduj´ıc´ıch term´ın˚ u: • Lightweight Directory Access Protocol – standardizovan´ y protokol pro pˇr´ıstup k adres´aˇrov´ ym sluˇzb´am • Soubor ˇctyˇr model˚ u – informaˇcn´ı, jmenn´ y, funkˇcn´ı a bezpeˇcnostn´ı model • LDAP Data Interchange Format (LDIF ) – standardizovan´ y textov´ y form´at pro v´ ymˇenu adres´aˇrov´ ych dat • LDAP serverov´ y software – soubor software pro provoz LDAP serveru • LDAP klientsk´ y software – soubor program˚ u schopn´ ych pr´ace s LDAP serverem • LDAP API – aplikaˇcn´ı programov´e rozhran´ı pro v´ yvoj software
3.1
Protokol LDAP
LDAP je protokol orientovan´ y na zpr´avy (message-oriented protocol). Klient vytvoˇr´ı zpr´avu obsahuj´ıc´ı nˇejakou ˇz´adost a odeˇsle ji serveru. Ten ji zpracuje a odeˇsle v´ ysledek zpˇet jako s´erii jedn´e nebo v´ıce LDAP zpr´av. Pokud napˇr. klient hled´a v adres´aˇri konkr´etn´ı z´aznam, zaˇsle LDAP serveru ˇz´ adost o vyhled´an´ı (LDAP search request). Ta obsahuje pokud moˇzno co nejpˇresnˇejˇs´ı um´ıstˇen´ı z´aznamu v adres´aˇrov´em stromˇe, vyhled´avac´ı filtry, poˇzadovan´e atributy, ovˇeˇrovac´ı u ´daje ad. V pˇr´ıpadˇe, ˇze server nalezne v´ıce z´aznam˚ u, zaˇsle je klientu zpˇet v s´erii urˇcit´eho poˇrad´ı (obr. 3.2, strana 14.).
- 14 -
Karel Ben´ ak
3.1 Protokol LDAP
Obr. 3.1: Jeden nalezen´ y z´aznam
Obr. 3.2: V´ıce nalezen´ ych z´aznam˚ u
3.1.1
Operace protokolu LDAP
Protokol LDAP m´a devˇet z´akladn´ıch operac´ı. Ty lze d´ale rozdˇelit do tˇrech kategori´ı, podrobnˇeji popsan´ ych v kapitole 3.4 Funkˇcn´ı model, strana 30.: Dotazovac´ı operace: search, compare. Tyto dvˇe operace umoˇzn ˇuj´ı kl´ast adres´aˇrov´emu serveru dotazy. Aktualizaˇ cn´ı operace: add, delete, modify, modify DN (rename). Tyto operace umoˇzn ˇuj´ı u ´pravy z´aznam˚ u v adres´aˇrov´em serveru Autentizaˇ cn´ı a ˇ r´ıd´ıc´ı operace: bind, unbind, abandon. Pˇr´ıklad typick´e komunikace klienta se serverem pˇri hled´an´ı z´aznamu pomoc´ı protokolu LDAP je na obr. 3.3, strana 15. 1. Klient otevˇre TCP spojen´ı s LDAP serverem a zaˇsle pˇr´ıkaz bind. Ten slouˇz´ı pro autentizaci klienta 2. Server ovˇeˇr´ı klientovu identitu a autentizuje jej pro dalˇs´ı operace. V opaˇcn´em pˇr´ıpadˇe ukonˇc´ı s klientem spojen´ı 3. Klient vytvoˇr´ı a odeˇsle ˇz´adost o nalezen´ı z´aznamu 4. Server odeˇsle klientu z´aznam nebo v s´erii za sebou vˇsechny z´aznamy, kter´e nalezl 5. Server odeˇsle n´avratov´ y k´od 6. Klient odeˇsle serveru ˇz´adost o operaci unbind, kter´a serveru ozn´am´ı, ˇze klient chce ukonˇcit spojen´ı 7. Server uzavˇre spojen´ı
- 15 -
Karel Ben´ ak
3.2 Informaˇ cn´ı model
Obr. 3.3: Typick´ a komunikace protokolu LDAP
3.1.2
Protokol LDAP v provozu
Z´ akladn´ı pravidla pro k´ odov´ an´ı (Basic Encoding Rules – BER [Dostalek] kapitola 6.) jsou souborem norem pro zak´odov´an´ı r˚ uzn´ ych typ˚ u dat. Tˇemito typy jsou napˇr. cel´a ˇc´ısla, textov´e ˇretˇezce a dalˇs´ı. BER ukl´ad´a data ve zhuˇstˇen´em a na syst´emu nez´avisl´em tvaru, coˇz je d˚ uleˇzit´e u rozd´ıln´ ych procesorov´ ych architektur v nehomogenn´ım s´ıt’ov´em prostˇred´ı, jak´ ym je napˇr. Internet. BER tak´e definuje zp˚ usoby, jak´ ymi lze kombinovat datov´e typy do r˚ uzn´ ych datov´ ych struktur jako jsou tˇr´ıdy a sekvence. Protokol LDAP pouˇz´ıv´a zjednoduˇsenou verzi protokolu BER, tzv. Lightweight BER, zkratka LBER. BER byl zrevidov´an a byly z nˇej vypuˇstˇeny nˇekter´e prvky, kter´e dˇelaly vlastn´ı protokol BER velmi sloˇzit´ ym na pochopen´ı a implementaci. Pˇri vlastn´ım provozu po s´ıti pouˇz´ıv´ a protokol LDAP k´ odov´ an´ı dat pomoc´ı LBER, takˇze data neproud´ı v ˇcistˇe textov´e podobˇe jako napˇr´ıklad pˇri komunikaci protokolem HTTP a nelze je snadno ˇc´ıst napˇr. pomoc´ı telnetu. Pro zpracov´ an´ı pˇrenesen´ ych dat je nutn´e opˇet vyuˇz´ıt knihovnu LBER. Vˇetˇsina analyz´ator˚ u s´ıt’ov´eho provozu vˇsak nem´a s protokolem LDAP a k´odov´an´ım LBER probl´emy a nen´ı probl´em napˇr. pomoc´ı obl´ıben´eho programu Ethereal1 pˇreˇc´ıst komunikaci mezi serverem a klientem. Pro jej´ı ochranu se proto vyuˇz´ıv´ a zabezpeˇcen´ı popsan´eho v kapitole 3.5 Bezpeˇcnostn´ı model na stranˇe 35. V pˇr´ıpadˇe nˇekter´eho serverov´eho software je moˇzn´e vyuˇz´ıt modern´ıho form´atu DSMLv2 (viz. kapitola 3.6 LDIF, strana 39.) zaloˇzen´eho na jazyce XML.
3.2
Informaˇ cn´ı model
Informaˇcn´ı model definuje datov´e typy a jednotky informac´ı, kter´e lze v adres´aˇri ukl´adat. V adres´aˇri m˚ uˇze b´ yt uloˇzeno nˇekolik tis´ıc aˇz milion˚ u podrobn´ ych z´aznam˚ u o lidech, poˇc´ıtaˇc´ıch, tisk´arn´ach, pˇr´ıstroj´ıch, m´ıstnostech apod. Z´aznamy jsou uloˇzeny v pˇrehledn´e stromov´e struktuˇre, kter´a vyjadˇruje, jak´ ym stylem jsou z´aznamy v adres´aˇri organizov´ any. Jejich organizac´ı se zab´ yv´a jmenn´ y model (viz. kapitola 3.3 Jmenn´ y model, strana 22).
3.2.1
Identifik´ atory objekt˚ u
Identifik´atory objekt˚ u nejsou souˇc´ast´ı LDAP modelu, je ale d˚ uleˇzit´e se o nich zm´ınit. Slouˇz´ı k pˇresn´e identifikaci prvku, kter´ y je jednoznaˇcnˇe urˇcen sv´ ym glob´aln´ım OID (Object Identifier ). Maj´ı hierarchickou strukturu a jsou unik´atn´ı na cel´em svˇetˇe, nelze je tedy zvolit podle libosti. Tuto unik´atnost zaruˇcuje centr´ aln´ı autorita, kter´a pˇridˇeluje ˇc´ısla (sufixy) pro sestaven´ı 1
Ethereal – http://www.ethereal.com
- 16 -
Karel Ben´ ak
3.2 Informaˇ cn´ı model
ˇ ast typick´eho adres´aˇre Obr. 3.4: C´
OID. O jejich pˇridˇelov´an´ı soukrom´ ym organizac´ım se star´a mezin´arodn´ı organizace IANA2 . Jedn´e organizaci je moˇzn´e pˇridˇelit pouze jedno OID, kter´e si mus´ı organizace s ohledem na sv˚ uj rozvoj vhodn´ ym zp˚ usobem rozdˇelit. OID maj´ı tvar 1.3.6.1.4.1.XXX, kde XXX je zm´ınˇen´ y pˇridˇelen´ y suffix reprezentovan´ y cel´ ym ˇc´ıslem. Seznam sufix˚ u jednotliv´ ych organizac´ı je k disˇ ısla za sufixem jsou spravov´ pozici na adrese organizace IANA3 . C´ ana spoleˇcnosti, kter´a si je m˚ uˇze rozdˇelit s ohledem na sv´e intern´ı ˇc´ıseln´ıky. Pokud by napˇr. Skanska CZ z´ıskala sufix 332211, jej´ı OID by mˇ elo tvar 1.3.6.1.4.1.332211 a jeho dalˇs´ı rozdˇelen´ı na jednotliv´e ˇc´ asti by mohlo vypadat napˇr. podle tab. 3.1, strana 16. OID 1.3.6.1.4.1.332211 1.3.6.1.4.1.332211.1 1.3.6.1.4.1.332211.2 1.3.6.1.4.1.332211.2.1 1.3.6.1.4.1.332211.2.1.1 1.3.6.1.4.1.332211.2.2 1.3.6.1.4.1.332211.2.2.1
V´ yznam OID Skanska CZ SNMP elementy LDAP elementy Typy atribut˚ u Vlastn´ı atribut Objektov´e tˇr´ıdy Vlastn´ı objektov´ a tˇr´ıda
Tab. 3.1: Pˇr´ıklad hierarchie OID V´ıce informac´ı o OID se lze dozvˇedˇet napˇr. z [UDLDAPDS], nebo z [Dostalek], kapitola 6.3.
3.2.2
Z´ aznamy
Z´ aznam (entry) je z´akladn´ı jednotkou informac´ı v adres´aˇrov´ ych sluˇzb´ ach. Jedn´a se o soubor informac´ı o objektech, resp. o objektov´ych tˇr´ıd´ ach (objectclass). Kaˇzd´ y z´aznam se snaˇz´ı 2 3
http://www.iana.org http://www.iana.org/assignments/enterprise-numbers
- 17 -
Karel Ben´ ak
3.2 Informaˇ cn´ı model
nˇejak´ ym zp˚ usobem popsat re´aln´ y objekt, napˇr. ˇclovˇeka, poˇc´ıtaˇc apod. a je sloˇzen z jedn´e nebo v´ıce objektov´ ych tˇr´ıd. Objektov´a tˇr´ıda je mnoˇzinou typ˚ u atribut˚ u (Attribute Types) nebo zjednoduˇsenˇe atribut˚ u (Attributes). Ty slouˇz´ı k popisu vlastnost´ı t´eto tˇr´ıdy. Atributy maj´ı jednu nebo v´ıce hodnot (value). Tyto n´avaznosti zachycuje obr. 3.5, strana 17.
Obr. 3.5: Organizace dat Pˇr´ıkladem z´aznamu m˚ uˇze b´ yt obr. 3.6, strana 17., kde jsou pops´any informace, kter´e jsou o dan´e osobˇe uchov´any. Typ atributu (Attribute type) cn: sn: telephoneNumber: mail:
Hodnoty atributu (Attribute values) Karel Ben´ak Ben´ak Karel Ben´ak +420 723 881 194
[email protected] [email protected]
Obr. 3.6: Adres´aˇrov´ y z´aznam Atributy maj´ı urˇcitou syntaxi (syntax ) a sadu pravidel shody (matching rules). Syntaxe (tab. 3.2, strana 18..) specifikuje, v jak´e formˇe mohou b´ yt informace v atributu reprezentov´ any, napˇr´ıklad v datov´em typu JPEG Image lze uloˇzit pouze JPEG obr´azek (foto uˇzivatele). Pˇri n´avrhu nov´ ych atribut˚ u, objektov´ ych tˇr´ıd, pravidel shody nebo datov´ ych typ˚ u je vhodn´e, aby jejich pojmenov´an´ı mˇelo jedineˇcn´ y prefix. LDAP vyˇzaduje jedineˇcn´e n´azvy pro vˇsechny atributy a objektov´e tˇr´ıdy. Prefix se nejˇcastˇeji vol´ı tak, aby obsahoval zkratku organizace kv˚ uli moˇzn´emu konfliktu n´azv˚ u s pˇr´ıpadn´ ymi rozˇsiˇruj´ıc´ımi schematy. Napˇr. myPhoto je ’ nevhodn´ y n´azev, nebot stejnˇe znˇej´ıcich n´azv˚ u m˚ uˇze b´ yt v´ıc. Vhodnˇejˇs´ı je napˇr. pojmenov´ an´ı pˇr´ısluˇsn´eho atributu n´azvem skanskaPhoto,
3.2.3
Syntaxe
Syntaxe atribut˚ u je definov´ana v [RFC 2252]. Ve sv´e podstatˇe definuje datov´ y typ, kter´ y bude atribut pouˇz´ıvat. Vybran´e typy syntaxe jsou v tab. 3.2, strana 18. Pokud je nutn´e omezit d´elku atributu na pˇredem stanoven´ y poˇcet m´ıst, uvede se za OID syntaxe sekvence {poˇcet m´ıst}. - 18 -
Karel Ben´ ak
3.2 Informaˇ cn´ı model
N´ azev binary boolean distinguishedName directoryString IA5String Integer Name and Optional UID Numeric String OID
OID 1.3.6.1.4.1.1466.115.121.1.5 1.3.6.1.4.1.1466.115.121.1.7 1.3.6.1.4.1.1466.115.121.1.12 1.3.6.1.4.1.1466.115.121.1.15 1.3.6.1.4.1.1466.115.121.1.26 1.3.6.1.4.1.1466.115.121.1.27 1.3.6.1.4.1.1466.115.121.1.34 1.3.6.1.4.1.1466.115.121.1.36 1.3.6.1.4.1.1466.115.121.1.38
Popis BER/DER data boolean hodnota DN UTF-8 ˇretˇezec ASCII ˇretˇezec cel´e ˇc´ıslo DN plus UID ˇc´ıseln´ y ˇretˇezec object identifier
Tab. 3.2: Syntaxe vybran´ ych typ˚ u
3.2.4
Pravidla shody
Pravidla shody jsou rozdˇelena na pravidla pro: porovn´ av´ an´ı rovnosti hodnot – podle tˇechto pravidel jsou napˇr´ıklad hodnoty atribut˚ u sn=Nov´ ak a sn=nov´ ak pˇri pouˇ zit´ı pravidla caseIgnoreMatch rovny, zat´ımco pˇri pouˇzit´ı jin´ ych pravidel (caseExactMatch) tomu tak nen´ı. setˇ r´ıdˇ en´ı hodnot – podle tˇechto pravidel se napˇr´ıklad pˇri pouˇzit´ı zm´ınˇen´eho pravidla caseIgnoreMatch hodnoty setˇr´ıd´ı podle lexikografick´ eho poˇrad´ı. Pˇri pouˇzit´ı pravidla integerMatch budou hodnoty setˇr´ıdˇ eny podle ˇc´ıseln´e hodnoty. N´ azev objectIdentifierMatch distinguishedNameMatch caseIgnoreMatch caseIgnoreOrderingMatch caseIgnoreSubstringsMatch caseExactMatch caseExactOrderingMatch caseExactSubstringsMatch booleanMatch
OID 2.5.13.0 2.5.13.1 2.5.13.2 2.5.13.3 2.5.13.4 2.5.13.5 2.5.13.6 2.5.13.7 2.5.13.13
Typ shoda shoda shoda uspoˇr´ ad´ an´ı podˇretˇezec shoda uspoˇr´ ad´ an´ı podˇretˇezec shoda
Popis OID DN velikost a mezery nerozliˇsuje velikost a mezery nerozliˇsuje velikost a mezery nerozliˇsuje velikost rozliˇsuje, mezery ne velikost rozliˇsuje, mezery ne velikost rozliˇsuje, mezery ne boolean
Tab. 3.3: Vybran´a pravidla shody Jak je z tab. 3.3, strana 18. a pˇredevˇs´ım z OID jednotliv´ ych pravidel vidˇet, jsou tato pravidla shody vˇetˇsinou pˇrevzata z protokolu X.500. Podle [RFC 2252], ˇc´ ast 4.5 si kaˇzd´ y n´avrh´aˇr m˚ uˇze definovat vlastn´ı pravidla.
3.2.5
Atributy
Atributy slouˇz´ı k popisu nˇekter´e z vlastnost´ı objektu. V protokolu LDAPv3 podle [RFC 2252] maj´ı tvar zobrazen´ y na obr. 3.7, strana 19. Jeho pouˇzit´ı je definov´ ano pomoc´ı direktivy USAGE, kter´a pouˇz´ıv´a v´ yˇctov´ y typ AttributeUsage (obr. 3.8, strana 19.). - 19 -
Karel Ben´ ak
3.2 Informaˇ cn´ı model
AttributeTypeDescription = "(" whsp numericoid whsp ; Identifik´ ator Typu atributu [ "NAME" qdescrs ] ; N´ azev pouˇ z´ ıvan´ y typem atributu [ "DESC" qdstring ] ; Popis [ "OBSOLETE" whsp ] [ "SUP" woid ] ; Odvozen´ ı od jin´ eho typu ; atributu [ "EQUALITY" woid ; N´ azev pravidla shody pro shodu [ "ORDERING" woid ; N´ azev pravidla shody pro porovn´ an´ ı [ "SUBSTR" woid ] ; N´ azev pravidla shody pro podˇ retˇ ezec [ "SYNTAX" whsp noidlen whsp ] ; OID syntaxe [ "SINGLE-VALUE" whsp ] ; Standardnˇ e v´ ıcehodnotov´ e [ "COLLECTIVE" whsp ] ; Standardnˇ e not collective [ "NO-USER-MODIFICATION" whsp ]; Standardnˇ e modifikovateln´ e uˇ zivatelem [ "USAGE" whsp AttributeUsage ]; Standardnˇ e userApplications whsp ")" Obr. 3.7: Popis typu atributu
AttributeUsage = "userApplications" / "directoryOperation" / "distributedOperation" / ; DSA-shared "dSAOperation" ; DSA-specific, hodnota z´ avis´ ı na serveru Obr. 3.8: Vyuˇzit´ı atributu
- 20 -
Karel Ben´ ak
3.2 Informaˇ cn´ı model
Atributy lze podle direktivy USAGE rozdˇelit do dvou kategori´ı: uˇ zivatelsk´ e – atributy pouˇz´ıvan´e pro ukl´ad´ an´ı uˇzivatelsk´ ych informac´ı. V takov´em atributu m˚ uˇze b´ yt uloˇzeno napˇr´ıklad jm´eno uˇzivatele (givenName) apod. Mohou b´ yt mˇenˇeny uˇzivatelem, kter´ y k tomu m´a pˇr´ısluˇsn´ a opr´avnˇen´ı. operaˇ cn´ı – atributy, kter´e vyuˇz´ıv´a adres´aˇrov´ y server pro uchov´ an´ı syst´emov´ ych informac´ı, napˇr. data posledn´ı zmˇeny modifyTimeStamp. Takov´ y atribut m´a kaˇzd´ y z´aznam a pokud dojde k jeho zmˇenˇe, server automaticky zmˇen´ı i hodnotu tohoto atributu. Atributy mohou m´ıt jednu (single-valued ) nebo v´ıce (multivalued ) hodnot, resp. mohou b´ yt v objektov´e tˇr´ıdˇe pouze jednou (direktiva SINGLE-VALUE) nebo v´ıcekr´ at. Pˇri vytv´aˇren´ı atribut˚ u je moˇzn´e vyuˇz´ıt principu tzv. supertypu a subtypu. Supertyp je z´akladn´ı typ, ze kter´eho se vych´az´ı pˇri odvozov´ an´ı nov´ ych typ˚ u. Schema z´avislost´ı zobrazuje obr. 3.9, strana 20..
Obr. 3.9: Vztahy mezi supertypem a subtypy
attributeType ( 1.3.6.1.4.1.332211.2.1.12 NAME ’skanskaCard’ DESC ’ID pristupove karty pro pristup do budov Skanska CZ’ EQUALITY integerMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.27{8} SINGLE-VALUE ) Obr. 3.10: Pˇr´ıklad nov´eho atributu skanskaCard
attributeType ( 1.3.6.1.4.1.332211.2.1.13 NAME ’skanskaCardCar’ DESC ’ID pristupove karty do garazi Skanska CZ’ SUP skanskaCard SINGLE-VALUE ) Obr. 3.11: Odvozen´ y atribut skanskaCardCar
3.2.6
Objektov´ e tˇ r´ıdy
Objektov´a tˇr´ıda slouˇz´ı pro popis konkr´etn´ıho objektu, napˇr. ˇclovˇeka, zamˇestnance, uˇzivatele pˇripojen´ı, m´ıstnosti apod. Skl´adaj´ı se z nˇekolika atribut˚ u a jsou vˇetˇsinou odvozeny od nˇekter´e - 21 -
Karel Ben´ ak
3.2 Informaˇ cn´ı model
z nadˇrazen´ ych tˇr´ıd. Hlavn´ı tˇr´ıdou, je abstraktn´ı tˇr´ıda top, od kter´e jsou vˇsechny ostatn´ı tˇr´ıdy odvozeny. Princip dˇediˇcnosti a jeho v´ yznam je na obr. 3.12, strana 21. Pˇri vytv´aˇren´ı nov´e tˇr´ıdy z´ısk´av´a po sv´em pˇredkovi jeho atributy a pˇrid´ av´ a k nˇemu vlastn´ı.
Obr. 3.12: Dˇediˇcnost objektov´ ych tˇr´ıd Tvar objektov´e tˇr´ıdy podle LDAPv3 definovan´e v [RFC 2252] je na obr. 3.12, strana 21.. ObjectClassDescription = "(" whsp numericoid whsp ; Identifikace objektov´ e tˇ r´ ıdy [ "NAME" qdescrs ] [ "DESC" qdstring ] [ "OBSOLETE" whsp ] [ "SUP" oids ] ; Nadˇ razen´ a tˇ r´ ıda [ ( "ABSTRACT" / "STRUCTURAL" / "AUXILIARY" ) whsp ] ; Standardnˇ e structural [ "MUST" oids ] ; Atributy [ "MAY" oids ] ; Atributy whsp ")" Obr. 3.13: Definice objektov´e tˇr´ıdy Objektov´a tˇr´ıda mus´ı m´ıt sv´e jedineˇcn´e OID, jedineˇcn´ y n´azev, popis, pˇredka, druh a seznam atribut˚ u, kter´e mohou b´ yt povinn´e nebo nepovinn´e. Povinn´e atributy (MUST) mus´ı b´ yt vyplnˇeny vˇzdy, jinak adres´aˇrov´ y server odm´ıtne z´aznam uloˇzit nebo modifikovat. Atributy uveden´e v direktivˇe MAY nemusej´ı b´ yt vyplnˇeny. V z´aznamu mus´ı b´ yt minim´alnˇe jedna tˇr´ıda typu STRUCTURAL, nelze jej sloˇzit pouze ze tˇr´ıd typu AUXILIARY. ABSTRACT – Abstraktn´ı tˇr´ıda, od kter´e se budou odvozovat nov´e tˇr´ıdy, nebo tˇr´ıdy slouˇz´ıc´ı pro spr´avu informaˇcn´ıho modelu. Nejˇcastˇeji pouˇz´ıvanou abstraktn´ı tˇr´ıdou je tˇr´ıda top, od kter´e jsou odvozeny dalˇs´ı tˇr´ıdy a tˇr´ıda alias, kter´a slouˇz´ı pro spr´avu alias˚ u (kapitola 3.3.3 Aliasy na stranˇe 29). AUXILIARY – Tˇr´ıda, kter´a je doplˇ nkovou tˇr´ıdou k ostatn´ım tˇr´ıd´ am. Velmi ˇcasto m´a jako sv´eho pˇredka tˇr´ıdu top. Lze ji pˇriˇradit ke kaˇzd´emu typu z´aznamu, v z´aznamu je vˇsak tˇreba pouˇz´ıt minim´alnˇe jednu tˇr´ıdu typu STRUCTURAL. Tyto tˇr´ıdy lze v z´aznamu kombinovat bez ohledu na jejich urˇcen´ı.
- 22 -
Karel Ben´ ak
3.3 Jmenn´ y model
STRUCTURAL – Podobnˇe jako tˇr´ıda AUXILIARY je odvozena od nˇekter´e tˇr´ıdy uveden´e v direktivˇe SUP. Je mnohem v´ıce restriktivn´ı a umoˇ zn ˇuje kombinaci pouze se tˇr´ıdami nadˇrazen´ ymi, kter´e pˇresnˇe vystihuj´ı typ ukl´adan´eho z´aznamu. Typick´ ym pˇr´ıkladem tˇr´ıdy typu STRUCTURAL je tˇr´ıda inetOrgPerson (definovan´ a v [RFC 2798]), odvozen´ a od tˇr´ıdy organizationalPerson. K t´eto tˇr´ıdˇe nen´ı moˇzn´e pˇriˇradit dalˇs´ı tˇr´ıdu typu STRUCTURAL, napˇr. tˇr´ıdu account. Ta je sice potomkem tˇr´ıdy top, ovˇsem nen´ı potomkem tˇr´ıdy person, tud´ıˇz ji nen´ı moˇzn´e slouˇcit s tˇr´ıdami, kter´e maj´ı tˇr´ıdu person jako sv´eho pˇredka a jsou typu STRUCTURAL. objectclass ( 1.3.6.1.1.1.2.4 NAME ’ipProtocol’ SUP top STRUCTURAL DESC ’Abstraction of an IP protocol’ MUST ( cn $ ipProtocolNumber $ description ) MAY description ) Obr. 3.14: Objektov´ a tˇr´ıda typu STRUCTURAL
objectclass ( 1.3.6.1.1.1.2.0 NAME ’posixAccount’ SUP top AUXILIARY DESC ’Abstraction of an account with POSIX attributes’ MUST ( cn $ uid $ uidNumber $ gidNumber $ homeDirectory ) MAY ( userPassword $ loginShell $ gecos $ description ) ) Obr. 3.15: Objektov´ a tˇr´ıda typu AUXILIARY Pˇr´ıklady z´aznam˚ u jsou uvedeny v kapitole 3.6 LDIF na stranˇe 39.
3.2.7
Sch´ emata
Seznam atribut˚ u a objektov´ ych tˇr´ıd, se kter´ ymi adres´aˇrov´ y server pracuje, je uloˇzen v tzv. schematech. Standardizovan´a schemata jsou vˇetˇsinou souˇc´ ast´ı adres´aˇrov´ ych server˚ u, stejnˇe jako schemata dodan´a v´ yrobcem. Aˇckoliv je doporuˇceno v maxim´aln´ı m´ıˇre vyuˇz´ıvat schemat dod´avan´ ych spolu s adres´aˇrov´ ym serverem, m˚ uˇze vzniknout potˇreba napsat schema vlastn´ı. Pokud tv˚ urci informaˇcn´ıho syst´emu s´ahnou k t´eto variantˇe, mus´ı poˇc´ıtat s t´ım, ˇze nˇekter´e informace budou pro klienty podporuj´ıc´ı standardizovan´ a schemata nedostupn´a, pˇr´ıpadnˇe se budou muset sloˇzitˇe pˇremapovat na standardizovan´e atributy. Podrobnˇejˇs´ı informace o objektov´ ych tˇr´ıd´ ach, atributech, pravidlech syntaxe a pravidel shody jsou v [UDLDAPDS, RFC 2252].
3.3
Jmenn´ y model
Jmenn´y model LDAP (LDAP Naming Model) definuje, jak´ ym zp˚ usobem lze organizovat a odkazovat se na data uloˇzen´a v adres´aˇri. Umoˇzn ˇuje tak flexibiln´ı pˇr´ıstup a jednoduˇsˇs´ı spr´avu pomoc´ı logick´e stromov´e struktury. Typick´ y tvar adres´aˇrov´eho stromu, tzv. DIT (Directory Information Tree), je na obr. 3.16, strana 23. Jedn´a se o stromov´ y graf, kter´ y m´a sv´e uzly a listy. Listy jsou vlastn´ı z´aznamy o nˇejak´em re´aln´em objektu, uzly pak definuj´ı vˇetve stromu. Uzly jsou nutnou souˇc´ast´ı adres´aˇrov´eho stromu, do kter´ ych se ukl´adaj´ı jednotliv´e listy (z´aznamy).
- 23 -
Karel Ben´ ak
3.3 Jmenn´ y model
ˇ ast typick´eho adres´aˇrov´eho stromu Obr. 3.16: C´
Adres´aˇrov´ y strom je podobn´ y hierarchick´emu souborov´emu syst´emu pouˇz´ıvan´eho operaˇcn´ımi syst´emy typu UNIX, ve kter´em se syst´em soubor˚ u skl´ad´ a z adres´aˇr˚ u a soubor˚ u. Kaˇzd´ y adres´aˇr m´a nˇekolik soubor˚ u anebo podadres´aˇr˚ u, jak je vidˇet z obr´azku 3.17.
ˇ ast typick´eho souborov´eho syst´emu UNIX Obr. 3.17: C´ Mezi UNIXov´ ym souborov´ ym syst´emem a adres´aˇrov´ ym stromem LDAP jsou vˇsak tˇri podstatn´e rozd´ıly. Prvn´ı spoˇc´ıv´a v tom, ˇze LDAP server ve skuteˇcnosti nem´a ˇz´ adn´ y re´aln´ y koˇren, zat´ımco koˇren souborov´eho syst´emu je rodiˇcem dalˇs´ıch adres´aˇr˚ u a soubor˚ u. LDAP server m´a sice koˇrenov´ y z´aznam, ten ale pouˇz´ıv´ a pro uloˇzen´ı specifick´ ych konfiguraˇcn´ıch informac´ı o sv´ ych moˇznostech, tzv. rootDSE. Jsou v nˇem uloˇzeny napˇr. informace o pouˇz´ıvan´e verzi protokolu, FQDN 4 serveru, podpoˇre protokol˚ u TLS a SASL apod., nikoliv vˇsak vlastn´ı uˇzivatelsk´a data. Pro nˇe m˚ uˇze m´ıt nˇekolik ”virtu´aln´ıch” koˇren˚ u, zat´ımco souborov´ y syst´em m´a pouze jedin´ y koˇren. Druh´ ym podstatn´ ym rozd´ılem je zp˚ usob ukl´ad´ an´ı informac´ı. Typick´ y LDAP adres´aˇr se z´aznamy a kontejnery ukazuje obr. 3.18, strana 24.. V tomto pˇr´ıpadˇe kontejnery dc=skanska, dc=cz ou=Kub´ ansk´ e~n´ amˇ est´ ı, dc=skanska, dc=cz 4
FQDN – fully qualified domain name, pln´ y dom´enov´ y n´ azev
- 24 -
Karel Ben´ ak
3.3 Jmenn´ y model
ˇ ast typick´eho LDAP adres´aˇre Obr. 3.18: C´
- 25 -
Karel Ben´ ak
3.3 Jmenn´ y model
ou=Tˇ rinec, dc=skanska, dc=cz ou=Lide, ou=Kub´ ansk´ e n´ amˇ est´ ı, dc=skanska, dc=cz ou=Lide, ou=Tˇ rinec, dc=skanska, dc=cz vystupuj´ı z´aroveˇ n jako uzly (kontejnery) i listy (z´aznamy), ve kter´ ych jsou uloˇzeny dalˇs´ı kontejnery a z´aznamy. Naproti tomu v souborov´em syst´emu vystupuje adres´aˇr pouze jako uzel a soubor pouze jako list. Kaˇzd´ y uzel m˚ uˇze obsahovat dalˇs´ı uzly i listy, nem˚ uˇze se vˇsak st´at z´aroveˇ n listem i uzlem dohromady. Tˇret´ım podstatn´ ym rozd´ılem je zp˚ usob, jak´ ym se vyjadˇruje cesta k z´aznamu nebo souboru. Zat´ımco v pˇr´ıpadˇe souborov´eho syst´emu je cesta ke kompil´ atoru cc vyj´ adˇrena od koˇrene syst´emu / pˇres adres´aˇre usr a bin aˇz k cc jako /usr/bin/cc z leva do prava, v LDAP adres´aˇri je cesta od koˇrene k z´aznamu vyjadˇrov´ ana z prava do leva (uid=fa145020, ou=Lid´e, ou=Kub´ ansk´ e n´ amˇ est´ ı, dc=skanska, dc=cz). Zat´ımco vlastn´ı z´ aznam o pracovn´ıkovi s uid=fa145020 je uveden na prvn´ım m´ıstˇe, koˇrenov´ y kontejner je uveden aˇz na m´ıstˇe posledn´ım.
3.3.1
V´ yznam jmenn´ eho modelu
Spr´avnˇe navrˇzen´e jmenn´e prostory jsou velmi d˚ uleˇzit´e a pˇrin´ aˇsej´ı velk´e v´ yhody pˇri spr´avˇe a u ´drˇzbˇe z´aznam˚ u. Reference dat – jmenn´ y model umoˇzn ˇuje pohodln´e odkazov´ an´ı se z jednoho z´aznamu na druh´ y napˇr´ıklad pomoc´ı referenc´ı, alias˚ u, nebo pomoc´ı atribut˚ u, kter´e maj´ı jako sv˚ uj datov´ y typ DN z´azamu, na kter´ y je odkazov´ ano. Organizace dat – data jsou uloˇzena v jednotliv´ ych kontejnerech podle nˇejak´eho specifick´eho znaku. Ten je v dan´em kontejneru jedineˇcn´ y a t´ım je stanovena jedineˇcnost z´aznamu. Rozdˇ elen´ı dat – data lze efektivnˇe rozdˇelit mezi v´ıce poboˇcek a nen´ı nutn´e je drˇzet vˇsechny na jedin´em serveru v centr´ale. O topologii pojedn´av´ a kapitola 3.7 Topologie na stranˇe 42. Replikace dat – pˇri spr´avnˇe navrˇzen´ ych jmenn´ ych prostorech je efektivnˇejˇs´ı z´alohovat pouze ˇc´ast pˇr´ısluˇsn´eho stromu, nikoliv vˇsechny jeho ˇc´ asti Pˇ r´ıstupov´ a pr´ ava – pˇri spr´avnˇe navrˇzen´ ych jmenn´ ych prostorech lze pˇriˇradit pˇr´ıstupov´ a pr´ava v konkr´etn´ı vˇetvi konkr´etn´ımu ˇclovˇeku, aniˇz by mˇel dotyˇcn´ y pr´ava k dat˚ um, kter´a nezbytnˇe nepotˇrebuje. Pˇr´ıkladem m˚ uˇze b´ yt situace, kdy spr´avce Tˇrineck´e poboˇcky Skansky spravuje pouze svou vˇetev ou=Trinec, dc=skanska, dc=cz, zat´ımco ke zbyl´ ym vˇetv´ım m´a pˇr´ıstup pouze pro ˇcten´ı, nikoliv pro modifikaci z´aznam˚ u. Podpora aplikac´ı – aplikace mohou vyuˇz´ıvat pouze ˇc´ ast stromov´e struktury a nemusej´ı zbyteˇcnˇe prohled´avat vˇsechny z´aznamy. Pˇr´ıkladem je seznam pracovn´ık˚ u konkr´etn´ı poboˇcky ou=Pracovnici, ou=Trinec, dc=skanska, dc=cz, kdy klient se pt´a pouze v t´eto vˇetvi, aniˇz by musel prohled´avat i dalˇs´ı vˇetve. Jmenn´ y model poskytuje unik´atn´ı a jedineˇcn´e n´azvy pro kaˇzd´ y z´aznam v adres´aˇri umoˇzn ˇuj´ıc´ı snadn´e a pˇresn´e odkazov´an´ı se. Tuto jedineˇcnou identifikaci z´aznamu v adres´aˇrov´em stromu umoˇzn ˇuje tzv. rozliˇ sovac´ı n´ azev, zkratka DN, (distinguished name), kter´ y je u ´plnou cestou k dan´emu z´aznamu. Pˇr´ıkladem typick´eho DN je jiˇz zmiˇ novan´ y z´aznam o uˇzivateli s uid=fa145020. V cestˇe jsou smˇerem z prava do leva uvedeny jednotliv´e kontejnery oddˇelen´e ˇc´ arkou (mezera - 26 -
Karel Ben´ ak
3.3 Jmenn´ y model
je voliteln´a). Na konci cesty je uveden vlastn´ı z´aznam. N´azev z´aznamu se skl´ad´ a z n´azvu atributu, znaku = a hodnoty atributu. N´asleduj´ıc´ı z´aznamy jsou si rovny: uid=fa145020, ou=Lid´ e, ou=Kub´ ansk´ e n´ amˇ est´ ı, dc=skanska, dc=cz uid=fa145020,ou=Lid´ e,ou=Kub´ ansk´ e n´ amˇ est´ ı,dc=skanska,dc=cz S pojmen rozliˇsovac´ı n´ azev u ´zce souvis´ı pojem relativn´ı rozliˇ sovac´ı n´ azev (relative distinguished name – RDN). RDN je n´azev vlastn´ıho z´aznamu kter´ y mus´ı b´ yt v dan´em kontejneru jedineˇcn´ y. Z DN cn=Jana Nov´akov´a, ou=Lide, ou=Tˇrinec, dc=skanska, dc=cz je RDN cn=Jana Nov´akov´a. V t´eto vˇetvi se jiˇz ˇz´ adn´ y dalˇs´ı z´aznam s t´ımto RDN nesm´ı vyskytovat, ovˇsem v dalˇs´ıch vˇetv´ıch ano.
Obr. 3.19: Z´aznamy se shodn´ ym RDN V nˇekter´ ych pˇr´ıpadech je tˇreba pouˇz´ıt stejnou hodnotu atributu v RDN pro dva nebo v´ıce z´aznam˚ u, napˇr´ıklad pokud je tˇreba v jedn´e vˇetvi drˇzet z´aznamy o dvou Jan´ach Nov´ akov´ ych. V takov´em pˇr´ıpadˇe se pouˇz´ıv´a tzv. v´ıcehodnotov´e RDN (multivalued RDN ). V RDN je pouˇz´ıto v´ıce hodnot atribut˚ u oddˇelen´ ych znakem +. Tvar RDN pak vypad´a napˇr. n´asledovnˇe: cn=Jana Nov´ akov´ a +
[email protected]
Ve v´ıcehodnotov´em RDN nez´aleˇz´ı na poˇrad´ı, proto si jsou n´asleduj´ıc´ı DN rovny: cn=Jana Nov´ akov´ a +
[email protected], ou=Lid´ e, ou=Kub´ ansk´ e n´ amˇ est´ ı, dc=skanska, dc=cz
[email protected] + cn=Jana Nov´ akov´ a, ou=Lid´ e, ou=Kub´ ansk´ e n´ amˇ est´ ı, dc=skanska, dc=cz Bohuˇzel, m´alo aplikac´ı um´ı pracovat s v´ıcehodnotov´ ymi RDN, proto se doporuˇcuje volit n´azev RDN tak, aby byla zajiˇstˇena jeho unik´atnost v r´amci dan´eho kontejneru pomoc´ı jedin´eho n´azvu v RDN. V pˇr´ıpadˇe nutnosti pouˇzit´ı speci´aln´ıch znak˚ u v DN, jak´ ym je pˇredevˇs´ım znak ˇc´ arky slouˇz´ıc´ı standardnˇe pro oddˇelen´ı jednotliv´ ych z´aznam˚ u, je nutn´e pouˇz´ıt tzv. u ´nikov´ych nebo-li escape sekvenc´ı, kter´e jsou uvozeny obr´acen´ ym lom´ıtkem \, tzv. backslash. Pˇr´ıkladem by mohl b´ yt z´aznam o=Skanska CZ, a.s. V tom pˇr´ıpadˇe by DN z´aznamu vypadalo: o=Skanska CZ\, a.s., c=CZ
- 27 -
Karel Ben´ ak
3.3 Jmenn´ y model
Obr. 3.20: Podporovan´e jmenn´e prostory
3.3.2
Struktura jmenn´ ych prostor˚ u
LDAP podporuje stromov´e struktury podle obr´azku obr. 3.20, strana 27., naopak nˇekter´e tvary (obr. 3.21, strana 27.) nejsou podporovan´e a odporuj´ı stromov´e struktuˇre.
Obr. 3.21: Nepodporovan´e jmenn´e prostory Koˇren jmenn´ ych prostor˚ u se naz´ yv´ a sufix (suffix ), nˇekdy t´eˇz prefix. Model jmenn´ ych prostor˚ u LDAP je zdˇedˇen z modelu jmenn´ ych prostor˚ u standardu X.500. Ten zaˇc´ın´ a vrcholov´ ym prvkem C (Country), ve kter´em je uvedena ISO zkratka zemˇe. Pak m˚ uˇze n´asledovat prvek S pro uveden´ı n´azvu st´atu (standard X.500 vych´ az´ı z norem USA) a po nˇem n´asleduje z´aznam organizace O. Pˇr´ıklad adres´aˇrov´eho stromu podle normy X.500 je na obr. 3.22, strana 27. a DN z´aznamu o Janˇe Nov´akov´e by vypadalo: cn=Jana Nov´akov´a, ou=Lide, o= Skanska CZ, c=cz
Obr. 3.22: Jmenn´e prostory podle normy X500
- 28 -
Karel Ben´ ak
3.3 Jmenn´ y model
Na rozd´ıl od X.500 nen´ı model LDAP tak restriktivn´ı jako jeho pˇredch˚ udce a umoˇzn ˇuje flexibilnˇejˇs´ı n´avrh sufixu, kter´ y v´ıce odpov´ıd´ a potˇreb´ am organizace pro kterou je navrhov´ an. Je moˇzn´e drˇzet se podle normy X.500, ovˇsem doporuˇcuje se sp´ıˇs pouˇz´ıt v sufixu dom´enov´e jm´eno podle [RFC 2247]. Sufix spoleˇcnosti Skanska CZ pak vypad´a dc=skanska, dc=cz, v´ıce pˇr´ıklad˚ u n´avrh˚ u sufix˚ u je na obr. 3.23, strana 28. V DN z´aznam˚ u je moˇzn´e pouˇz´ıt i diakritick´e
Obr. 3.23: Pˇr´ıklady sufix˚ u v LDAP znaky, ovˇsem pak je nutn´e uv´est DN v k´odov´ an´ı UTF-8 podle [RFC 2253]. Dalˇs´ı dˇelen´ı adres´aˇrov´eho stromu na jednotliv´e vˇetve z´aleˇz´ı na podrobnˇejˇs´ı anal´ yze, kdy je tˇreba vz´ıt v u ´vahu potˇreby spoleˇcnosti, jej´ı s´ıt’ovou topologii, potˇrebu replikac´ı a celou ˇradu dalˇs´ıch podm´ınek. V tomto pˇr´ıpadˇe se lze setkat s pojmem kontext (context), coˇz je ve sv´e podstatˇe cesta od sufixu aˇz k RDN z´aznamu. DN se ve sv´e podstatˇe skl´ad´ a z RDN, kontextu a sufixu. Pˇr´ıkladem je napˇr. DN z´aznamu uid=ja131515, ou=Lide, ou=Trinec, dc=skanska, dc=cz, kdy RDN z´ aznamu je uid=ja131515, ou=Lide, kontext je ou=Lide, ou=Trinec a koneˇcnˇe hodnota sufixu dc=skanska, dc=cz. Pˇr´ıklady jmenn´ ych prostor˚ u jsou na obr. 3.24, strana 28., obr. 3.25, strana 28. a obr. 3.26, strana 29.
Obr. 3.24: Jmenn´e prostory podle kontinent˚ u
Obr. 3.25: Jmenn´e prostory podle oddˇelen´ı
- 29 -
Karel Ben´ ak
3.3 Jmenn´ y model
Obr. 3.26: Jmenn´e prostory podle souˇc´ ast´ı
3.3.3
Aliasy
Z´aznamy Alias jsou z´aznamy v adres´aˇrov´em stromu, kter´e funguj´ı jako odkazy na uloˇzen´ y z´aznam. Jsou velmi podobn´e klasick´ ym symbolick´ ym link˚ um ze souborov´eho syst´emu typu UNIX nebo z´astupc˚ um ve Windows. Pomoc´ı aliasu lze dos´ahnout um´ıstˇen´ı jednoho z´aznamu do v´ıce vˇetv´ı, napˇr. pokud jeden pracovn´ık pracuje pro dvˇe oddˇelen´ı. Pˇri pouˇzit´ı SQL by bylo nutn´e pouˇz´ıt napˇr. speci´aln´ı tabulku, kter´a by postihovala relaci m:n mezi tabulkou pracovn´ık˚ u a tabulkou oddˇelen´ı. V adres´aˇrov´e struktuˇre je naproti tomu nutn´e bud’ duplikovat z´aznam, coˇz je nevyhovuj´ıc´ı kv˚ uli redundanci dat, nebo se zde nab´ız´ı moˇznost pouˇzit´ı alias˚ u, kdy hlavn´ı z´aznam je uloˇzen v jedn´e vˇetvi stromu a z druh´e vˇetve je na nˇej vytvoˇren´ y odkaz.
Obr. 3.27: Aliasy v adres´aˇrov´em stromu Aliasy poruˇsuj´ı pˇr´ısnˇe hierarchickou strukturu adres´aˇrov´eho stromu, ovˇsem bez jejich pouˇzit´ı nelze postihnout zm´ınˇen´e vazby m:n. Pro vytvoˇren´ı aliasu je tˇreba vytvoˇrit z´aznam z objektov´e tˇr´ıdy alias a jako atribut pouˇz´ıt aliasObjectName, ve kter´em se uvede DN z´aznamu, na kter´ y se alias odkazuje.
Obr. 3.28: Aliasy mezi adres´aˇrov´ ymi servery
- 30 -
Karel Ben´ ak
3.4 Funkˇ cn´ı model
Aliasy lze pouˇz´ıt i pro odkazy na z´aznamy uloˇzen´e na jin´ ych serverech. Bohuˇzel, jejich pouˇzit´ı je v tomto ohledu velmi pomal´e a neefektivn´ı, proto se doporuˇcuje pouˇz´ıt m´ısto nich mechanismu referenc´ı, kter´e jsou pops´any v [UDLDAPDS].
3.4
Funkˇ cn´ı model
Funkˇcn´ı model LDAP obsahuje tˇri kategorie operac´ı, kter´e byly ve struˇcnosti zm´ınˇeny v kapitole 3.1.1.
3.4.1
Dotazovac´ı operace LDAP
Dotazovac´ı operace search slouˇz´ı pro vyhled´av´ an´ı z´aznam˚ u v adres´aˇri a operace compare pro testov´an´ı, zda z´aznamy obsahuj´ı atributy s urˇcit´ ymi hodnotami. Operace search slouˇz´ı pro prohled´av´an´ı adres´aˇrov´eho stromu a jako sv˚ uj v´ ysledek vrac´ı jednotliv´e z´aznamy. Pˇri jejich prohled´av´an´ı je moˇzn´e z´ıskat u ´pln´e z´aznamy nebo pouze hodnoty nˇekter´ ych atribut˚ u. V´ ysledek prohled´av´an´ı rovnˇeˇz z´aleˇz´ı na pˇr´ıstupov´ ych pr´avech, kdy napˇr´ıklad uˇzivatelsk´e heslo uloˇzen´e v atributu userPassword je pˇr´ıstupn´e5 pouze jeho vlastn´ıkovi nebo spr´avci cel´eho DIT. Operace search m´a 8 vstupn´ıch parametr˚ u: V´ ychoz´ı bod hled´ an´ı (base object) – V doslovn´em pˇrekladu z´ akladn´ı objekt (v tomto kontextu jsou pojmy objekt a z´aznam ekvivalentn´ı). Urˇcuje uzel stromu pomoc´ı jeho DN, od kter´eho se m´a zaˇc´ıt s prohled´av´ an´ım z´aznam˚ u. Tento parametr je v´ yhodn´e pouˇz´ıt zejm´ena pro optimalizaci vyhled´av´ an´ı z´aznam˚ u, pˇredpokladem je ovˇsem znalost m´ısta, kde je tˇreba hledat. Pˇr´ıkladem m˚ uˇze b´ yt obr. 3.29, ve kter´em se m´ısto prohled´av´an´ı cel´eho adres´aˇrov´eho stromu prohled´av´ a pouze vˇetev od uzlu ou=Clenove, dc=sin, dc=cvut, dc=cz. ldapsearch -b "ou=Clenove,dc=sin,dc=cvut,dc=cz" Obr. 3.29: Vyhled´an´ı v konkr´etn´ı vˇetvi Oblast prohled´ av´ an´ı (search scope) – Tento parametr urˇcuje, do jak´e hloubky se m´a pˇri prohled´av´an´ı adres´aˇre j´ıt. K dispozici jsou tˇri parametry: base, onelevel a sub. Na obr. 3.30 jsou vidˇet oblasti prohled´av´ an´ı pˇri pouˇzit´ı pˇr´ısluˇsn´ ych parametr˚ u. base – pˇri pouˇzit´ı tohoto parametru vrac´ı operace search pouze z´aznam v´ ychoz´ıho bodu hled´an´ı onelevel – pˇri pouˇzit´ı tohoto parametru vrac´ı operace search vˇsechny z´aznamy prvn´ı u ´rovnˇe od v´ ychoz´ıho bodu hled´an´ı sub – pˇri pouˇzit´ı tohoto parametru vrac´ı operace search vˇsechny z´aznamy od v´ ychoz´ıho bodu hled´an´ı (vˇcetnˇe) 5ˇ
Citeln´e je pouze v pˇr´ıpadˇe, ˇze je uloˇzeno ve form´ atu ˇcist´eho textu
- 31 -
Karel Ben´ ak
3.4 Funkˇ cn´ı model
search base = "ou=People, dc=sin, dc=cvut, dc=cz"
search scope=base
search scope=onelevel
search scope=sub
Obr. 3.30: Prohled´av´ an´ı adres´aˇrov´eho stromu ldapsearch -b "ou=Clenove,dc=sin,dc=cvut,dc=cz" -s onelevel Obr. 3.31: Vyhled´av´ an´ı v konkr´etn´ı vˇetvi do prvn´ı u ´rovnˇe Dereference z´ astupc˚ u (alias dereferencing options) – Tento tˇret´ı parametr urˇcuje, jak´ ym zp˚ usobem se bude pˇri prohled´av´ an´ı nakl´adat s aliasy na jin´e objekty. neverDerefAliases derefInSearching derefFindingBaseObject derefAlways Limit poˇ ctu navr´ acen´ ych z´ aznam˚ u (size limit) – Ud´av´ a maxim´aln´ı poˇcet z´aznam˚ u, kter´e je klient ochoten akceptovat. Standardnˇe b´ yv´ a nastaveno cca 100 z´aznam˚ u. Pˇri pˇrekroˇcen´ı limitu je vr´acen n´avratov´ y k´od LDAP SIZELIMIT EXCEEDED, kter´a informuje o jeho pˇrekroˇcen´ı a kter´ y mus´ı pˇr´ısluˇsn´ a aplikace nˇejak´ ym zp˚ usobem zpracovat. Limit nastaven´ y na hodnotu 0 informuje, ˇze nen´ı ˇza´dn´ y limit nastaven a server m˚ uˇze zaslat veˇsker´e informace, kter´e nalezl. Toto lze ovˇsem nastavit i na stranˇe serveru a neomezen´ y poˇcet nalezen´ ych z´aznam˚ u lze povolit jen privilegovan´ ym uˇzivatel˚ um. ˇ Casov´ y limit (time limit) – Nastavuje hodnoty pro ˇcasov´ y limit v sekund´ach, po kter´ y je klient ochoten pˇrij´ımat od LDAP serveru z´aznamy. Pˇri pˇrekroˇcen´ı tohoto limitu je navr´acen n´avratov´ y k´od LDAP TIMELIMIT EXCEEDED. Pouze atributy (attributes-only ) – attrsOnly je logick´ y parametr (boolean), kter´ y ud´av´ a, m´aj´ı-li se vracet ve v´ ysledku z´aznamu hodnoty atribut˚ u. Pˇri nastaven´ı atributu na hodnotu true se vrac´ı pouze seznam atribut˚ u, kter´e jsou v z´aznamu pouˇzity, pˇri nastaven´ı na hodnotu false se vr´at´ı atributy i jejich hodnoty. Vyhled´ avac´ı filtry (search filter ) – Slouˇz´ı pro vyj´adˇren´ı hledan´ ych v´ yraz˚ u v adres´aˇrov´em stromu. Filtry jsou specifikov´any v [RFC 2254] a jejich pˇrehled ud´av´ a tab. 3.4, strana 32. - 32 -
Karel Ben´ ak
Typ filtru Shoda (Equality) Podˇretˇezec (Substring)
3.4 Funkˇ cn´ı model
Form´ at (atribut= hodnota)
Pˇ r´ıklad
(atribut= [prvn´ ı] *nˇ ejak´ y* [koncov´ y])
(sn=*ov´ a*) (sn=Nov´ a*)
Pˇribliˇznˇe (Approximate)
(atribut~= hodnota)
cn~=tatar
Vˇetˇs´ı nebo shodn´e Menˇs´ı nebo shodn´e Pˇr´ıtomnost (Presence) AND
(atribut>=
(floor>=9)
OR NOT
(sn=Nov´ ak)
(sn=*´ aˇ cek) (sn=N*v*k)
hodnota) (atribut<=
(floor<9)
hodnota) (atribut=*)
(sn=*)
(&(filtr1) (filtr2)...) (|(filtr1) (filtr2)...) (!(filtr))
(&(sn=Nov´ ak) (givenName=Jiˇ r´ ı)) (|(givenName=Jiˇ r´ ı) (givenName=Josef))
(!(mail=*))
Odpov´ıd´ a Pˇr´ıjmen´ı pˇresnˇe odpov´ıd´ a Nov´ak Pˇr´ıjmen´ı obsahuje ”ov´a” Pˇr´ıjmen´ı zaˇc´ın´ a na ”Nov´a” Pˇr´ıjmen´ı konˇc´ı na ”´aˇcek” Pˇr´ıjmen´ı zaˇc´ın´ a na ”N”, obsahuje ”v” a konˇc´ı na ”k” N´ azev poˇc´ıtaˇce odpov´ıd´ a n´ azvu tatar, ale m˚ uˇze odpov´ıdat i n´azvu tartar Lid´e, kteˇr´ı bydl´ı na dev´at´em nebo vyˇsˇs´ım patˇre Lid´e, kteˇr´ı bydl´ı pod dev´ at´ ym patrem Vˇsechna pˇr´ıjmen´ı
Vˇsechny z´aznamy mimo atributu mail
Tab. 3.4: Vyhled´avac´ı filtry LDAP
- 33 -
Karel Ben´ ak
3.4 Funkˇ cn´ı model
Jednotliv´e filtry (tab. 3.4, strana 32.) lze mezi sebou vhodnˇe kombinovat, jak je vidˇet napˇr. na obr. 3.32, strana 32., a t´ım pokl´adat fundovanˇejˇs´ı dotazy. $ ldapsearch (&(|(givenName=Josef)(givenName=Jiˇ r´ ı))(sn=Nov´ ak)) Obr. 3.32: Kombinace vyhled´avac´ıch filtr˚ u V´ ysledkem tohoto dotazu jsou z´aznamy vˇsech Josef˚ u nebo Jiˇr´ı Nov´ ak˚ u, kter´e operace search v adres´ aˇri nalezla. Bohuˇzel nen´ı moˇzn´e kl´ast komplikovan´e dotazy, kter´e by prohled´avaly a spojovaly jednotliv´e z´aznamy dohromady, pˇr´ıpadnˇe prov´ adˇely nad tˇemito daty nˇekter´e operace (SUM, AVG apod.), jako je tomu v pˇr´ıpadˇe jazyka SQL. Jako atribut˚ u pro vyhled´av´an´ı lze pouˇz´ıt nejen atributy obsaˇzen´e v z´aznamu, ale i speci´aln´ı atributy (rootDSE), pomoc´ı kter´ ych pˇred´ av´ a LDAP server informace napˇr. o podporovan´ ych autentizaˇcn´ıch mechanismech apod. Seznam atribut˚ u pro navr´ acen´ı – V tomto posledn´ım parametru lze vyjmenovat atributy, kter´e jsou poˇzadov´any. Napˇr. pˇri vytv´aˇren´ı statick´ ych arp z´ aznam˚ u jsou d˚ uleˇzit´e pouze u ´daje o IP adrese (atribut ipHostNumber) a HW adrese s´ıt’ov´e karty (atribut macAddress). ldapsearch -b "ou=Pocitace,dc=sin,dc=cvut,dc=cz" \ > ipHostNumber macAddress Obr. 3.33: V´ ypis konkr´etn´ıch atribut˚ u
Operace compare slouˇz´ı pro testov´an´ı hodnoty atributu s hodnotami uloˇzen´ ymi v z´aznamu. Jako vstupn´ı parametry je pouˇzito DN z´aznamu na kter´em se hodnoty atribut˚ u testuj´ı a seznam atribut˚ u 6 a jejich hodnot . Funkce pak vrac´ı v pˇr´ıpadˇe u ´spˇechu hodnotu TRUE, v pˇr´ıpadˇe ne´ uspˇechu hodnotu FALSE. Pˇr´ıkladem pouˇzit´ı m˚ uˇze b´ yt napˇr. porovn´ an´ı otisku digit´aln´ıho certifik´atu s hodnotou uvedenou v adres´aˇrov´em serveru, nebo jednoduch´ y pˇr´ıklad na obr. 3.34, strana 33. ldapcompare "employeeNumber=88592,ou=Clenove,dc=sin,dc=cvut,dc=cz" \ > givenName:Karel TRUE Obr. 3.34: Operace compare Pˇr´ıkaz compare je v protokolu LDAP pouˇz´ıv´ an vˇetˇsinou z d˚ uvodu vazby na protokol X.500, ale pˇresto m´a sv´e opodstatnˇen´ı a nelze jej plnˇe nahradit operac´ı search. Pˇr´ıkaz search vr´at´ı vˇsechny nalezen´e atributy a v pˇr´ıpadˇe hled´an´ı jednoho jedin´eho atributu je tˇreba pˇren´est nˇekolik byt˚ u dat, ve kter´ ych bude obsaˇzeno DN hledan´eho z´aznamu, seznam atribut˚ u a jejich 6
Vyj´ adˇren´e ve form´ atu prost´eho textu nebo zaˇsifrovan´e pomoc´ı base64
- 34 -
Karel Ben´ ak
3.4 Funkˇ cn´ı model
hodnot. Pˇr´ıkaz compare pˇrenese jako sv˚ uj v´ ysledek pouze logickou hodnotu true nebo false n´avratov´eho k´odu v´ ysledku operace.
3.4.2
Aktualizaˇ cn´ı operace LDAP
LDAP m´a ˇctyˇri aktualizaˇcn´ı operace: add (pˇrid´ an´ı), delete (smaz´an´ı), rename (zmˇena DN) a modify (zmˇena u ´daj˚ u). Tyto operace se doporuˇcuje prov´ adˇet pomoc´ı LDIF soubor˚ u (kapitola 3.6, strana 39) pˇr´ıpadnˇe vhodn´eho editoru. Prov´ adˇen´ı zmˇen pomoci program˚ u ldapadd, ldapdelete, ldapmodify a ldapmodrdn s pˇr´ım´ ym z´apisem atribut˚ u, jejich hodnot a poˇzadovan´ ych zmˇen se nedoporuˇcuje. LDIF soubor je moˇzn´e si po sobˇe nˇekolikr´ at zkontrolovat, neˇz se provede nˇejak´a zmˇena, pˇr´ıpadnˇe lze vystopovat, jak´a zmˇena mˇela b´ yt provedena. Pˇri pˇr´ım´em pouˇzit´ı je vysok´a pravdˇepodobnost, ˇze se nepodaˇr´ı tuto zmˇenu dohledat. Operace add pˇrid´a z´aznam do adres´aˇrov´eho stromu. M´a dva parametry: DN z´aznamu a mnoˇzinu atribut˚ u a jejich hodnot. Operace pˇrid´an´ı se povede pouze za pˇredpokladu splnˇen´ı n´asleduj´ıc´ıch pˇredpoklad˚ u: • Rodiˇc z´aznamu mus´ı jiˇz v adres´aˇrov´em stromu existovat • V t´eto ˇc´asti adres´aˇre nesm´ı jiˇz stejn´ y z´aznam existovat • Z´aznam mus´ı odpov´ıdat a splˇ novat poˇzadavky sch´emat, ze kter´ ych se skl´ad´ a • Pˇr´ıstupov´a pr´ava mus´ı tuto operaci umoˇznit V pˇr´ıpadˇe splnˇen´ı vˇsech tˇechto poˇzadavk˚ u bude nov´ y z´aznam do DIT pˇrid´ an. Operace delete smaˇze z´aznam z adres´aˇre. M´a jedin´ y parametr, DN z´aznamu kter´ y se m´a smazat. Operace smaz´an´ı se povede pouze v pˇr´ıpadˇe, ˇze jsou splnˇeny n´asleduj´ıc´ı pˇredpoklady: • Z´aznam pro smaz´an´ı mus´ı existovat • Z´aznam nesm´ı m´ıt ˇz´adn´eho potomka, ty musej´ı b´ yt smaz´any pˇred smaz´an´ım vlastn´ıho z´aznamu • Pˇr´ıstupov´a pr´ava mus´ı tuto operaci umoˇznit V pˇr´ıpadˇe splnˇen´ı vˇsech tˇechto poˇzadavk˚ u bude z´aznam z DIT smaz´an. Operace rename slouˇz´ı k pˇrejmenov´an´ı RDN a pˇresunu z´aznamu mezi vˇetvemi adres´aˇrov´eho stromu. Operace pˇrejmenov´an´ı se povede pouze v pˇr´ıpadˇe, ˇze jsou splnˇeny n´asleduj´ıc´ı pˇredpoklady: • Z´aznam pro smaz´an´ı mus´ı existovat • Nov´e DN z´aznamu nesm´ı b´ yt shodn´e s jiˇz existuj´ıc´ım DN jin´eho z´aznamu • Pˇr´ıstupov´a pr´ava mus´ı tuto operaci umoˇznit - 35 -
Karel Ben´ ak
3.5 Bezpeˇ cnostn´ı model
Operace modify slouˇz´ı ke zmˇenˇe hodnot atribut˚ u v z´aznamech. Operace modifikace se povede pouze v pˇr´ıpadˇe, ˇze jsou splnˇeny n´asleduj´ıc´ı pˇredpoklady: • Z´aznam pro modifikaci mus´ı existovat • Vˇsechny modifikace atribut˚ u mus´ı skonˇcit u ´spˇechem • Modifikace mus´ı splˇ novat poˇzadavky, kter´e na nˇe schemata kladou (povinn´e atributy, spr´avn´e datov´e typy apod.) • Pˇr´ıstupov´a pr´ava mus´ı tuto operaci umoˇznit
3.4.3
Autentizaˇ cn´ı a ˇ r´ıd´ıc´ı operace
LDAP m´a dvˇe autentizaˇcn´ı operace (bind a unbind) a jednu ˇr´ıd´ıc´ı operaci (abandon). Operace bind Slouˇz´ı pro ovˇeˇren´ı identity uˇzivatele (autentizace), kter´ y k adres´aˇrov´e sluˇzbˇe pˇristupuje. Po proveden´ı autentizace se provede autorizace a uˇzivateli je dovoleno pracovat s daty v z´avislosti na jeho pˇr´ıstupov´ ych pr´avech. V´ıce o autentizaci v kapitole 3.5.1 Autentizace, strana 36. Operace unbind oznamuje serveru, ˇze klient s n´ım hodl´a ukonˇcit komunikaci. Operace abandon adres´aˇrov´emu serveru ozn´am´ı, ˇze klient chce ukonˇcit komunikaci. Vyuˇzije se napˇr. v situaci, kdy server vyhled´av´a velk´e mnoˇzstv´ı z´aznam˚ u v rozs´ahl´em stromu a uˇzivatel chce toto vyhled´av´an´ı n´ahle pˇreruˇsit. Jako vstupn´ı parametr pouˇz´ıv´ a ˇc´ıseln´ y identifik´ ator operace, kterou m´a LDAP server pˇreruˇsit.
3.5
Bezpeˇ cnostn´ı model
Bezpeˇcnostn´ı model zajiˇst’uje zabezpeˇcen´ı pˇr´ıstupu k z´aznam˚ um uloˇzen´ ych v adres´aˇrov´em serveru podle urˇcit´ ych, pˇredem stanoven´ ych pravidel pˇred neˇz´ adouc´ımi osobami. Skl´ad´ a se ze tˇr´ı ˇc´ast´ı: Autentizace Pˇ r´ıstupov´ a pr´ ava TLS/SSL
- 36 -
Karel Ben´ ak
3.5.1
3.5 Bezpeˇ cnostn´ı model
Autentizace
Autentizace slouˇz´ı k ovˇeˇren´ı identity uˇzivatele. Server tak m´a moˇznost pomoc´ı nˇekter´eho z autentizaˇcn´ıch mechanism˚ u ovˇeˇrit, zda osoba, kter´a se vyd´av´ a za konkr´etn´ıho uˇzivatele, splˇ nuje pˇredepsan´e autentizaˇcn´ı podm´ınky. Ve vˇetˇsinˇe pˇr´ıpad˚ u se tak dˇeje na z´akladˇe znalosti pˇrihlaˇsovac´ıho jm´ena a hesla uˇzivatele, digit´aln´ıho certifik´atu nebo u velmi sloˇzit´ ych syst´em˚ u napˇr. podle biometrick´ ych znak˚ u (duhovka oka, otisk prstu apod). Autentizace m˚ uˇze b´ yt bud’ jednocestn´a, nebo dvojcestn´a. Pˇri jednocestn´e autentizaci klient zas´ıl´a heslo adres´aˇrov´emu serveru pˇri tzv. bind operaci, nebo kdyˇz adres´aˇrov´ y server zas´ıl´a sv˚ uj certifik´at klientu bˇehem navazov´ ani chr´ anˇen´eho spojen´ı a t´ım se ovˇeˇruje pˇr´ımo u adres´aˇrov´eho serveru pomoc´ı sv´eho X.509 certifik´atu. Pˇr´ıkladem dvojcestn´e autentizace je situace, kdy si adres´aˇrov´ y klient a server vymˇen ˇuj´ı bˇehem vyjedn´av´ an´ı TSL spojen´ı sv´e certifik´aty a teprve pot´e dojde k ovˇeˇren´ı uˇzivatele. Anonymn´ı autentizace pˇri operaci bind se serveru nezas´ılaj´ı ˇz´ adn´e identifikaˇcn´ı u ´daje o uˇzivateli a jeho pˇr´ıstupov´ ych pr´avech. Pˇri pouˇz´ıv´ an´ı anonymn´ı autetizace se doporuˇcuje nastavit pˇr´ıstupov´a pr´ava pouze k vybran´ ym informac´ım. Jednoduch´ a autentizace – po nechr´ anˇen´em spojen´ı protokolem LDAP se pˇri operaci bind zaˇsle identifikace uˇzivatele pomoc´ı jeho DN a hesla. Heslo by mˇelo b´ yt na stranˇe serveru uloˇzeno v zaˇsifrovan´e nebo hashovan´e formˇe pomoc´ı algoritm˚ u crypto7 , MD5 nebo SHA1. ldapsearch -h ldap -b "dc=sin,dc=cvut,dc=cz" \ > -D "uid=uzivatel,ou=lide,dc=sin,dc=cvut,dc=cz" -w mojeheslo Obr. 3.35: Jednoduch´ a autentizace
Jednoduch´ a autentizace pˇ res bezpeˇ cn´ y kan´ al – pouˇzit stejn´ y princip jako u jednoduch´e autentizace uˇzivatele pomoc´ı jm´ena a hesla, ale v tomto pˇr´ıpadˇe je pˇri spojen´ı a zas´ıl´ an´ı dat pouˇzit bezpeˇcn´ y kan´al TLS/SSL. Jedn´a se o dvojcestnou autentizaci, zm´ınˇenou vu ´vodu. Pˇred vlastn´ı autentizac´ı uˇzivatele si klient a server vymˇen´ı informace o sv´ ych X.509 certifik´atech a nav´aˇzou spojen´ı pˇres bezpeˇcn´ y TLS/SSL kan´ al. Po jeho nav´ az´ an´ı pak doch´az´ı k operaci bind, ve kter´e je zasl´ano DN uˇzivatele, kter´ y se autentizuje, a jeho heslo. Proxy autentizace – pˇri tomto druhu autentizace obsaˇzen´em v LDAPv3 je vyuˇzito toho, ˇze jist´ y uˇzivatel m´a moˇznost nahl´ıˇzet na hesla ostatn´ıch uˇzivatel˚ u, a tak m˚ uˇze ovˇeˇrit, zda uˇzivatel, kter´ y se pˇrihlaˇsuje, zn´a skuteˇcnˇe sv´e uˇzivatelsk´e jm´eno a heslo a m´a pˇr´ısluˇsn´ a pr´ava. K serveru se tedy ”binduje” proxy uˇzivatel, kter´ y provede ovˇeˇren´ı uˇzivatele napˇr. pomoc´ı operace compare. PKI autentizace je zaloˇzena na principu digit´aln´ıch PKI certifik´ at˚ u [X.509] (viz. [Dostalek]). Tento druh autentizace ovl´adaj´ı jen nˇekter´e LDAP servery a klienti. Certifik´at mus´ı odpov´ıdat struktuˇre adres´aˇrov´eho stromu a je uloˇzen v atributu userCertificate. Klient si pˇri spojen´ı vybere konkr´etn´ı certifik´at ve sv´e kl´ıˇcence, kter´ ym se chce v˚ uˇci serveru ovˇeˇrit a pˇri jeho pouˇzit´ı je nucen pouˇz´ıt heslo. Server zkontroluje, souhlas´ı-li uˇzivatelsk´ y 7
Nedoporuˇcuje se pouˇz´ıvat
- 37 -
Karel Ben´ ak
3.5 Bezpeˇ cnostn´ı model
certifik´at s certifik´atem uloˇzen´ ym v serveru. Pokud ano, uˇzivatel je ovˇeˇren. Tento zp˚ usob je n´aroˇcn´ y jak pro uˇzivatele, tak pro administr´atora, protoˇze mus´ı sv´e digit´aln´ı certifik´aty st´ale hl´ıdat a v pˇr´ıpadˇe potˇreby aktualizovat. LDAP server m˚ uˇze b´ yt propojen
Obr. 3.36: PKI autentizace
Obr. 3.37: Syst´em PKI s OCSP (On-Line Certificate Status Protocol) serverem, zajiˇst’uj´ıc´ım on-line aktualizace informac´ı o digit´aln´ıch certifik´atech. SASL mechanismus (Simple Authentication and Security Layer ) [RFC 2222] umoˇzn ˇuje pouˇzit´ı sv´ ych modul˚ u (PLAIN, LOGIN, GSSAPI, NTLM, OTP, CRAM-MD5, DIGEST-MD5, SRP, pˇr´ıpadnˇe dalˇs´ı moduly) pro autentizaci uˇzivatele. Autentizaˇcn´ı mechanismy PLAIN a LOGIN neobsahuj´ı ˇz´adn´e bezpeˇcnostn´ı mechanismy, proto je pˇri pˇrihl´ aˇsen´ı k LDAP serveru vhodn´e doplnit pˇrenos jm´ena a hesla vrstvou TLS. Pokud je nutn´e pouˇz´ıt nezabezpeˇcenou variantu pˇrenosu dn uˇzivatele a jeho hesla, doporuˇcuje se pouˇzit´ı mechanismu DIGEST-MD5. Praktick´ ym pˇr´ıkladem pouˇzit´ı SASL a LDAP je napˇr. ovˇeˇren´ı existence uˇzivatele SMTP serveru pro pˇrepos´ıl´an´ı e-mailu uˇzivatel˚ u zdrˇzuj´ıch se mimo vnitˇrn´ı s´ıt’ pomoc´ı mechanismu SMTP-AUTH. - 38 -
Karel Ben´ ak
3.5 Bezpeˇ cnostn´ı model
Obr. 3.38: SASL mechanismus
3.5.2
Pˇ r´ıstupov´ a pr´ ava
Pˇr´ıstupov´ a pr´ava v adres´aˇrov´ ych sluˇzb´ ach mohou b´ yt na rozd´ıl od relaˇcn´ıch datab´az´ı nastavena aˇz do u ´rovnˇe z´aznam˚ u. Bohuˇzel zat´ım neexistuje ofici´aln´ı standard kter´ y by pˇresnˇe definoval model tˇechto pr´av, resp. existuj´ı pouze ve stadiu RFC draft˚ u8 , proto se jejich implementace bude produkt od produktu liˇsit. Ve vˇetˇsinˇe produkt˚ u jsou k dispozici tzv. Access Control Lists, zkratka ACL, kter´e specifikuj´ı, jak´ ym zp˚ usobem je moˇzn´e k z´aznam˚ um a pˇredevˇs´ım atribut˚ um pˇristupovat. Netscape Directory server a jeho n´astupce [JES] pouˇz´ıvaj´ı jako doplnˇek k ACL tzv. Access Control Information, zkratka ACI, kter´e jejich moˇznosti d´ale rozˇsiˇruj´ı na omezen´ı typu: odkud dan´ y dotaz vzeˇsel, jak´ ym protokolem vzeˇsel apod. ACI zaˇc´ın´ a v experiment´ aln´ı podobˇe pouˇz´ıvat i obl´ıben´ y projekt [OpenLDAP] a nejsp´ıˇs se v dohledn´e dobˇe stane souˇc´ ast´ı nˇekter´eho ze standard˚ u RFC.
3.5.3
SSL/TLS
V bezpeˇcnostn´ım modelu se pro ochranu komunikace proti neˇz´ adouc´ımu odposlechu vyuˇz´ıv´ a moˇznosti vrstev TLS (Transport Security Layer ) nebo SSL (Socket Security Layer – starˇs´ı protokol). Standardn´ı protokol LDAP vyuˇz´ıv´ a port 389, zat´ımco protokol LDAPS chr´ anˇen´ y vrstvou SSL vyuˇz´ıv´a port 636. Bezpeˇcnostn´ı model vyuˇz´ıvaj´ıc´ı protokol TLS podle [RFC 2830] m´a vˇsak jeˇstˇe lepˇs´ı moˇznosti pˇredevˇs´ım v tom, ˇze vyuˇz´ıv´ a standardn´ı LDAP port 389 a server s klientem se pˇri navazov´an´ı spojen´ı teprve dohodnou, budou-li spojen´ı chr´ anit, ˇci nikoliv. Pokud se dohodnou na chr´anˇen´em spojen´ı, pouˇzij´ı k tomu vol´ an´ı funkce StartTLS. Zat´ımco pˇri nechr´anˇen´em pˇrenosu dat protokolem LDAP m˚ uˇze pˇr´ıpadn´ y u ´toˇcn´ık odposlechnout komunikaci mezi serverem a klientem a z´ıskat tak velmi citliv´e u ´daje napˇr. o pˇrihlaˇsovac´ım DN a jeho hesle pro operaci bind, pˇri komunikaci pˇres protokol chr´ anˇen´ y vrstvou TLS nebo SSL je pˇrenos dat zabezpeˇcen´ y proti odposlechu, resp. proti rozk´odov´an´ı t´eto komunikace. K tomu by musel m´ıt u ´toˇcn´ık priv´atn´ı kl´ıˇc klienta nebo serveru. Pˇri t´eto komunikaci je nutn´e, aby se server, pˇr´ıpadnˇe i klient, prokazovaly platn´ ym [X.509] certifik´atem podepsan´ ym nˇekterou z certifikaˇcn´ıch autorit. 8
draft-ietf-ldapext-acl-model, draft-legg-ldap-acm-admin, draft-legg-ldap-acm-bac
- 39 -
Karel Ben´ ak
3.6 LDIF
Chr´anˇen´e spojen´ı je vhodn´e pˇredevˇs´ım pˇri pˇrenosu dat mezi klientem a serverem, mezi kter´ ymi je ned˚ uvˇeryhodn´e prostˇred´ı, napˇr. Internet. Pˇr´ıklad pouˇzit´ı zobrazuje obr. 3.39, strana 39.
Obr. 3.39: Bezpeˇcn´e spojen´ı pˇres ned˚ uvˇeryhodn´e prostˇred´ı
Klienti, kteˇr´ı se k serveru pˇripojuj´ı pˇres TLS vrstvu, maj´ı n´asleduj´ıc´ı v´ yhody: • Komunikace je chr´anˇena proti odposlechu • Komunikace je chr´anˇena proti u ´toku typu ”muˇz uprostˇred” • Klient se m˚ uˇze v˚ uˇci serveru autentizovat pouˇzit´ım PKI • M˚ uˇze si ovˇeˇrit platnost certifik´atu, kter´ y server poskytuje Bezpeˇcn´e a autentizovan´e spojen´ı mezi klientem a serverem m˚ uˇze vypadat n´asledovnˇe: • Otevˇren´ı TCP/IP spojen´ı se serverem • Operace StartTLS • Operace bind za pouˇzit´ı extern´ıho mechanismu SASL, pˇr´ıpadnˇe jin´eho SASL mechanismu (DIGEST-MD5)
3.6
LDIF
LDAP Data Interchange Format je standardn´ı textov´ y form´at pro popisov´ an´ı adres´aˇrov´ ych z´aznam˚ u, definovan´ y v [RFC 2849]. LDIF umoˇzn ˇuje snadn´ y import a export mezi r˚ uzn´ ymi adres´aˇrov´ ymi servery, kter´e pouˇz´ıvaj´ı rozd´ıln´e intern´ı datab´azov´e form´aty. Textov´e form´aty jsou mezi syst´emov´ ymi administr´atory velmi obl´ıben´e pˇredevˇs´ım pro svou pˇrehlednost a snadnou editovatelnost. Za norm´aln´ıch okolnost´ı je LDIF soubor ps´an v k´odov´e str´ance ASCII, pokud je ale tˇreba pouˇz´ıt diakritiku, pouˇz´ıv´a se pro ni standardn´ı k´odov´ a str´anka UTF-8. Data, kter´a nelze vyj´adˇrit jako ASCII nebo UTF-8 jsou k´odov´ ana pomoc´ı base64. T´ımto zp˚ usobem lze v LDIF form´atu uloˇzit napˇr. fotografii, digit´aln´ı certifik´at apod. V posledn´ı dobˇe doch´az´ı k n´astupu r˚ uzn´ ych textov´ ych form´at˚ u zaloˇzen´ ych na technologii XML. Adres´aˇrov´e sluˇzby se tomuto trendu nevyh´ ybaj´ı, proto byl vytvoˇren form´at DSML - 40 -
Karel Ben´ ak
3.6 LDIF
dn: employeeNumber=95882,ou=Clenove,dc=sin,dc=cvut,dc=cz objectClass: top objectClass: person objectclass: organizationalPerson objectclass: inetOrgPerson objectclass: kskPerson cn: Karel Ben´ ak sn: Ben´ ak givenName: Karel employeeNumber: 95882 employeeType: admin Obr. 3.40: Typick´ y LDIF soubor (Directory Services Markup Language), v aktu´aln´ı verzi DSMLv2. Tento protokol je schopen pˇrenosu pomoc´ı protokolu HTTP a n´asledn´eho zpracov´ an´ı pomoc´ı protokol˚ u HTTP/SOAP. Tato vlastnost m˚ uˇze napomoci napˇr. pˇri zabezpeˇcen´ı dat pˇri pˇrenosu v poˇc´ıtaˇcov´e s´ıti. Aˇckoliv i protokol LDAP m´a svou zabezpeˇcenou variantu (protokol LDAPS nebo vrstvu TLS ), je moˇzn´e pouˇz´ıt pro chr´anˇen´ y pˇrenos protokolu https. Z obr´azku obr. 3.41, strana 41. je patrn´e, ˇze v modern´ıch aplikac´ıch (postaven´ ych pˇrev´ aˇznˇe na www technologi´ıch a standardech) programovan´ ych jazyky Java nebo C# m´ a DSMLv2 ˇsirok´e uplatnˇen´ı. Form´aty zaloˇzen´e na XML jsou pro souˇcasn´e aplikace sn´aze zpracovateln´e a ˇcitelnˇejˇs´ı, narozd´ıl od klasick´ ych textov´ ych nebo bin´arn´ıch form´at˚ u, jak´ ym je jiˇz zmiˇ novan´ y LDIF. Pˇri programov´an´ı aplikac´ı zaloˇzen´ ych na XML se ve velk´e m´ıˇre vyuˇz´ıv´ a jiˇz hotov´ ych ˇreˇsen´ı a aplikace sama pak nemus´ı umˇet pracovat s LDAP protokolem a pˇresto m˚ uˇze kl´ast dotazy a z´ısk´avat odpovˇedi pomoc´ı protokolu HTTP/SOAP.
- 41 -
Karel Ben´ ak
3.6 LDIF
top person organizationalPerson inetOrgPerson kskPerson Karel Ben´ ak Ben´ ak Karel 95882 admin Obr. 3.41: Z´aznam ve form´atu DSMLv2
- 42 -
Karel Ben´ ak
3.7
3.7 Topologie
Topologie
Topologie se zab´ yv´a pˇredevˇs´ım rozdˇelen´ım adres´aˇrov´eho stromu mezi v´ıce server˚ u. Nejˇcasteji se navrhuje podle geografick´eho rozm´ıstˇen´ı poboˇcek, server˚ u a klient˚ u. Ve sv´e podstatˇe kop´ıruje fyzickou topologii s´ıtˇe a mˇela by velmi u ´zce souviset s n´avrhem jmenn´ ych prostor˚ u a replikac´ı. Jedn´ım z nejˇcastˇejˇs´ıch d˚ uvod˚ u rozdˇelen´ı DITu na nˇekolik ˇc´ ast´ı je pˇredevˇs´ım potˇreba spravovat a ukl´adat konkr´etn´ı ˇc´ast stromu na konkr´etn´ı poboˇcce, zat´ımco ostatn´ı poboˇcky lok´aln´ıho administr´atora a lok´aln´ı uˇzivatele nezaj´ımaj´ı. Pokud by napˇr. Skanska CZ byla zaˇ edsku, nezaj´ımalo by spr´avce pojena do adres´aˇrov´eho stromu sv´e mateˇrsk´e spoleˇcnosti ve Sv´ ˇcesk´e poboˇcky nastaven´ı norsk´e vˇetve. Z´arovˇen ˇ by ˇsetˇril m´ısto na disku (disc´ıch) pro lok´aln´ı z´aznamy, kter´e poboˇcka potˇrebuje ke sv´emu bˇehu, zat´ımco norsk´e z´aznamy by v ˇcesk´e poboˇcce zbyteˇcnˇe zab´ıraly voln´e m´ısto. Spr´avn´ y n´avrh mus´ı respektovat pˇredevˇs´ım potˇrebu dostupnosti dat pro kaˇzd´eho klienta. Topologie s´ıtˇe a adres´aˇrov´ ych sluˇzeb ji mus´ı zajistit bez jak´ ychkoliv probl´em˚ u ve stanoven´em ˇcase. Je samozˇrejmˇe v´ yhodn´e pouˇz´ıt replikac´ı, ty ovˇsem neˇreˇs´ı probl´emy spjat´e se spr´avou a pˇrenosem dat pˇredevˇs´ım po pomal´ ych link´ach typu WAN. Pokud se napˇr. klient v praˇzsk´e poboˇcce mus´ı autentizovat na stockholmsk´e centr´ ale, m˚ uˇze v´ ysledek trvat nepˇrimˇeˇrenˇe dlouho a ostatn´ı sluˇzby (napˇr. Kerberos) mohou klienta oznaˇcit jako ned˚ uvˇeryhodn´eho a znemoˇznit mu pr´aci. Rovnˇeˇz jak´ekoliv ˇcek´an´ı na odezvu server˚ u a aplikac´ı je nepˇr´ıjemn´e a pro bˇeˇzn´eho uˇzivatele neakceptovateln´e. Nav´ıc t´ım stoup´a provoz po link´ach poskytovatele, kter´ y si m˚ uˇze u ´ˇctovat cenu za poˇcet pˇrenesen´ ych dat nebo za dobu pˇripojen´ı. Pokud by napˇr´ıklad Skanska pouˇz´ıvala adres´aˇrov´e sluˇzby ve vˇsech sv´ ych poboˇck´ ach a mˇela je zorganizov´any v navazuj´ıc´ıch stromech, mohl by pˇri respektov´ an´ı geografick´eho rozm´ıstˇen´ı poboˇcek vypadat DIT jako napˇr. na obr´azku 3.42. Obr´azek samozˇrejmˇe nepostihuje vˇsechny mezin´arodn´ı poboˇcky Skansky, pouze se zab´ yv´ a jej´ımi evropsk´ ymi poboˇckami. Pro ilustraci je ale v´ıce neˇz dostaˇcuj´ıc´ı.
Obr. 3.42: Topologie Skansky podle poboˇcek ˇ edsku, kde je V poˇzadavku by mohlo b´ yt ˇreˇceno, ˇze koˇren DITu zaˇc´ın´ a v centr´ ale ve Sv´ rovnˇeˇz um´ıstˇena pˇr´ısluˇsn´a vˇetev. D´ale se v centr´ ale spravuje cel´a evropsk´a vˇetev a pˇr´ısluˇsn´e vˇetve rozdˇeluj´ıc´ı Evropu na regiony West, North a Middle. Vˇetev America a k n´ı pˇr´ısluˇsej´ıc´ı vˇetve North America a Latin America se spravuj´ı v poboˇcce ve Spojen´ ych st´atech, Vˇetev Asia se spravuje v poboˇcce v Hong Kongu. Adres´aˇrov´ y strom by mˇel tedy sv˚ uj koˇren v dc=skanska,dc=com, kter´ y je um´ıstˇen´ y ˇ v centr´ale ve Sv´edsku. To znam´en´a, ˇze prefix dc=skanska,dc=com a vˇetev ou=Sweden,ou=North Europe,ou=Europe,dc=skanska,dc=com jsou um´ıstˇeny na centr´ aln´ım serveru. Na nˇem jsou rovnˇeˇz um´ıstˇeny vˇetve : - 43 -
Karel Ben´ ak
3.7 Topologie
ou=America,dc=skanska,dc=com ou=Asia,dc=skanska,dc=com ou=Europe,dc=skanska,dc=com ou=West Europe,ou=Europe,dc=skanska,dc=com ou=UK,ou=West Europe,ou=Europe,dc=skanska,dc=com ou=North Europe,ou=Europe,dc=skanska,dc=com ou=OY,ou=West Europe,ou=Europe,dc=skanska,dc=com ou=Denmark,ou=West Europe,ou=Europe,dc=skanska,dc=com ou=Norway,ou=West Europe,ou=Europe,dc=skanska,dc=com ou=Middle Europe,ou=Europe,dc=skanska,dc=com ou=Czech,ou=West Europe,ou=Europe,dc=skanska,dc=com ou=Poland,ou=West Europe,ou=Europe,dc=skanska,dc=com Z tˇechto vˇetv´ı pak vedou odkazy pomoc´ı referenc´ı na pˇr´ısluˇsn´e poboˇckov´e servery v jednotliv´ ych zem´ıch. Jelikoˇz nem´a spoleˇcnost Skanska podobn´e ˇreˇsen´ı, mohla by Skanska CZ pouˇz´ıvat rozdˇelen´ı sv´eho DIT na adres´aˇrov´e servery podle obr´azku 3.43. Skanska CZ vˇsak m´ısto tohoto ˇreˇsen´ı
Obr. 3.43: Topologie Skansky podle m´ısta pracoviˇstˇe pouˇz´ıv´a replikac´ı, kter´e jsou pro zajiˇstˇen´ı provozu dostaˇcuj´ıc´ı.
- 44 -
Karel Ben´ ak
4.1 Adres´ aˇrov´ e servery
Kapitola 4
Software pro adres´ aˇ rov´ e sluˇ zby Ve svˇetˇe otevˇren´eho software je jen m´alo v´ yznamn´ ych projekt˚ u, kter´e jsou schopny s adres´aˇrov´ ymi sluˇzbami pracovat. Naopak velk´e softwarov´e firmy se snaˇz´ı tuto technologii ve sv´ ych produktech prosazovat, pˇr´ıkladem m˚ uˇze b´ yt Microsoft Active Directory a jeho v´ yteˇcn´ a prov´azanost se syst´emem, nebo Java Enterprise System, kter´ y v sobˇe integruje.
4.1
Adres´ aˇ rov´ e servery
Adres´aˇrov´ ych server˚ u je k dispozici cel´a ˇrada. V r´amci OpenSource software jsou k dispozici servery OpenLDAP (4.1.1) a TinyLDAP (4.1.2). Pro podnikovou sf´eru, kde z´aleˇz´ı na 100 % pˇr´ıstupnosti k dat˚ um nutn´e podpoˇre ze strany dodavatele, lze zvolit nˇekter´ y z komerˇcn´ıch produkt˚ u. U adres´aˇrov´ ych server˚ u by se nemˇel nakupovat pouze vlastn´ı adres´aˇrov´ y server, ale cel´e ˇreˇsen´ı, kter´e by mˇelo obsahovat i dalˇs´ı komponenty, napˇr. PKI, n´avaznost na operaˇcn´ı syst´em a jeho sluˇzby, identity server ad. Podle m´ ych zkuˇsenost´ı tyto poˇzadavky splˇ nuj´ı produkty Java Enterprise System Directory server (strana 45.) od Sun Microsystems, Active Directory (strana 45.) od Microsoft Corporation obsaˇzen´ y napˇr. v MS Windows Server 2003, Tivoli od IBM a Novell E-Directory od Novell.
4.1.1
OpenLDAP
OpenLDAP je vyv´ıjen´ y pro r˚ uzn´e operaˇcn´ı syst´emy, jak´ ymi jsou napˇr. Linux, FreeBSD, Solaris apod. Nen´ı nijak hardwarovˇe n´aroˇcn´ y. Ve standardn´ı instalaci podporuje SSL/TLS, Kerberos a mechanismy SASL, obsaˇzen´e v LDAPv3. Podporu TLS je moˇzn´e dodat pomoc´ı knihoven OpenSSL [OpenSSL] nebo GNU TLS [GNU TLS], podporu protokolu Kerberos je moˇzn´e z´ıskat z knihoven projektu [MIT Kerberos] nebo [Heimdal] a protokol SASL z projektu [Cyrus SASL]. Pokud nejsou na adres´aˇrov´ y server kladeny velk´e n´aroky na rychlost a dodavatel syst´emu nebo aplikace je schopen sestavit a poskytovat pro OpenLDAP podporu, je [OpenLDAP] vhodn´ ym ˇreˇsen´ım. Sami v´ yvoj´aˇri OpenLDAPu pˇripouˇstˇej´ı, ˇze jejich adres´aˇrov´ y server nen´ı tak rychl´ y, jako ostatn´ı, pˇredevˇs´ım komerˇcn´ı implementace. Paradoxnˇe b´ yv´ a OpenLDAP pomˇernˇe ˇ ˇcasto nasazov´an. Pˇr´ıkladem m˚ uˇze b´ yt Fakulta stavebn´ı CVUT v Praze a jej´ı syst´em ELDAP.
- 45 -
Karel Ben´ ak
4.1.2
4.2 Prohl´ıˇ zeˇ ce a editory
TinyLDAP
TinyLDAP je mal´ y ale velmi rychl´ y adres´aˇrov´ y server, kter´ y data ukl´ad´ a do klasick´ ych textov´ ych soubor˚ u. Z protokolu LDAP ovl´ ad´ a pouze nejz´akladnˇejˇs´ı ˇc´ asti a napˇr. replikace nem´a v˚ ubec vyˇreˇseny.
4.1.3
Sun Java Enterprise Directory Server
P˚ uvodˇe se jedn´a o Netscape Directory Server, posl´eze pˇrevzat´ y spoleˇcnost´ı iPlanet a nyn´ı je souˇc´ast´ı projektu Java Enterprise System, produkovan´eho spoleˇcnost´ı Sun Microsystems. Implementuje pokroˇcil´e moˇznosti LDAPv3 a je nasazen napˇr´ıklad pro autentizaci uˇzivatel˚ u pro pˇr´ıstup k bankovn´ımu syst´emu www.mojebanka.cz. Tento adres´aˇrov´ y syst´em lze za urˇcit´ ych podm´ınek vyzkouˇset zcela zdarma.
4.1.4
Microsoft Active Directory
Active Directory (AD) je typick´ ym pˇr´ıkladem NOS. Nen´ı to typick´ y LDAP server, aˇckoliv je schopen pomoc´ı tohoto protokolu komunikovat. V AD je integrov´ an LDAP, Kerberos, SMB/CIF server a dalˇs´ı ˇc´asti. AD lze v s´ıti Microsoft Windows integrovat s DHCP serverem, DNS serverem, tiskov´ ym serverem a dalˇs´ımi sluˇzbami. V´ ybornou vlastnost´ı tohoto produktu je u ´zk´a vazba na PKI, takˇze se uˇzivatel m˚ uˇze velmi snadno prokazovat sv´ ymi digit´aln´ımi certifik´aty. Prov´azanost jednotliv´ ych komponent Windows Serveru 2003 s AD je podle m´eho n´azoru velk´ ym trumfem proti ostatn´ım serverov´ ym syst´em˚ um, nehledˇe na produkty vytv´aˇren´e v r´amci Open Source software.
4.2
Prohl´ıˇ zeˇ ce a editory
GQ GQ je podle m´eho n´azoru jedn´ım z nejlepˇs´ıch klient˚ u pro prohl´ıˇzen´ı a editaci z´aznam˚ u v LDAP adre´aˇri, kter´ y je pod operaˇcn´ımi syst´emy typu UNIX k dispozici. Jako grafick´e prostˇred´ı pouˇz´ıv´a knihovnu Gtk a jeho lokalizace do ˇceˇstiny je pomˇernˇe zdaˇril´ a. Poskytuje velmi ˇsirok´e moˇznosti editace a vkl´ad´an´ı dat, stejnˇe tak i jejich prohled´av´ an´ı a prohl´ıˇzen´ı. K zaj´ımav´ ym vlastnostem patˇr´ı i moˇznost prohl´ıˇzen´ı sch´emat, atribut˚ u a datov´ ych typ˚ u. Klient umoˇzn ˇuje velmi dobˇre vkl´adat i bin´arn´ı z´aznamy (obr´azky, zvuk) a digit´aln´ı certifik´aty uˇzivatel˚ u a server˚ u.
- 46 -
Karel Ben´ ak
4.2 Prohl´ıˇ zeˇ ce a editory
Obr. 4.1: GQ - 47 -
Karel Ben´ ak
4.3
4.3 V´ yvojov´ e prostˇredky
V´ yvojov´ e prostˇ redky
Pro v´ yvoj aplikac´ı spolupracuj´ıch s adres´aˇrov´ ymi sluˇzbami existuj´ı r˚ uzn´e v´ yvojov´e prostˇredky (Software Developer kit - SDK) pro celou ˇradu programovac´ıch jazyk˚ u. Lze se setkat napˇr´ıklad s API, kter´e poskytuj´ı v´ yvoj´aˇri projektu Mozilla, OpenLDAP, Java apod.
4.3.1
C/C++
Pˇri instalaci OpenLDAP je moˇzn´e z´arovˇen instalovat i statick´e a dynamick´e knihovny (libldap.a, libldap r.a, liblber.a, libldap.so, libldap r.so, liblber.so) a hlaviˇckov´e soubory potˇrebn´e pro v´ yvoj aplikac´ı v programovac´ım jazyce C. OpenLDAP obsahuje i knihovnu a hlaviˇckov´e soubory pro pr´aci s programovac´ım jazykem C++. Potˇrebn´e zdrojov´e soubory se nach´ azej´ı v adres´aˇri contrib/ldapc++ a je nutn´e je ’ pˇreloˇzit zvl´aˇst . Pˇri standardn´ım pˇrekladu se nepˇrekl´ adaj´ı a nejsou ani souˇc´ ast´ı pˇreloˇzen´ ych v´ yvojov´ ych baliˇck˚ u. Pro vlastn´ı pˇreklad je tˇreba standardn´ı knihovny pro jazyk C a pro generov´an´ı dokumentace k API je nutn´e pouˇzit program doxygen [Doxygen]. Bez vygenerovan´e dokumentace je obt´ıˇzn´e programovat a pˇr´ısluˇsn´e API je v n´ı velmi dobˇre pops´ano.
4.3.2
Java
Programovac´ı jazyk Java poskytuje knihovnu tˇr´ıd JNDI (Java Naming and Directory Interface) urˇcenou pro pr´aci se jmenn´ ymi a adres´aˇrov´ ymi sluˇzbami. Pˇri v´ yvoji aplikac´ı je tˇreba m´ıt nainstalovanou SDK verzi Javy, pro bˇeh aplikac´ı postaˇc´ı JRE verze Javy. K dispozici je rovnˇeˇz pˇrehledn´ y a ˇciteln´ y n´avod [6], jak JNDI knihovnou programovat. Mezi dalˇs´ımi je od firmy Novell k dispozici knihovna JLDAP (Java LDAP) [JLDAP] a od firmy OctetString knihovna JDBC-LDAP (JDBC-LDAP Bridge Driver) [JDBC LDAP].
4.3.3
Perl
Pro skriptovac´ı jazyk Perl je moˇzn´e vyuˇz´ıt modul perl-ldap [Perl-LDAP], kter´ y lze st´ahnout z kter´ehokoliv CPAN archivu. Spolu s modulem je pˇriloˇzena i pˇrehledn´ a dokumentace, kter´a je pˇri instalaci instalov´ana jako tzv. POD. perl-ldap vyˇzaduje pˇred vlastn´ı instalac´ı pomˇernˇe mnoho doplˇ nkov´ ych bal´ıˇck˚ u. Je proto dobr´e se pˇresvˇedˇcit, zda Perl obsahuje spr´avn´e knihovny (napˇr. pro pr´aci se SSL, SASL, ASN1, Base64 apod.). Vˇsechny administraˇcn´ı skripty pro IS Sinkuleho koleje spolupracuj´ıc´ı s LDAP serverem jsou ps´any pr´avˇe za pouˇzit´ı perl-ldap.
4.3.4
Python
Pro skriptovac´ı jazyk Python je moˇzn´e pouˇz´ıt Python-LDAP [Python-LDAP]. Jedn´a se o objektovˇe orientovan´e API poskytuj´ıc´ı pˇr´ıstup aplikac´ım napsan´ ym v jazyce Python k adres´aˇrov´ ym sluˇzb´am, kter´e poskytuje moˇznosti vyuˇzit´ı protokolu LDAPv3.
4.3.5
PHP
Skriptovac´ı jazyk PHP standardnˇe neobsahuje podporu LDAP, je ale moˇzn´e ji do tohoto jazyka pˇridat. Pro platformu windows je tˇreba povolit a doplnit v souboru php.ini cestu k pˇr´ısluˇsn´e sd´ılen´e knihovnˇe (ldap.dll). Pro operaˇcn´ı syst´emy typu UNIX je nutn´e pˇri kompilaci pouˇz´ıt sd´ılen´e knihovny libldap.so, libldap r.so, liblber.so nebo knihovny statick´e - 48 -
Karel Ben´ ak
4.3 V´ yvojov´ e prostˇredky
(libldap.a, libldap r.a, liblber.a). Pokud se instaluje PHP a zvl´aˇst’ rozˇs´ıˇren´ı o LDAP pomoc´ı pˇredkompilovan´ ych bal´ıˇck˚ u (napˇr. RPM), je nutn´e m´ıt nainstalov´ anu odpov´ıdaj´ıc´ı verzi LDAP knihovny, se kterou bylo PHP p˚ uvodnˇe kompilov´ ano.
4.3.6
ADSI
ADSI je propriet´arn´ı objektovˇe orientovan´e SDK od firmy Microsoft pro programovac´ı jazyky Visual Basic, C a C++. Prim´arnˇe je urˇcen´ y pro spolupr´aci s Microsoft Active Directory, ale je schopen pracovat i s jin´ ymi adres´aˇrov´ ymi servery.
- 49 -
Karel Ben´ ak
5.2 Topologie
Kapitola 5
Anal´ yza a ˇ reˇ sen´ı ˇ c´ asti IS Klubu Sinkuleho koleje ˇ Klub Sinkuleho koleje je poˇc´ıtaˇcov´ y klub student˚ u CVUT spadaj´ıc´ı pod Studentskou Unii. ˇ Clenem klubu se m˚ uˇze st´at kaˇzd´ y ubytovan´ y na koleji V. Sinkule v Zikovˇe ulici 13, Praze 6. Poˇc´ıtaˇcov´ y klub m´a pˇribliˇznˇe 250 ˇclen˚ u a jeho n´apln´ı je poskytov´ an´ı kvalitn´ıch sluˇzeb a modern´ıch technologi´ı pro pˇrenos dat ˇclen˚ u. V souˇcasn´e dobˇe je prov´ adˇen pˇrechod na nov´ y informaˇcn´ı syst´em, jehoˇz souˇc´ast´ı budou i adres´aˇrov´e sluˇzby. Mezi hlavn´ı poˇzadavky na nov´ y informaˇcn´ı syst´em patˇr´ı: • Evidence ˇclen˚ u a jejich poˇc´ıtaˇc˚ u • Evidence plateb ˇclen˚ u • Evidence majetku klubu a jeho z´ap˚ ujˇcek • Spolupr´ace se standardn´ımi internetov´ ymi sluˇzbami a protokoly Z´akladn´ım zdrojem dat je relaˇcn´ı datab´aze PostgreSQL, ve kter´e jsou uloˇzeny informace o uˇzivatel´ıch, jejich poˇc´ıtaˇc´ıch, platb´ach pˇr´ıspˇevk˚ u a jin´ ych poplatk˚ u, evidence majetku klubu a jeho z´ap˚ ujˇcek ˇclen˚ um klubu. Anal´ yza vlastn´ı relaˇcn´ı datab´aze nebude souˇc´ ast´ı t´eto pr´ace, bude v n´ı pouze ˇc´ast t´ ykaj´ıc´ı se adres´aˇrov´ ych sluˇzeb a jejich n´avaznost na nˇekter´e dalˇs´ı ˇc´ asti informaˇcn´ıho syst´emu. Adres´aˇrov´a sluˇzba bude pouˇzita pˇredevˇs´ım pro autentizaci uˇzivatel˚ u v˚ uˇci nˇekter´ ym sluˇzb´am, napˇr. smtp, pop3, ssh apod.
5.1
SQL datab´ aze
N´avrh relaˇcn´ı datab´aze na obr. 5.1, strana 50. nen´ı jeˇstˇe zcela dokonˇcen a je ve f´azi pˇripom´ınkov´ an´ı. ˇ Jeho tv˚ urci jsou studenty CVUT Fakulty Elektrotechnick´e, Petr Macejko a Jiˇr´ı Zamazal. Ti jej navrhli v r´amci semestr´aln´ı pr´ace z pˇredmˇetu Jazyk SQL.
5.2
Topologie
Pokud by KSk byl souˇc´ast´ı SU ve kter´e by se pouˇz´ıvalo adres´aˇrov´ ych sluˇzeb, mˇel by kaˇzd´ y klub na sv´em centr´aln´ım serveru uloˇzenu vlastn´ı vˇetev adres´aˇrov´eho stromu a odkazy na dalˇs´ı vˇetve by se prov´adˇely pomoc´ı referenc´ı. Tyto jednotliv´e vˇetve by mohly vypadat n´asledovnˇe: - 50 -
Karel Ben´ ak
5.2 Topologie
Obr. 5.1: ER diagram datab´aze
- 51 -
Karel Ben´ ak
5.2 Topologie
dc=su,dc=cvut,dc=cz ou=buk,dc=su,dc=cvut,dc=cz ou=dik,dc=su,dc=cvut,dc=cz ou=dk,dc=su,dc=cvut,dc=cz ou=krestani,dc=su,dc=cvut,dc=cz ou=mk,dc=su,dc=cvut,dc=cz ou=pod,dc=su,dc=cvut,dc=cz ou=blok A,ou=sh,dc=su,dc=cvut,dc=cz ou=blok B,ou=sh,dc=su,dc=cvut,dc=cz ou=blok C,ou=sh,dc=su,dc=cvut,dc=cz ou=blok D,ou=sh,dc=su,dc=cvut,dc=cz ou=blok E,ou=sh,dc=su,dc=cvut,dc=cz ou=blok F,ou=sh,dc=su,dc=cvut,dc=cz ou=sh,dc=su,dc=cvut,dc=cz ou=blok 1,ou=sh,dc=su,dc=cvut,dc=cz ou=blok 2,ou=sh,dc=su,dc=cvut,dc=cz ou=blok 3,ou=sh,dc=su,dc=cvut,dc=cz ou=blok 4,ou=sh,dc=su,dc=cvut,dc=cz ou=blok 5,ou=sh,dc=su,dc=cvut,dc=cz ou=blok 6,ou=sh,dc=su,dc=cvut,dc=cz ou=blok 7,ou=sh,dc=su,dc=cvut,dc=cz ou=blok 8,ou=sh,dc=su,dc=cvut,dc=cz ou=blok 9,ou=sh,dc=su,dc=cvut,dc=cz ou=blok 10,ou=sh,dc=su,dc=cvut,dc=cz ou=blok 11,ou=sh,dc=su,dc=cvut,dc=cz ou=blok 12,ou=sh,dc=su,dc=cvut,dc=cz ou=sin,dc=su,dc=cvut,dc=cz
N´avrh vych´az´ı z hierarchick´eho uspoˇr´ ad´ an´ı Studentsk´e unie a snaˇz´ı se dodrˇzovat [RFC 2247]. Pˇri pouˇzit´ı t´eto struktury jmenn´ ych prostor˚ u vˇsak nen´ı respektov´ an tvar pouˇziteln´ y pro digit´aln´ı certifik´aty [X.509]. Vzhledem ke vztah˚ um uvnitˇr Unie nen´ı snaha o vyuˇzit´ı adres´aˇrov´ ych sluˇzeb, proto si kaˇzd´ y klub ˇreˇs´ı informaˇcn´ı syst´em podle sv´ ych n´avrh˚ u, moˇznost´ı a schopnost´ı. V souˇcasn´e situaci je vhodn´e navrhnout koˇren DIT ve tvaru dc=sin,dc=cvut,dc=cz vych´ azej´ıc´ı z dom´enov´e adresy klubu sin.cvut.cz a z jiˇz zmiˇ novan´eho [RFC 2247]. Vzhledem k jednoduch´e topologii zobrazen´e na obr. 5.2, strana 52. nem´a cenu dˇelit DIT mezi v´ıce server˚ u. Pˇri n´avrhu topologie s´ıtˇe bylo vych´ azeno z poˇzadavk˚ u maxim´aln´ı snahy o zabezpeˇcen´ı s´ıtˇe a jednotliv´ ych server˚ u. Vˇsechny protokoly, kter´ ymi spolu servery komunikuj´ı, jsou zabezpeˇcen´ ymi variantami standardn´ıch protokol˚ u. Jedn´a se pˇredevˇs´ım o prokotoly ssh, https, ldaps, pop3s, imap4s a smtps, rovnˇ eˇz pˇr´ıstup k relaˇcn´ımu datab´azov´emu serveru PostgreSQL je ˇsifrov´an. Pro tyto zabezpeˇcen´e protokoly je nutn´e vygenerovat digit´aln´ı certifik´aty [X.509]
- 52 -
Karel Ben´ ak
5.2 Topologie
Obr. 5.2: Topologie s´ıtˇe KSk
podepsan´e nˇekterou z certifikaˇcn´ıch autorit, jinak budou klienti odm´ıtat spojen´ı s tˇemito zabezpeˇcen´ ymi servery a zabezpeˇcen´ı tak nebude efektivn´ı. Certifik´aty budou nejsp´ıˇs podeps´any lok´aln´ı certifikaˇcn´ı autoritou a digit´aln´ı certifik´at t´eto autority si do sv´e kl´ıˇcenky importuj´ı vˇsichni klienti, kteˇr´ı s tˇemito servery budou spolupracovat.
5.2.1
Rozdˇ elen´ı server˚ u
ˇ gateway – centr´aln´ı smˇerovaˇc kter´ y zajiˇst’uje smˇerov´ an´ı s´ıtˇe 147.32.110.0/23 do s´ıtˇe CVUT 147.32.252.12/30. Pln´ı funkci centr´ aln´ıho firewallu zabraˇ nuj´ıc´ıho nˇekter´ ym u ´tok˚ um a zas´ıl´a ohl´aˇsen´ı smˇerovaˇce protokolu IPv6. Dalˇs´ım zaj´ımav´ ym programem bˇeˇz´ıc´ım na tomto poˇc´ıtaˇci je poˇc´ıt´an´ı trafficu jednotliv´ ych poˇc´ıtaˇc˚ u a jeho pˇr´ıpadn´e omezen´ı. Pro zabezpeˇcen´ı spr´avn´ ych vazeb mezi HW adresou a IP adresou je pouˇzita statick´ a ARP cache, kter´a je generov´ana z adres´aˇrov´e sluˇzby pomoc´ı skriptu napsan´eho v jazyce Perl a pravidelnˇe aktualizov´ana kaˇzd´ ych 15 minut. services – centr´aln´ı informaˇcn´ı a datab´azov´ y server na kter´em jsou provozov´ any vˇsechny d˚ uleˇzit´e aplikace. Mezi hlavn´ı aplikace patˇr´ı pˇredevˇs´ım datab´aze ˇclen˚ u klubu uloˇzen´ a v relaˇcn´ı datab´azi PostgreSQL. Z t´eto datab´aze jsou exportov´ any hodnoty nˇekter´ ych u ´daj˚ u o uˇzivatel´ıch a jejich poˇc´ıtaˇc´ıch a jsou importov´ any do ldap serveru. Ten slouˇz´ı jako zdroj informac´ı pro prim´arn´ı DNS server a DHCP server bˇeˇz´ıc´ım na tomto poˇc´ıtaˇci. Rovnˇeˇz jsou zde provozov´any http servery Apache a Apache Tomcat jako aplikaˇcn´ı server pro vlastn´ı intranetovou aplikaci, kter´a je naps´ana pomoc´ı JSP a Java servrlet˚ u. Ty vyuˇz´ıvaj´ı technologie JDBC a JNDI pro komunikaci mezi relaˇcn´ı datab´az´ı a adres´aˇrov´ ym serverem. Technologie Java byla zvolena pro snadnou portaci i na jin´e platformy, neˇz-li je Intel/Linux. Pro tento server mus´ı b´ yt vygenerov´ ano nˇekolik digit´aln´ıch certifik´at˚ u [X.509] podepsan´ ych lok´aln´ı certifikaˇcn´ı autoritou. Jsou to certifik´aty pro dom´eny services.sin.cvut.cz, intranet.sin.cvut.cz, ldap.sin.cvut.cz, db.sin.cvut.cz a ns.sin.cvut.cz. apps – aplikaˇcn´ı server pro provozov´ an´ı uˇzivatelsk´ ych aplikac´ı. Pˇr´ıstup je povolen pouze po dohodˇe s administr´atory pomoc´ı protokolu ssh, kter´ y uˇzivatele autentizuje pomoc´ı
- 53 -
Karel Ben´ ak
5.3 Jmenn´ e prostory
adres´aˇrov´e sluˇzby. Standardnˇe je pˇr´ıstup na tento server uˇzivatel˚ um zak´az´ an a povolen pouze na vyˇz´ad´an´ı. D´ale m´a na tomto serveru kaˇzd´ y uˇzivatel sv˚ uj poˇstovn´ı u ´ˇcet dostupn´ y pˇres protokoly pop3 nebo imap4. Jako serverov´ y software pro tyto protokoly je pouˇzit software Cyrus IMAP, kter´ y jako autentizaˇcn´ı zdroj pouˇz´ıv´ a centr´ aln´ı LDAP server dostupn´ y pˇres protokol ldaps. Odes´ıl´ an´ı poˇsty zajiˇst’uje server Postfix pomoc´ı protokolu smtp. Poˇstu je moˇzn´e pomoc´ı tohoto serveru odes´ılat i mimo s´ıt’ 147.32.110.0/23 a to d´ıky protokolu SMTP AUTH. Ten vyuˇz´ıv´ a protokol SASL a SASL opˇet z´ısk´ av´ a autentizaˇcn´ı informace pomoc´ı protokolu ldaps z centr´ aln´ıho serveru. Pro tento server mus´ı b´ yt vygenerov´ano nˇekolik digit´aln´ıch certifik´at˚ u [X.509] podepsan´ ych lok´aln´ı certifikaˇcn´ı autoritou. Jsou to certifik´aty pro dom´eny apps.sin.cvut.cz, www.sin.cvut.cz, imap.sin.cvut.cz, pop3.sin.cvut.cz, mail.sin.cvut.cz a smtp.sin.cvut.cz. Na tomto serveru jsou pro potˇreby uˇzivatel˚ u klubu k dispozici SQL servery PostgreSQL, MySQL a FireBird a pˇredevˇs´ım http a https server Apache, kter´ y zajiˇst’uje veˇrejnou prezentaci str´anek klubu a domovsk´ ych str´anek uˇzivatel˚ u. backup – z´alohovac´ı server na kter´em jsou um´ıstˇeny pravideln´e z´alohy zb´ yvaj´ıc´ıch server˚ ua pˇr´ıpadnˇe obsahu disk˚ u ˇclen˚ u klubu, kteˇr´ı potˇrebuj´ı kr´atkodobˇe z´alohovat sv´e poˇc´ıtaˇce. Na tomto serveru je z´aloha aplikace pro spr´avu uˇzivatel˚ u a rovnˇeˇz replikovan´ y LDAP server. Ostatn´ı servery jsou pro dalˇs´ı funkˇcnost s´ıtˇe nepodstatn´e a poskytuj´ı pouze doplˇ nkov´e sluˇzby, napˇr. TV server nebo news server. U news serveru by mohlo pˇrich´ azet v u ´vahu vyuˇzit´ı adres´aˇrov´e sluˇzby pro autentizaci uˇzivatel˚ u k pˇr´ıstupu na priv´atn´ı diskusn´ı skupiny, ale zat´ım nebyl tento poˇzadavek vznesen. Pˇri n´avrhu a realizaci nelze pouˇz´ıt mechanismus Single Sign One pro moˇznost jedin´e autentizace pro vˇsechny sluˇzby spoleˇcnˇe. D˚ uvodem je velk´ a heterogenita s´ıtˇe a neexistence ˇz´ adn´eho vyuˇziteln´eho standardu. Nab´ız´ı se sice moˇznost vyuˇzit´ı syst´emu Kerberos, jeho konfigurace vˇsak nen´ı jednoduchou z´aleˇzitost´ı a v pˇr´ıpadˇe syst´em˚ u Microsoft Windows doˇslo k modifikaci tohoto standardu. V podnikov´em informaˇcn´ım syst´emu je situace odliˇsn´ a. Vˇetˇsinou je v nich homogenn´ı prostˇred´ı operaˇcn´ıch syst´em˚ u a administr´atorsk´ a pr´ava k poˇc´ıtaˇc˚ um maj´ı pouze jejich spr´avci. V s´ıti KSk je kaˇzd´ y majitel poˇc´ıtaˇce jeho vlastn´ım administr´atorem, proto se k tˇemto poˇc´ıtaˇc˚ um nem˚ uˇze navrhovan´ y syst´em chovat jako k d˚ uvˇeryhodn´ ym a autentizace pomoc´ı Kerbera by mohla pˇrin´est bezpeˇcnostn´ı rizika. Nav´ıc by bylo nutn´e pˇrinutit uˇzivatele, aby pouˇz´ıvali na sv´ ych poˇc´ıtaˇc´ıch jm´ena a hesla sjednocen´a s novˇe vytv´aˇren´ ym syst´emem.
5.3
Jmenn´ e prostory
Adres´aˇrov´ y strom m´a zvolen´ y prefix dc=sin,dc=cvut,dc=cz a jeho tvar je navrˇzen podle sch´ematu na obr. 5.3, strana 54.. V DN jednotliv´ ych ˇc´ast´ı DIT by bylo moˇzno pouˇz´ıt n´azvy dle [RFC 2253] v k´odov´an´ı UTF-8, ovˇsem vzhledem k pˇr´ıpadnn´ ym komplikac´ım s r˚ uzn´ ymi n´arodn´ımi prostˇred´ımi jednotliv´ ych aplikac´ı byly n´azvy z´aznam˚ u zvoleny v k´odov´ an´ı ASCII.
5.3.1
Pˇ rehled jednotliv´ ych vˇ etv´ı
V n´asleduj´ıc´ım pˇrehledu jednotliv´ ych vˇetv´ı navrˇzen´eho DIT jsou vysvˇetleny jejich v´ yznamy. Nˇekter´e vˇetve se mohou d´ale rozˇsiˇrovat. - 54 -
Karel Ben´ ak
5.3 Jmenn´ e prostory
dc=sin,dc=cvut,dc=cz | +--------------+-------+-------+--------------+ | | | | ou=clenove ou=pocitace ou=majetek ou=konfigurace Obr. 5.3: KSk - n´avrh DIT ou=clenove V t´eto vˇetvi jsou uchov´any informace o ˇclenech klubu jako jsou jejich jm´eno, pˇr´ıjmen´ı, adresa, ID pod kter´ ym plat´ı sv´e pˇr´ıspˇevky, digit´aln´ı certifik´at, foto a cel´a ˇrada dalˇs´ıch atribut˚ u. Proti z´aznam˚ um v t´eto vˇetvi se mohou uˇzivatel´e autentizovat pˇri pouˇz´ıv´ an´ı jiˇz zm´ınˇen´ ych sluˇzeb protokol˚ u imap4, pop3 ad. Kaˇzd´ y uˇzivatel si bude moci tuto vˇetev pˇripojit do sv´eho e-mailov´eho klienta pro vyhled´an´ı e-mailov´ ych adres ostatn´ıch ˇclen˚ u klubu. Pˇri autentizaci by se pouˇzil kontext ou=clenove, dc=sin, dc=cvut, dc=cz. ou=pocitace V t´eto vˇetvi jsou uchov´any informace o poˇc´ıtaˇc´ıch ˇclen˚ u klubu. Z tˇechto z´aznam˚ u dynamicky ˇcerpaj´ı data pro sv˚ uj bˇeh servery DNS a DHCP. Je vˇsak velmi snadn´e z´aznamy v t´eto vˇetvi pˇrizp˚ usobit pro statick´e generov´an´ı potˇrebn´ ych soubor˚ u. Toto ˇreˇsen´ı bylo zvoleno pˇredevˇs´ım d´ıky snadn´e distribuci potˇrebn´ ych dat pˇri pˇr´ıpadn´em pˇresunu tˇechto server˚ u na jin´e stroje. Vˇetev se d´ale dˇel´ı na: zoneName=sin.cvut.cz – kontejner, ve kter´em jsou uloˇzeny informace o poˇc´ıtaˇc´ıch ˇclen˚ u klubu. Kaˇzd´ y z tˇechto poˇc´ıtaˇc˚ u m´a v t´eto vˇetvi sv˚ uj z´aznam obsahuj´ıc´ı jeho n´azev, pˇr´ısluˇsnou IPv4 adresu, IPv6 adresu vygenerovanou z prefixu z´ıskan´eho od SU, HW adresu pro DHCP server a odkaz na majitele poˇc´ıtaˇce. zoneName=110.32.147.in-addr.arpa – kontejner, ve kter´em jsou uloˇzeny z´aznamy reverzn´ı dom´eny pro s´ıt’ 147.32.110.0 zoneName=111.32.147.in-addr.arpa – kontejner, ve kter´em jsou uloˇzeny z´aznamy reverzn´ı dom´eny pro s´ıt’ 147.32.111.0 Reverzn´ı dom´ena pro IPv6 zat´ım nebyla navrˇzena. ou=majetek V t´eto vˇetvi jsou uloˇzeny z´aznamy o majetku klubu. Z´akladn´ı informace jsou uloˇzeny v relaˇcn´ı datab´azi, ve kter´e lze d´ıky vhodnˇe navrˇzen´ ym objektov´ ym tˇr´ıd´ am a atribut˚ um zachytit velmi podrobnou konfiguraci konkr´etn´ıho zaˇr´ızen´ı vˇcetnˇe fotografie. ou=konfigurace V t´eto vˇetvi jsou uloˇzeny obecnˇe zn´am´e informace, kter´e jsou bˇeˇznˇe uloˇzeny v souborech /etc/services, /etc/protocols apod. Pro jejich pˇrevod z klasick´ e textov´e podoby uloˇzen´e ve
- 55 -
Karel Ben´ ak
5.5 Sch´ emata
zm´ınˇen´ ych souborech lze pouˇz´ıt software migration tools od spoleˇcnosti PADL Software Pty Ltd1 . D´ale tu je uloˇzena konfigurace DHCP serveru.
5.4
Adres´ aˇ rov´ a sluˇ zba
Vzhledem k poˇzadavk˚ um na pouˇz´ıv´an´ı otevˇren´eho software byl vybr´an server [OpenLDAP]. Pˇri jeho instalaci je nutn´e pouˇz´ıt nˇekter´e doplˇ nkov´e knihovny, jak´ ym jsou pˇredevˇs´ım [OpenSSL] pro podporu protokolu TLS a [Cyrus SASL] pro podporu protokolu SASL. [OpenLDAP] pouˇz´ıv´a pro sv˚ uj bˇeh program slapd, kter´ y by mˇel b´ yt standardnˇe um´ıstˇen v adres´aˇri /usr/sbin pˇr´ıpadnˇe v /usr/libexec. Pouˇz´ıv´ a konfiguraˇcn´ı soubor slapd.conf um´ıstˇen´ y v adres´aˇri /etc/openldap. Jeho konfigurace je podrobnˇe pops´ana v manu´ alov´ ych str´ank´ ach a na str´ank´ach projektu [OpenLDAP]. Mezi nejd˚ uleˇzitˇejˇs´ı parametry v konfiguraˇcn´ım souboru patˇr´ı n´asleduj´ıc´ı direktivy: include – Cesty k soubor˚ um se sch´ematy database – Datab´azov´ y backend, standardnˇe nastavena hodnota bdb pro Berkley DB, jinak je moˇzno pouˇz´ıt backendy ldbm, sql ad. suffix – Prefix DIT "dc=sin, dc=cvut, dc=cz" rootdn – DN spr´avce DIT "cn=manager, ou=Users, ou=konfigurace, dc=sin, dc=cvut, dc=cz"
rootpw – Heslo spr´avce DIT. Pokud nen´ı uvedeno, pˇredpokl´ad´ a se, ˇze je uloˇzeno v datab´azi SASLu. Hesla ve tvaru SHA1 a MD5 lze generovat pomoc´ı utility slappasswd.
5.5
Sch´ emata
Pˇri n´avrhu sch´emat objektov´ ych tˇr´ıd a atribut˚ u se vych´ azelo ze snahy o maxim´aln´ı vyuˇzit´ı standard˚ u. V prvn´ı ˇradˇe bylo nutn´e z´ıskat jedineˇcn´e OID pro potˇreby n´avrhu nov´ ych atribut˚ u a objektov´ ych tˇr´ıd. Vzhledem k vazbˇe na SU bylo poskytnuto OID z rozsahu SU a sice 1.3.6.1.4.1.16748.3. S t´ımto rozsahem OID bylo moˇ zno naloˇzit dle libosti, proto byl rozsah d´ale rozdˇelen na ˇc´asti podle tab. 5.1, strana 55. Vzhledem k moˇznosti v´ yskytu nˇekter´ ych spoleˇcn´ ych n´azv˚ u v jin´ ych aplikac´ıch by mohlo doj´ıt k duplicitˇe n´azv˚ u atribut˚ u a objektov´ ych tˇr´ıd, proto bylo zvoleno pojmenov´ an´ı atribut˚ u a objektov´ ych tˇr´ıd tak, aby jejich n´azev obsahoval ksk....
5.5.1
ˇ Clenov´ e
Pro uloˇzen´ı informac´ı o jednotliv´ ych ˇclenech klubu jsou z relaˇcn´ı datab´aze importov´ any z´akladn´ı u ´daje, kter´ ymi jsou: uid – identifikaˇcn´ı ˇc´ıslo ˇclena v r´amci klubu jm´ eno – jm´eno ˇclena klubu 1
www.padl.com
- 56 -
Karel Ben´ ak
5.5 Sch´ emata
OID 1.3.6.1.4.1.16748.3 1.3.6.1.4.1.16748.3.1 1.3.6.1.4.1.16748.3.2 1.3.6.1.4.1.16748.3.2.1 1.3.6.1.4.1.16748.3.2.1.1 1.3.6.1.4.1.16748.3.2.2 1.3.6.1.4.1.16748.3.2.2.1
V´ yznam OID KSk SNMP elementy LDAP elementy Atributy Vlastn´ı atribut Objektov´e tˇr´ıdy Vlastn´ı objektov´ a tˇr´ıda
Tab. 5.1: Hierarchie OID pro KSk
pˇ r´ıjmen´ı – pˇr´ıjmen´ı ˇclena klubu rodn´ eˇ c´ıslo (ˇ c´ıslo pasu) – rodn´e ˇc´ıslo nebo ˇc´ıslo pasu pro evidenci SU ˇ skola – fakulta ,kterou ˇclen klubu navˇstˇevuje nebo je zamˇestnancem pokoj – ˇc´ıslo pokoje, na kter´em ˇclen klubu bydl´ı konto – uˇzivatelsk´ yu ´ˇcet e-mail – ofici´aln´ı e-mailov´a adresa, na kterou jsou zas´ıl´ ana d˚ uleˇzit´ a upozornˇen´ı datum – datum vstupu do klubu K tˇemto z´akladn´ım informac´ım jsou pˇriˇrazeny dalˇs´ı, kter´e jsou uloˇzeny pouze v adres´aˇrov´em serveru a nejsou nezbytnˇe nutn´e pro evidenci ˇclen˚ u, Bez nich mu vˇsak napˇr´ıklad nebude spr´avnˇe doruˇcov´ana ani odes´ıl´ana elektronick´ a poˇsta. Uveden´e atributy SQL datab´aze jsou pˇremapov´any na LDAP atributy v pˇr´ısluˇsn´ ych objektov´ ych tˇr´ıd´ ach. Z´akladn´ı pouˇzit´e objektov´e tˇr´ıdy a jejich atributy (povinn´e jsou vyznaˇceny silnˇe): top – z´akladn´ı objektov´a tˇr´ıda person – dˇed´ı po objektov´e tˇr´ıdˇe top cn – Bˇeˇzn´ y n´azev, v tomto pˇr´ıpadˇe jm´eno a pˇr´ıjmen´ı uˇzivatele sn – Pˇr´ıjmen´ı uˇzivatele userPassword – Heslo uˇzivatele. Tato poloˇzka je nutn´ a pokud bude cht´ıt uˇzivatel pˇrij´ımat a odes´ılat elektronickou poˇstu z lok´aln´ıho serveru. Heslo bude uloˇzeno ve form´atu MD5 telephoneNumber – Telefonn´ı ˇc´ıslo uˇzivatele seeAlso – DN na souvisej´ıc´ı objekty, napˇr. poˇc´ıtaˇce, kter´e uˇzivatel vlastn´ı description – Popis organizationalPerson – dˇed´ı po objektov´e tˇr´ıdˇe person title – Titul, napˇr. Ing., Bc. apod. ou – Organizaˇcn´ı jednotka. V tomto pˇr´ıpadˇe studijn´ı obor kter´ y uˇzivatel studuje nebo vyuˇcuje - 57 -
Karel Ben´ ak
5.5 Sch´ emata
inetOrgPerson – dˇed´ı po objektov´e tˇr´ıdˇe organizationalPerson, definov´ ana v [RFC 2798] employeeNumber – UID pod kter´ ym je uˇzivatel v syst´emu zaveden. employeeType – V´ yˇctov´ y typ uˇzivatele (admin, vip, normal) jpegPhoto – Fotografie uˇzivatele ve form´atu JPEG givenName – Jm´eno uˇzivatele displayName – Jm´eno, kter´e se bude zobrazovat v aplikac´ıch kter´e umˇej´ı s adres´aˇrov´ ymi sluˇzbami spolupracovat initials – Inici´aly uˇzivatele preferredLanguage – Jazyk, kter´ y uˇzivatel preferuje pˇri komunikaci ˇ ıslo pokoje uˇzivatele roomNumber – C´ o – Organizace, kde uˇzivatel pracuje. V tomto pˇr´ıpadˇe je tento atribut pouˇzit´ y pro uloˇzen´ı n´azvu fakulty, kterou studuje. departmentNumber homePostalCode – Poˇstovn´ı adresa uˇzivatele homePhone – Telefon na uˇzivatelovu pevnou linku mobile – Mobiln´ı telefon userCertificate – Digit´aln´ı certifik´at uˇzivatele userPKCS12 – Digit´aln´ı certifik´at podle normy #PKCS12 userSMIMECertificate – Digit´aln´ı certifik´at pro podepisov´ an´ı el. poˇsty mail – Ofici´aln´ı uˇzivatel˚ uv certifik´at posixAccount – objektov´a tˇr´ıda pro UNIXov´e uˇzivatelsk´e u ´ˇcty. Pomoc´ı t´eto tˇr´ıdy bude uˇzivatel pˇristupovat ke sv´e elektronick´e poˇstˇe apod. uid – Uˇzivatel˚ uv u ´ˇcet pro v´ ybˇer poˇsty ˇ uidNumber – C´ıslo uˇzivatelova u ´ˇctu, standardnˇe to b´ yv´ a ˇc´ıslo vyˇsˇs´ı neˇz-li 1000 ˇ ıslo skupiny, do kter´e uˇzivatel patˇr´ı. Standardnˇe to b´ gidNumber – C´ yv´ a ˇc´ıslo 100, coˇz odpov´ıd´a skupinˇe users homeDirectory – Domovsk´ y adres´aˇr uˇzivatele gecos – Identifikaˇcn´ı u ´daje pro utility typu finger loginShell – Cesta k uˇzivatelovu shellu, standardnˇe nastavena´ a na /bin/false shadowAccount – objektov´a tˇr´ıda pro st´ınov´ a hesla. Nastavuj´ı se zde atributy pro expiraci hesel, jejich minim´aln´ı a maxim´aln´ı d´elku apod. inetLocalMailRecipient – objektov´ a tˇr´ıda pro pr´aci s e-maily podle draftu RFC draft-lachman-laser-ldap-mail-routing
Pro z´aznam dalˇs´ıch informac´ı o uˇzivatel´ıch je nutn´e navrhnout novou objektovou tˇr´ıdu a pˇr´ısluˇsn´e atributy. kskUser - 58 -
Karel Ben´ ak
5.5 Sch´ emata
objectclass ( 1.3.6.1.4.1.16748.3.2.2.1 NAME ’kskUser’ SUP top AUXILIARY DESC ’Schema ˇ clen˚ u KSk’ MAY ( kskNativeNumber $ kskPassportNumber $ kskDate $ kskMD5CertFingerPrint $ kskSHA1CertFingerPrint $ kskICQ $ kskJabber $ kskYahoo $ kskAIM $ kskMSN $ kskIRC ) ) kskNativeNumber – Rodn´e ˇc´ıslo uˇzivatele attributetype (1.3.6.1.4.1.16748.3.2.1.1 NAME ’kskNativeNumber’ DESC ’Rodn´ e ˇ c´ ıslo uˇ zivatele’ EQUALITY caseIgnoreIA5Match SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 ) ˇ ıslo pasu uˇzivatele kskPassportNumber – C´ attributetype (1.3.6.1.4.1.16748.3.2.1.2 NAME ’kskPassportNumber’ DESC ’ˇ C´ ıslo pasu zahraniˇ cn´ ıho uˇ zivatele’ EQUALITY caseIgnoreIA5Match SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 ) kskDate – datum vstupu uˇzivatele do klubu attributetype (1.3.6.1.4.1.16748.3.2.1.3 NAME ’kskDate’ DESC ’Datum’ EQUALITY generalizedTimeMatch ORDERING generalizedTimeOrderingMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.24 ) kskMD5CertFingerPrint – MD5 fingerprint uˇzivatelova certifik´atu attributetype (1.3.6.1.4.1.16748.3.2.1.4 NAME ’kskMD5CertFingerPrint’ DESC ’MD5 fingerprint uˇ zivatelova certifik´ atu’ EQUALITY caseIgnoreIA5Match SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 ) kskSHA1CertFingerPrint – SHA1 fingerprint uˇzivatelova certifik´atu attributetype (1.3.6.1.4.1.16748.3.2.1.5 NAME ’kskSHA1CertFingerPrint’ DESC ’SHA1 fingerprint uˇ zivatelova certifik´ atu’ EQUALITY caseIgnoreIA5Match SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 ) kskICQ – ICQ kontakt na uˇzivatele attributetype (1.3.6.1.4.1.16748.3.2.1.6 NAME ’kskICQ’ DESC ’ICQ kontakt na uˇ zivatele EQUALITY caseIgnoreIA5Match’ SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 ) kskJabber – Jabber kontakt na uˇzivatele
- 59 -
Karel Ben´ ak
5.5 Sch´ emata
attributetype (1.3.6.1.4.1.16748.3.2.1.7 NAME ’kskJabber’ DESC ’Jabber kontakt na uˇ zivatele’ EQUALITY caseIgnoreIA5Match SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 ) kskYahoo – Yahoo kontakt na uˇzivatele attributetype (1.3.6.1.4.1.16748.3.2.1.8 NAME ’kskYahoo’ DESC ’Yahoo kontakt na uˇ zivatele’ EQUALITY caseIgnoreIA5Match SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 ) kskAIM – AIM kontakt na uˇzivatele attributetype (1.3.6.1.4.1.16748.3.2.1.9 NAME ’kskAIM’ DESC ’AIM kontakt na uˇ zivatele’ EQUALITY caseIgnoreIA5Match SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 ) kskMSN – MSN messenger kontakt na uˇzivatele attributetype (1.3.6.1.4.1.16748.3.2.1.10 NAME ’kskMSN’ DESC ’MSN messenger kontakt na uˇ zivatele’ EQUALITY caseIgnoreIA5Match SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 ) kskIRC – IRC kontakt na uˇzivatele attributetype (1.3.6.1.4.1.16748.3.2.1.11 NAME ’kskIRC’ DESC ’IRC kontakt na uˇ ziva EQUALITY caseIgnoreIA5Match’ SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 ) Z´aznamy o uˇzivatel´ıch jsou uloˇzeny v kontejneru ou=clenove,dc=sin,dc=cvut,dc=cz pod RDN employeeNumber=UID uˇzivatele a z´aznam by pak mohl vypadat napˇr. takto: dn: employeeNumber=95799,ou=clenove,dc=sin,dc=cvut,dc=cz objectClass: top objectClass: person objectClass: organizationalPerson objectClass: inetOrgPerson objectClass: inetLocalMailRecipient objectClass: kskUser sn: Ben´ ak cn: Karel Ben´ ak employeeNumber: 95799 employeeType: admin givenName: Karel uid: beny uidNumber: 1032 gidNumber: 100 homeDirectory: /home/beny - 60 -
Karel Ben´ ak
5.5 Sch´ emata
loginShell: /bin/bash mail:
[email protected] mail:
[email protected] kskNativeNumber: 770319/XXXX kskICQ: 36646638
5.5.2
Poˇ c´ıtaˇ ce
Pro uloˇzen´ı informac´ı o jednotliv´ ych poˇc´ıtaˇc´ıch ˇclen˚ u klubu a serverech jsou z relaˇcn´ı datab´aze exportov´ any z´akladn´ı u ´daje, kter´ ymi jsou: id clena – identifikaˇcn´ı ˇc´ıslo majitele poˇc´ıtaˇce jm´ eno – n´azev poˇc´ıtaˇce mac – HW adresa poˇc´ıtaˇce ip – IPv4 adresa poˇc´ıtaˇce zasuvka – Z´asuvka, do kter´e je poˇc´ıtaˇc pˇripojen datum – Datum pˇripojen´ı poˇc´ıtaˇce stav – Stav poˇc´ıtaˇce. Ten m˚ uˇze b´ yt bud’ aktivn´ı, vyˇrazen´ y nebo doˇcasnˇe odpojen´ y Informace o poˇc´ıtaˇc´ıch jsou ponˇekud komplikovanˇejˇs´ı a program pro jejich generov´ an´ı mus´ı ˇreˇsit problematick´ y z´apis do reverzn´ıch z´aznam˚ u. Pro uloˇzen´ı norm´aln´ıch z´aznam˚ u o poˇc´ıtaˇc´ıch slouˇz´ı vˇetev zoneName=sin.cvut.cz, ou=pocitace, dc=sin, dc=cvut,dc=cz. V tomto z´aznamu jsou pouˇzita n´asleduj´ıc´ı sch´emata a atributy: top – z´akladn´ı objektov´a tˇr´ıda dnsZone – objektov´a tˇr´ıda pro spolupr´aci s DNS serverem zoneName – jm´eno z´onov´eho souboru relativeDomainName – n´azev poˇc´ıtaˇce v dan´e z´onˇe DNSTTL – atribut pro hodnotu ˇcasov´eho u ´daje time to live DNSClass ARecord – IPv4 adresa MDRecord MXRecord – MX z´aznam e-mailov´eho serveru NSRecord – NS z´aznam o nameserveru SOARecord CNAMERecord – Z´aznam o aliasu PTRRecord – PTR z´aznam pouˇz´ıvan´ y v reverzn´ıch z´on´ ach HINFORecord MINFORecord - 61 -
Karel Ben´ ak
5.5 Sch´ emata
TXTRecord SIGRecord KEYRecord AAAARecord – IPv6 adresa ve form´atu AAAA z´aznamu LOCRecord NXTRecord SRVRecord NAPTRRecord KXRecord CERTRecord A6Record – IPv6 adresa ve form´atu A6 z´aznamu DNAMERecord – Reverzn´ı IPv6 z´aznam dhcpSubnet – Objektov´a tˇr´ıda DHCP pro nastaven´ı pods´ıtˇe dhcpNetMask – D´elka masky pods´ıtˇe dhcpOptions – Objektov´a tˇr´ıda DHCP pro nastaven´ı parametr˚ u dhcpOption – Parametry, kter´e se zas´ılaj´ı klientsk´ ym stanic´ım. Atribut m˚ uˇze b´ yt v´ıcehodnotov´ y. dhcpComputer – Objektov´a tˇr´ıda DHCP pro uloˇzen´ı informac´ı o poˇc´ıtaˇci. Tuto objektovou tˇr´ıdu je nutn´e upravit z typu STRUCTURAL na typ AUXILIARY, aby ji bylo moˇzno pouˇz´ıt spoleˇcnˇe se tˇr´ıdou dnsZone dhcpHWAddress – HW adresa s´ıt’ov´e karty poˇc´ıtaˇce dhcpStatements – Uloˇzen´ı pˇreddefinovan´e IPv4 adresy kterou bude DHCP server poskytovat stanici poskytovat dhcpServer – Objektov´a tˇr´ıda pro nastaven´ı konfigurace serveru. Tuto objektovou tˇr´ıdu je nutn´e upravit z typu STRUCTURAL na typ AUXILIARY, aby ji bylo moˇzno pouˇz´ıt spoleˇcnˇe se tˇr´ıdou dnsZone dhcpServiceDN – DN z´aznamu, kde je uloˇzena konfigurace serveru. kskComputer objectclass ( 1.3.6.1.4.1.16748.3.2.2.2 NAME ’kskComputer’ SUP top AUXILIARY DESC ’Schema pro poˇ c´ ıtaˇ ce ˇ clen˚ u KSk’ MAY ( owner $ roomNumber $ kskDataConnector ) ) owner – DN vlastn´ıka poˇc´ıtaˇce ˇ ıslo pokoje, kde je poˇc´ıtaˇc um´ıstˇen roomNumber – C´ - 62 -
Karel Ben´ ak
5.5 Sch´ emata
ˇ ıslo z´asuvky kskDataConnector – C´ attributetype (1.3.6.1.4.1.16748.3.2.1.12 NAME ’kskDataConnector’ DESC ’ˇ C´ ıslo z´ asuvky’ EQUALITY integerMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 SINGLE-VALUE ) kskServer objectclass ( 1.3.6.1.4.1.16748.3.2.2.3 NAME ’kskServer’ SUP top AUXILIARY DESC ’Schema pro poˇ c´ ıtaˇ ce ˇ clen˚ u KSk’ MAY ( manager $ roomNumber ) ) manager – DN spr´avce dan´eho serveru roomNumber – M´ıstnost, kde je zaˇr´ızen´ı um´ıstˇeno dn: ou=pocitace,dc=sin,dc=cvut,dc=cz ou: pocitace objectClass: top objectClass: organizationalUnit objectClass: dhcpService cn: DHCP Config dhcpStatements: ddns-update-style none dhcpPrimaryDN: relativeDomainName=services,zoneName=sin.cvut.cz, ou=pocitace,dc=sin,dc=cvut,dc=cz dn: zoneName=sin.cvut.cz,ou=pocitace,dc=sin,dc=cvut,dc=cz objectClass: top objectClass: dnsZone objectClass: dhcpSubnet objectClass: dhcpOptions zoneName: sin.cvut.cz relativeDomainName: @ dNSTTL: 86400 aRecord: 147.32.110.2 aAAARecord: 2001:718:2:880:210:5aff:fed7:8380 mXRecord: 10 mail.sin.cvut.cz. nSRecord: ns.sin.cvut.cz. nSRecord: apps.sin.cvut.cz. sOARecord: services.sin.cvut.cz. admin.sin.cvut.cz. 200406011330 10800 3600 604800 86400 cn: 147.32.110.0 dhcpNetMask: 23 dhcpOption: subnet-mask 255.255.254.0 dhcpOption: broadcast-address 147.32.111.255 dhcpOption: routers 147.32.110.1 - 63 -
Karel Ben´ ak
5.5 Sch´ emata
dhcpOption: domain-name-servers 147.32.110.2 dhcpOption: domain-name-servers 147.32.110.3 dhcpOption: domain-name "sin.cvut.cz" Z´aznam vˇetve zoneName=110.32.147.in-addr.arpa, ou=pocitace, dc=sin, dc=cvut,dc=cz slouˇz´ıc´ı pro reverzn´ı dom´enu s´ıtˇe 147.32.110 m´a n´asleduj´ıc´ı tvar: dn: zoneName=110.32.147.in-addr.arpa,ou=pocitace,dc=sin,dc=cvut,dc=cz objectClass: top objectClass: dNSZone zoneName: 110.32.147.in-addr.arpa relativeDomainName: @ dNSTTL: 86400 nSRecord: services.sin.cvut.cz. nSRecord: apps.sin.cvut.cz. sOARecord: services.sin.cvut.cz. beny.sin.cvut.cz. 2003080301 10800 3600 604800 86400 Reverzn´ı dom´ena 147.32.111 m´a shodn´ y z´aznam, jen hodnota atributu zoneName je nastavena na hodnotu 111.32.147.in-addr.arpa Vlastn´ı z´aznam o poˇc´ıtaˇci ˇclena klubu m´a n´asleduj´ıc´ı tvar: dn: relativeDomainName=jsb,zoneName=sin.cvut.cz,ou=Hosts,dc=sin,dc=cvut,dc=cz objectClass: top objectClass: dNSZone objectClass: dhcpHost objectClass: kskComputer zoneName: sin.cvut.cz relativeDomainName: jsb aRecord: 147.32.110.45 aAAARecord: 2001:718:2:880:230:4fff:fe13:86ac aAAARecord: 2001:718:2:880:0000:5efe:9320:6e2d owner: employeeNumber=58014,ou=clenove,dc=sin,dc=cvut,dc=cz cn: jsb dhcpHWAddress: ethernet 00:30:4F:13:86:AC dhcpStatements: fixed-address 147.32.110.45 N´asleduj´ıc´ı z´aznam ukazuje konfiguraci serveru services.sin.cvut.cz, u ostatn´ıch server˚ u je situace podobn´a. Servery jsou totiˇz konfigurov´ any pro statickou konfiguraci IP adresy a nepotˇrebuj´ı tedy ˇz´adn´ y z´aznam pro DHCP server. dn: relativeDomainName=services,zoneName=sin.cvut.cz,ou=Hosts,dc=sin,dc=cvut,dc=cz objectClass: top objectClass: dNSZone objectClass: dhcpServer objectClass: kskServer zoneName: sin.cvut.cz relativeDomainName: services ARecord: 147.32.110.2 - 64 -
Karel Ben´ ak
5.5 Sch´ emata
AAAARecord: 2001:718:2:880:210:5aff:fed7:8380 AAAARecord: 2001:718:2:880:0000:5efe:9320:6e02 CNAMERecord: ns CNAMERecord: intranet CNAMERecord: ldap CNAMERecord: db owner: dc=sin,dc=cvut,dc=cz managerer: employeeNumber=95799,ou=clenove,dc=sin,dc=cvut,dc=cz cn: services dhcpServiceDN: ou=pocitace,dc=sin,dc=cvut,dc=cz Tyto relativnˇe komplikovan´e z´aznamy budou vyuˇz´ıvat DNS server a DHCP server. Pokud se v adres´aˇri zmˇen´ı nˇejak´a hodnota, servery okamˇzitˇe zareaguj´ı bez nutnosti generov´ an´ı nov´ ych konfiguraˇcn´ıch soubor˚ u a jejich znovunaˇc´ıt´ an´ı spojen´eho s pˇr´ıpadn´ ym restartem sluˇzby.
5.5.3
Majetek
Tato vˇetev slouˇz´ı pro rychl´e prohl´ıˇzen´ı evidence zaˇr´ızen´ı, jak´ ymi jsou napˇr. r˚ uzn´e switche, huby, scannery apod. top device cn – Obecn´ y n´azev, v tomto pˇr´ıpadˇe zastupuje n´azev zaˇr´ızen´ı, napˇr. switch serialNumber – S´eriov´e ˇc´ıslo zaˇr´ızen´ı seeAlso – Pokud je toto zaˇr´ızen´ı souˇc´ ast´ı jin´eho, pak je zde uvedeno jeho DN description – Detailn´ı popis zaˇr´ızen´ı kskDevice – Objektov´a tˇr´ıda pro podrobnˇejˇs´ı popis zaˇr´ızen´ı a jeho aktu´aln´ıch z´ap˚ ujˇcek. objectclass ( 1.3.6.1.4.1.16748.3.2.2.4 NAME ’kskDevice’ SUP device AUXILIARY DESC ’Majetek KSk’ MAY ( manager $ jpegPhoto $ roomNumber $ kskBorrower $ kskDateLoan $ kskDateReturn ) ) manager – DN spr´avce zaˇr´ızen´ı jpegPhoto – Foto zaˇr´ızen´ı ˇ ıslo m´ıstnosti, kde je zaˇr´ızen´ı um´ıstˇeno roomNumber – C´ kskBorrower – DN ˇclovˇeka, kter´emu bylo zaˇr´ızen´ı p˚ ujˇceno attributetype (1.3.6.1.4.1.16748.3.2.1.13 NAME ’kskBorrower’ DESC ’Osoba, kter´ e je zaˇ r´ ızen´ ı zap˚ ujˇ ceno’ EQUALITY distinguishedNameMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.12 SINGLE-VALUE )
- 65 -
Karel Ben´ ak
5.5 Sch´ emata
kskDateLoan – Datum kdy bylo zaˇr´ızen´ı p˚ ujˇceno attributetype (1.3.6.1.4.1.16748.3.2.1.14 NAME ’kskBorrower’ DESC ’Datum zap˚ ujˇ cen´ ı zaˇ r´ ızen´ ı’ EQUALITY generalizedTimeMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.24 SINGLE-VALUE ) kskDateReturn – Datum kdy bylo zaˇr´ızen´ı vr´aceno attributetype (1.3.6.1.4.1.16748.3.2.1.15 NAME ’kskDateReturn’ DESC ’Datum pˇ redpokl´ adan´ eho vr´ acen´ ı zaˇ r´ ızen´ ı’ EQUALITY generalizedTimeMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.24 SINGLE-VALUE ) Objektov´e tˇr´ıdy je moˇzn´e d´ale rozv´est pro konkr´etn´ı potˇreby a je tak´e moˇzn´e napˇr. vytvoˇrit tˇr´ıdu, zab´ yvaj´ıc´ı se speci´alnˇe rozboˇcovaˇci, pˇrep´ınaˇci apod. Pˇr´ıklad z´aznamu o skeneru: dn: serialNumber=123X321,ou=majetek,dc=sin,dc=cvut,dc=cz objectClass: top objectClass: device objectClass: kskDevice cn: Scanner HP serialNumber: 123X321 manager: employeeNumber=95799,ou=clenove,dc=sin,dc=cvut,dc=cz roomNumber: x13
5.5.4
Konfigurace
V t´eto vˇetvi jsou uloˇzeny obecnˇe sd´ılen´e informace jako jsou napˇr. n´azvy uˇzivatelsk´ ych skupin, vazby ˇc´ısel port˚ u a jejich n´azv˚ u z /etc/services apod. V pˇr´ıkladech jsou uvedeny jen nˇekter´e z´aznamy, jejich kompletn´ı seznam by byl pˇr´ıliˇs dlouh´ y. Jednotliv´e ˇc´ asti t´eto vˇetve mohou vyuˇz´ıt i uˇzivatel´e, kteˇr´ı chtˇej´ı m´ıt konfiguraci shodnou s konfigurac´ı hlavn´ıch server˚ u pomoc´ı nov´ an´e spoleˇcnosti PADL Software Pty Ltd. Pro migraci utilit nss ldap a pam ldap od jiˇz zmiˇ textov´ ych soubor˚ u do adres´aˇrov´eho stromu je moˇzn´e pouˇz´ıt Migration Tools. dn: ou=konfigurace,dc=sin,dc=cvut,dc=cz objectClass: top objectClass: organizationalUnit ou: konfigurace ou=Group – definice syst´emov´ ych skupin, kter´e by mˇely b´ yt na vˇsech serverech spoleˇcn´e dn: ou=Group,ou=konfigurace,dc=sin,dc=cvut,dc=cz objectClass: top objectClass: organizationalUnit ou: Group cn=users – z´akladn´ı skupina pro vˇsechny uˇzivatele
- 66 -
Karel Ben´ ak
5.5 Sch´ emata
dn: cn=users,ou=Group,ou=konfigurace,dc=sin,dc=cvut,dc=cz objectClass: top objectClass: posixGroup cn: users gidNumber: 100 cn=postfix – skupina uˇzivatele postfix dn: cn=postfix,ou=Group,ou=konfigurace,dc=sin,dc=cvut,dc=cz objectClass: top objectClass: posixGroup cn: postfix gidNumber: 20 ou=Networks – seznam s´ıt´ı patˇr´ıc´ıch do SU. Odpov´ıd´ a souboru /etc/networks dn: ou=Networks,ou=konfigurace,dc=sin,dc=cvut,dc=cz objectClass: top objectClass: organizationalUnit ou: Networks cn=sin.cvut.cz dn: cn=sin.cvut.cz,ou=Networks,ou=konfigurace,dc=sin,dc=cvut,dc=cz objectClass: top objectClass: ipNetwork cn: sin.cvut.cz ipNetworkNumber: 147.32.110.0 ipNetmaskNumber: 255.255.254.0 ou=Protocols – seznam protokol˚ u. Odpov´ıd´ a souboru /etc/protocols. Aktu´aln´ı seznam je moˇzn´e z´ıskat z http://www.iana.org dn: ou=Protocols,ou=konfigurace,dc=sin,dc=cvut,dc=cz objectClass: top objectClass: organizationalUnit ou: Protocols cn=icmp dn: cn=icmp,ou=Protocols,ou=konfigurace,dc=sin,dc=cvut,dc=cz objectClass: top objectClass: ipProtocol cn: icmp ipProtocolNumber: 1 description: Protocol icmp ou=Rpc – seznam port˚ u pro RPC. Odpov´ıd´ a souboru /etc/rpc. Aktu´aln´ı seznam je moˇzn´e z´ıskat z http://www.iana.org
- 67 -
Karel Ben´ ak
5.5 Sch´ emata
dn: ou=Rpc,ou=konfigurace,dc=sin,dc=cvut,dc=cz objectClass: top objectClass: organizationalUnit ou: Rpc cn=ypserv dn: cn=ypserv,ou=Rpc,ou=konfigurace,dc=sin,dc=cvut,dc=cz objectClass: top objectClass: oncRpc cn: ypserv oncRpcNumber: 100004 description: RPC ypprog ou=Services – seznam sluˇzeb a odpov´ıdaj´ıc´ıch ˇc´ısel port˚ u. Odpov´ıd´ a souboru /etc/services. Jejich ofici´ aln´ı seznam je moˇzn´e z´ıskat z http://www.iana.org dn: ou=Services,ou=konfigurace,dc=sin,dc=cvut,dc=cz objectClass: top objectClass: organizationalUnit ou: Users cn=ssh dn: cn=ssh,ou=Services,ou=konfigurace,dc=sin,dc=cvut,dc=cz objectClass: top objectClass: ipService cn: ssh ipServicePort: 22 ipServiceProtocol: tcp ipServiceProtocol: udp ou=Users – definice syst´emov´ ych u ´ˇct˚ u, kter´e by mˇely b´ yt na vˇsech serverech spoleˇcn´e. dn: ou=Users,ou=konfigurace,dc=sin,dc=cvut,dc=cz objectClass: top objectClass: organizationalUnit ou: Users cn=postfix – uˇzivatel postfix dn: cn=postfix,ou=Users,ou=konfigurace,dc=sin,dc=cvut,dc=cz objectClass: top objectclass: account objectClass: posixAccount cn: postfix uid: postfix uidNumber: 100 gidNumber: 20 homeDirectory: /var/spool/postfix - 68 -
Karel Ben´ ak
5.6 Spolupr´ ace se software
V kontejneru ou=Users, ou=konfigurace, dc=sin, dc=cvut, dc=cz budou uloˇzeny i z´aznamy o uˇzivateli manager, kter´ y je hlavn´ım spr´avcem adres´aˇrov´eho serveru a uˇzivateli proxyuser, kter´ y bude podle bezpeˇcnostn´ıho modelu slouˇzit jako prostˇredn´ık pˇri autentizaci uˇzivatel˚ u. dn: cn=manager,ou=Users,ou=konfigurace,dc=sin,dc=cvut,dc=cz objectClass: top objectClass: person cn: manager password: {MD5}XYZ== dn: cn=proxyuser,ou=Users,ou=konfigurace,dc=sin,dc=cvut,dc=cz objectClass: top objectClass: person cn: manager password: {MD5}ZYY== Pro uˇzivatele proxyuser je tˇreba nastavit pˇr´ısluˇsn´ a pr´ava ke ˇcten´ı uˇzivatelsk´ ych hesel: access to dn=".*,dc=sin,dc=cvut,dc=cz" attr=userPassword by dn="cn=manager,ou=Users,ou=konfigurace,dc=sin,dc=cvut,dc=cz" write by dn="cn=proxyuser,ou=Users,ou=konfigurace,dc=sin,dc=cvut,dc=cz" read by self write by * auth
5.6 5.6.1
Spolupr´ ace se software Operaˇ cn´ı syst´ emy
V prvn´ı ˇradˇe je tˇreba nastavit servery tak, aby spolupracovali s adres´aˇrov´ ymi sluˇzbami. Vzhledem k tomu, ˇze pouˇzit´e operaˇcn´ı syst´emy na centr´ aln´ıch serverech jsou typu UNIX, konkr´etnˇe Linux, je ˇreˇsen´ı pomˇernˇe snadn´e. Linux vyuˇz´ıv´ a sluˇzeb syst´emov´e knihovny glibc, kter´a poskytuje syst´emu mnoho standardizovan´ ych funkc´ı jazyka C, kter´e vyuˇz´ıvaj´ı r˚ uzn´e aplikace. Ta m´a nˇekolik knihoven, kter´e mohou pouˇz´ıvat r˚ uzn´e zdroje informac´ı. Napˇr. libnss files.so umoˇzn ˇuje z´ısk´av´an´ı informac´ı a konfigurac´ı z textov´ ych soubor˚ u, libnss dns.so umoˇzn ˇuje pouˇzit´ı syst´emu DNS pro pˇrevod jmen poˇc´ıtaˇc˚ u na IP adresy a libnss nis.so umoˇzn ˇuje z´ısk´avat potˇrebn´e informace z NIS serveru. Jiˇz nˇekolikr´at zmiˇ novan´a knihovna nss ldap od PADL Software Pty Ltd. umoˇzn ˇuje z´ısk´ av´ an´ı informac´ı z LDAP serveru. Knihovna nss ldap implementuje [RFC 2307], a proto umoˇzn ˇuje pouˇzit´ı adres´aˇrov´ ych sluˇzeb i na jin´ ych syst´emech neˇz-li je Linux, napˇr. Solaris, AIX, HP-UX ad. a spolupracuje napˇr. s [OpenLDAP], [JES], NDS, [AD] ad. Ke spr´avn´emu provozu knihovny je nutn´e nainstalovat nˇekterou ze syst´emov´ ych knihoven nutn´ ych pro pr´aci s LDAP sluˇzbami, napˇr. knihovny libldap.so, libldap r.so a liblber.so z projektu [OpenLDAP]. Pro pouˇzit´ı adres´aˇrov´ ych sluˇzeb v operaˇcn´ım syst´emu je v prvn´ım kroku nutn´e nastavit klienta knihovny nss ldap. Standardnˇe se jeho konfiguraˇcn´ı soubor jmenuje /etc/ldap.conf a obsahuje celou ˇradu parametr˚ u. host – IP adresy nebo n´azvy LDAP server˚ u oddˇelen´ ych mezerou, ze kter´ ych se budou z´ısk´ av´any potˇrebn´e informace, napˇr. ldap.sin.cvut.cz - 69 -
Karel Ben´ ak
5.6 Spolupr´ ace se software
base – DN koˇrenov´eho z´aznamu, napˇr. dc=sin, dc=cvut, dc=cz ldap version – Verze LDAP protokolu, standardnˇe nastavena na hodnotu 3 bind bindpwd ssl start tls – Direktiva pro pouˇzit´ı vrstvy TLS pˇri komunikaci s LDAP serverem ssl on tls cacertdir – Cesta k certifik´at˚ um certifikaˇcn´ıch autorit, napˇr. /etc/ssl/certs V tomto souboru je rovnˇeˇz moˇzn´e pomˇernˇe snadno vyuˇz´ıt pˇremapov´ an´ı n´azv˚ u atribut˚ u pouˇz´ıvan´ ych v adres´aˇrov´em serveru na n´azvy atribut˚ u pouˇz´ıvan´ ych jmenn´ ymi sluˇzbami podle [RFC 2307] V dalˇs´ım kroku je nutn´e aktualizovat soubor /etc/nsswitch.conf pro pouˇzit´ı adres´aˇrov´ ych sluˇzeb a u jednotliv´ ych konfiguraˇcn´ıch direktiv nastavit spr´avn´e hodnoty: # Z´ ısk´ an´ ı informac´ ı o~syst´ emov´ ych ´ uˇ ctech, napˇ red ze soubor˚ u /etc/passwd, # /etc/group a /etc/shadowm. Pokud v nich nebude z´ aznam nalezen, # pokus´ ı se syst´ em hledat v ldap serveru passwd: files ldap group: files ldap shadow: files ldap # !!!Varov´ an´ ı!!! Velmi citliv´ e na spr´ avn´ y pˇ reklad jmen, # bez nˇ ej by nemuselo doj´ ıt ke kontaktu s LDAP serverem. # libldap vyuˇ z´ ıv´ a vol´ an´ ı funkce gethostbyname(). hosts: files dns ldap # LDAP je autoritativn´ ı sluˇ zbou ve services: ldap [NOTFOUND=return] networks: ldap [NOTFOUND=return] protocols: ldap [NOTFOUND=return] rpc: ldap [NOTFOUND=return]
kter´ e files files files files
se m´ a dan´ y z´ aznam vyhledat # /etc/services # /etc/networks # /etc/protocols # /etc/rpc
uzn´ ych Doplˇ nkovou knihovnou je knihovna pam ldap. PAM moduly slouˇz´ı pro nastaven´ı r˚ variant pˇr´ıstupov´ ych pr´av k r˚ uzn´ ym sluˇzb´ am. V definici PAM modul˚ u pro jednotliv´e typy pˇr´ıstup˚ u standardnˇe uloˇzen´ ych v /etc/pam.d je nutn´e uv´est pouˇz´ıv´an´ı modulu pam ldap.so. V pˇriloˇzen´ ych konfiguraˇcn´ıch souborech jsou praktick´e uk´azky, jak pˇr´ısluˇsnou sluˇzbu nakonfigurovat pro spolupr´aci s LDAP. # /etc/pam.d/login auth required auth required auth sufficient auth required account sufficient
/lib/security/pam_securetty.so /lib/security/pam_nologin.so /lib/security/pam_ldap.so /lib/security/pam_unix_auth.so try_first_pass /lib/security/pam_ldap.so - 70 -
Karel Ben´ ak
account password password password session
5.6 Spolupr´ ace se software
required required required required required
/lib/security/pam_unix_acct.so /lib/security/pam_cracklib.so /lib/security/pam_ldap.so /lib/security/pam_pwdb.so use_first_pass /lib/security/pam_unix_session.so
V´ıce informac´ı o konfiguraci PAM lze nal´ezt napˇr. v ˇcl´ anku PAM – spr´ava autentizaˇcn´ıch mechanism˚ u2 .
5.6.2
DNS
Pro DNS bude pouˇzit software BIND od spoleˇcnosti ISC3 ve verzi 9.2.X, kter´a m´a podporu protokolu IPv6 a umoˇzn ˇuje vyuˇz´ıvat i jin´ ych zdroj˚ u dat pomoc´ı rozhran´ı sdb, neˇz-li jsou klasick´e textov´e soubory. Na serveru services.sin.cvut.cz bude um´ıstˇen prim´arn´ı DNS server, kter´ y bude pouˇz´ıvat data z´ısk´av´ana z LDAP serveru. Konkr´etnˇe se jedn´a o vˇetve: zoneName=sin.cvut.cz,ou=pocitace,dc=sin,dc=cvut,dc=cz – z´ona sin.cvut.cz zoneName=110.32.147.in-addr.arpa,ou=pocitace,dc=sin,dc=cvut,dc=cz – reverzn´ı z´ona pro 147.32.110.0 zoneName=111.32.147.in-addr.arpa,ou=pocitace,dc=sin,dc=cvut,dc=cz – reverzn´ı z´ona pro 147.32.111.0 Server DNS je nutn´e pˇreloˇzit s podporou protokolu LDAP. Postup u ´prav je k nalezen´ı na adrese http://klobouk.fsv.cvut.cz/~beny/ldap/ldap/ldap-8.html Do konfiguraˇcn´ıho souboru bindu je nutn´e pro z´onu sin.cvut.cz uv´est: zone "sin.cvut.cz" { type master; database "ldap ldap://127.0.0.1/zoneName=sin.cvut.cz, ou=pocitace,dc=sin,dc=cvut,dc=cz 86400"; }; A pro reverzn´ı dom´eny 110.32.147.in-addr.arpa a 111.32.147.in-addr.arpa: zone "110.32.147.in-addr.arpa" { type master; database "ldap ldap://127.0.0.1/zoneName=110.32.147.in-addr.arpa,\ ou=pocitace,dc=sin,dc=cvut,dc=cz 86400"; }; zone "111.32.147.in-addr.arpa" { type master; database "ldap ldap://127.0.0.1/zoneName=111.32.147.in-addr.arpa,\ ou=pocitace,dc=sin,dc=cvut,dc=cz 86400"; }; Pˇri jak´ekoliv zmˇenˇe nˇekter´eho ze z´aznam˚ u v LDAP se tyto zmˇeny projev´ı okamˇzitˇe, coˇz je v´ yhoda kterou pouˇzit´ı LDAP serveru pˇrin´ aˇs´ı. 2 3
http://www.root.cz/clanek/478 www.isc.org
- 71 -
Karel Ben´ ak
5.6.3
5.7 Z´ avˇ er
DHCP
DHCP server zajiˇst’uje pˇridˇelov´an´ı statick´ ych IP adres na z´akladˇe znalosti HW adresy poˇc´ıtaˇce. Je nakonfigurov´an tak, aby u ´daje z´ısk´ aval dynamicky z LDAP serveru. Tuto funkˇcnost je nutn´e zajistit podle n´avodu na adrese http://klobouk.fsv.cvut.cz/~beny/ ldap/ldap/ldap-9.html. D´ale je nutn´e naimportovat soubor se schematy do adres´aˇre /etc/openldap/schema a zajistit, aby daemon slapd pouˇ z´ıval i toto nov´e schema pouˇzit´ım direktivy include v konfiguraˇcn´ım souboru /etc/openldap.slapd.conf. V nˇem je rovnˇeˇz nutn´e serveru ozn´amit, ˇze m´a indexovat atributy s n´azvy dhcpHWAddress a dhcpClassData index index
dhcpHWAddress dhcpClassData
Pˇred vlastn´ım spuˇstˇen´ım slapd daemona je nutn´e upravit definici sch´emat objektov´ ych tˇr´ıd dhcpHost, dhcpServer, dhcpSubnet a dhcpOptions a zmˇenit na typ AUXILIARY, jinak doch´ az´ı ke konfliktu se tˇr´ıdou dnsZone. Po t´eto u ´pravˇe je nutn´e pomoc´ı slapdindex pˇreindexovat data v datab´azov´em backendu a n´aslednˇe lze spustit daemona slapd. Konfigurace DHCP daemona je pomˇernˇe jednoduch´ a, v konfiguraˇcn´ım souboru /etc/dhcpd.conf lze uv´ est n´asleduj´ıc´ı hodnoty: ldap-server "ldap.sin.cvut.cz"; # LDAP server ldap-port 389; # Port ldap-username "cn=proxyuser,ou=Users,ou=konfigurace,dc=sin,dc=cvut,dc=cz"; ldap-password "XYZ"; ldap-base-dn "dc=sin,dc=cvut,dc=cz"; ldap-method dynamic; Po sv´em spuˇst’en´ı je dhcpd server schopen vyˇrizovat poˇzadavky na pˇridˇelen´ı IP adresy dynamicky pomoc´ı LDAP serveru.
5.7
Z´ avˇ er
V t´eto kapitole je uvedena jen ˇc´ast informaˇcn´ıho syst´emu. K dynamick´emu z´ısk´ av´ an´ı dat pro DHCP a DNS servery bylo vzhledem k relativnˇe mal´emu poˇctu z´aznam˚ u pˇristoupeno pˇredevˇs´ım z d˚ uvodu jiˇz hotov´eho a vyzkouˇsen´eho ˇreˇsen´ı. Pokud by se mˇela data pro jednotliv´e servery generovat staticky do jejich konfiguraˇcn´ıch soubor˚ u, bylo by nutn´e napsat nˇekolik obsluˇzn´ ych skript˚ u nejsp´ıˇs za pouˇzit´ı jazyka Perl a vhodn´ ym zp˚ usobem vyˇreˇsit aktualizaci tˇechto soubor˚ u, napˇr. pomoc´ı syst´emov´eho programu cron. Vlastn´ı z´aznamy by se t´ım vˇsak zjednoduˇsily. Dalˇs´ı souˇc´ast´ı je sluˇzba smtp, kter´a slouˇz´ı k odes´ıl´ an´ı a pˇrij´ım´ an´ı doˇsl´e poˇsty. LDAP server se tu vyuˇz´ıv´a pro pˇreklad z poˇstovn´ıch alias˚ u na syst´emov´e u ´ˇcty a opaˇcne. Dalˇs´ım vyuˇzit´ım LDAPu v smtp je autentizace pomoc´ı protokolu SMTP AUTH, d´ıky kter´emu budou moci uˇzivatel´e odes´ılat svou poˇstu i mimo kolejn´ı s´ıt’.
- 72 -
´ ER ˇ KAPITOLA 6. ZAV
Karel Ben´ ak
Kapitola 6
Z´ avˇ er Pˇri psan´ı t´eto pr´ace jsem mohl z´ uroˇcit sv´e zkuˇsenosti se spr´avou a n´avrhem adres´aˇrov´eho serveru. Z´aroveˇ n jsem r´ad, ˇze se m´e n´avrhy ˇreˇsen´ı spr´avy ˇclen˚ u Klubu Sinkuleho koleje a jejich poˇc´ıtaˇc˚ u podaˇrilo realizovat a t´ım pˇrispˇet sv´ ym koleg˚ um a n´astupc˚ um na pozici administr´ator˚ u kolejn´ı s´ıtˇe ke zjednoduˇsen´ı a zpˇrehlednˇen´ı spr´avy uˇzivatel˚ u a aplikac´ı. Bohuˇzel, t´ema adres´aˇrov´ ych sluˇzeb je natolik rozs´ahl´e a komplexn´ı, ˇze je velmi obt´ıˇzn´e popsat vˇsechny d˚ uleˇzit´e informace v rozsahu diplomov´e pr´ace a bylo by nutn´e poˇc´ıtat sp´ıˇse s objemem rozs´ahlejˇs´ı publikace. Vyuˇzit´ı adres´aˇrov´ ys sluˇzeb znamen´a velk´ y pˇr´ınos pro spr´avu informaˇcn´ıho syst´emu, kter´ y by vyuˇz´ıvalo v´ıce neˇz-li 50 uˇzivatel˚ u. Mezi administr´atory a n´avrh´ aˇri syst´em˚ u je bohuˇzel mal´a povˇedomost o jeho moˇznostech a v´ yhod´ach. Podle podle m´eho n´azoru s t´ım souvis´ı ˇc´ asteˇcn´ a ˇci u ´pln´a neznalost standardn´ıch protokol˚ u a zamˇeˇren´ı pouze na firemn´ı produkty, pro jejichˇz funkˇcnost nen´ı tˇreba hlubˇs´ıch znalost´ı.
- 73 -
Karel Ben´ ak
LITERATURA
Literatura [UDLDAPDS] Timothy A. Howes, Ph.D., Mark C. Smith, Gordon S. Good: Understanding and Deploying LDAP Directory Services, Second Edition Vydavatelstv´ı Addison Wesley, 2003 ISBN 0672-32316-8 [LDAPSA] Gerald Carter: LDAP System Administration Vydavatelstv´ı O’Reilly, 2003 ISBN 1-56592-491-6 [LDAPDE] Brian Arkills: LDAP Directories Explained: An Introduction and Analysis Vydavatelstv´ı Addison Wesley, 2003 ISBN 0-201-78792-X [PERL] Larry Wall, Tom Christiansen, Randal L. Schwartz: Programov´ an´ı v jazyce Perl Vydavatelstv´ı ComputerPress ISBN 80-85896-95-8 [BfHA] Evan Marcus, Hal Stern: Blueprints for High Availibility Vydavatelstv´ı John Wiley & Sons, Inc. ISBN 0471-35601-8 [Sitera 1] Jiˇr´ı Sitera: Adres´ aˇ rov´ e sluˇ zby - u ´ vod do problematiky http://www.cesnet.cz/doc/techzpravy/2000-4/ [Sitera 2] Jiˇr´ı Sitera: Vyuˇ zit´ı adres´ aˇ rov´ ych sluˇ zeb (LDAP) v projektu MetaCentrum http://www.cesnet.cz/doc/techzpravy/2001/02/ [Sitera 3] Jiˇr´ı Sitera: LDAP a Kerberos http://www.cesnet.cz/doc/techzpravy/2002/ldapkrb/ldapkrb.pdf [Dostalek] Libor Dost´ alek a kolektiv: Velk´ y pr˚ uvodce protokoly TCP/IP Bezpeˇ cnost 2. aktualizovan´e vyd´an´ı - 74 -
Karel Ben´ ak
LITERATURA
Vydavatelstv´ı Computer Press, Praha 2003 ISBN 80-7226-84-X
X.500 [X.501] X.501: The Models [X.509] X.509: Authentication Framework [X.511] X.511: Abstract Service Definition
RFC [RFC 1274] RFC 1274 – The COSINE and Internet X.500 Schema [RFC 2222] RFC 2222 – Simple Authentication and Security Layer (SASL) [RFC 2247] RFC 2247 – Using Domains in LDAP/X.500 Distinguished Names [RFC 2251] RFC 2251 – Lightweight Directory Access Protocol (v3) [RFC 2252] RFC 2252 – Lightweight Directory Access Protocol (v3): Attribute Syntax Definitions [RFC 2253] RFC 2253 – Lightweight Directory Access Protocol (v3): UTF–8 String Representation of Distinguished Names [RFC 2254] RFC 2254 – The String Representation of LDAP Search Filters [RFC 2255] RFC 2255 – The LDAP URL Format [RFC 2256] RFC 2256 – A Summary of the X.500(96) User Schema for use with LDAPv3 [RFC 2307] RFC 2307 – An Approach for Using LDAP as a Network Information Service [RFC 2444] RFC 2444 – The One-Time-Password SASL Mechanism [RFC 2798] RFC 2798 – Definition of the inetOrgPerson LDAP Object Class [RFC 2829] RFC 2829 – Authentication Methods for LDAP [RFC 2830] RFC 2830 – Lightweight Directory Access Protocol (v3): Extension for Transport Layer Security [RFC 2849] RFC 2849 – LDIF [RFC 3377] RFC 3377 – Lightweight Directory Access Protocol (v3): Technical Specification
Dokumentace na WWW [1] OpenLDAP http://www.openldap.org/doc [2] SunOne Directory Server 5.2 Deployment Guide http://docs-pdf.sun.com/816-6700-10/816-6700-10.pdf - 75 -
Karel Ben´ ak
LITERATURA
[3] Sun ONE Directory Server 5.2 Getting Started Guide http://docs-pdf.sun.com/816-6696-10/816-6696-10.pdf [4] Sun ONE Directory Server 5.2 Installation and Tuning Guide http://docs-pdf.sun.com/816-6697-10/816-6697-10.pdf [5] Sun ONE Directory Server 5.2 Administration Guide http://docs-pdf.sun.com/816-6698-10/816-6698-10.pdf [6] The JNDI Tutorial Building Directory-Enabled Java Applications http://java.sun.com/products/jndi/tutorial/index.html
Software Serverov´ y software [OpenLDAP] OpenLDAP – OpenSource implementace LDAP serveru, klientu a API. http://www.openldap.org [TinyLDAP] TinyLDAP [JES] Sun Java Enterprise Directory Server – http://www.sun.com [AD] Microsoft Active Directory – S´ıt’ov´ y adres´aˇrov´ y server pro operaˇcn´ı syst´emy MS Windows http://www.microsoft.com [7] IBM Tivoli – Adres´aˇrov´a sluˇzba od IBM Editory a prohl´ıˇ zeˇ ce [GQ] GQ – klient pro prohl´ıˇzen´ı a editaci LDAP z´aznam˚ u (strana 45.) http://biot.com/gq Klienti V´ yvojov´ e prostˇ redky [Doxygen] Doxygen – software pro generov´ an´ı dokumentace [OpenSSL] OpenSSL – Open source SSL/TLS knihovna http://www.openssl.org [GNU TLS] GNU TLS – Alternativa k OpenSSL http://www.gnu.org/software/gnutls [Cyrus SASL] Cyrus SASL http://asg.web.cmu.edu/sasl/ [GNU SASL] GNU SASL http://www.gnu.org/software/gsasl [MIT Kerberos] MIT Kerberos http://web.mit.edu/kerberos - 76 -
Karel Ben´ ak
LITERATURA
[Heimdal] Heimdal Kerberos http://www.pdc.kth.se/heimdal/ [GNU Shishi] GNU Shishi http://www.gnu.org/software/shishi [GNU GSS] GNU Generic Security Service Library http://www.gnu.org/software/gss [LibNTLM] LibNTLM http://josefsson.org/libntlm [JLDAP] JLDAP http://www.openldap.org/jldap [JDBC LDAP] JDBC-LDAP http://www.openldap.org/jdbcldap [Perl-LDAP] Perl-LDAP http://ldap.perl.org [Python-LDAP] Python-LDAP http://python-ldap.sourceforge.net
- 77 -