Bevezető
LDAP információs modell
LDAP séma
LDAP vs. SQL
Abban a pillanatban, hogy egy IT infrastruktúrában egynél több rendszerkomponens (számítógép, hálózati eszköz stb.) jelenik meg, amiken felhasználói azonosítást kell végezni, azonnal felmerül az igény, hogy ezt a feladatot központosított módon oldjuk meg. A központi nyilvántartás mindenképpen valamilyen adatbázisra kell, hogy épüljön, mely tartalmazni fogja a felhasználók természetes adatait (név, cím, telefonszám stb.), a biztonságos azonosításhoz szükséges adatokat (jelszó, publikus kulcs stb.) ill. néhány alkalmazás-specifikus paramétert. Vajon melyik a legalkalmasabb megoldás erre a feladatra?
1984-ben az ITU és az ISO közösen kezdett dolgozni egy szabvány tervezeten melynek célja a fent bemutatott adatok tárolására, visszakeresésére alkalmas, biztonságos és elosztott megoldást adjon. Ez a szabvány az X.500 nevet viseli és 1998-ban jelent meg az első változata. Maga az X.500 egy áttekintést tartalmaz és a koncepciót fogalmazza meg a további X.5xx szabványok (X.501, X.509, X.511, X.518, X.519, X.520, X.521, X.525, X.530) foglalkoznak a részletkérdésekkel. Ezek közül talán az X.509 azonosítási keretrendszerrel kapcsolatos szabvány a legismertebb, hiszen a jelenleg használatos publikus kulcsú azonosítási rendszerek az ennek a szabványnak megfelelő tanúsítványokat használják (SSL, TLS stb.). A teljes szabvány gyűjtemény 1997-ben megjelent hármas változata (X.500v3) terjedt el szélesebb körben, de 2001-ben is jelent meg hozzá kiegészítés a negyedik változatban.
Maga az X.500 szabvány egy hierarchikus, objektum orientált adatbázist definiál névtárnak (directory) nevezzünk. Ilyen típusú adatbázisokkal nap, mint nap találkozhatunk: állomány rendszer, DNS stb. Az adatbázis szerkezete egy kliens-szerver modellt követ. Az adatbázis szervereket névtár szolgáltatás ügynököknek (Directory Service Agent - DSA) nevezzük, a klienseket pedig névtár felhasználó ügynöknek (Directory User Agent - DUA). A kliens és a szerver egymással a névtár hozzáférési protokollt (Directory Access Protocol - DAP) beszélik. Maga a DAP a teljes OSI hét rétegű adatmodellt definiálja és használja.
A teljes X.500 szabványrendszer megvalósítására is léteznek rendszerek és számos esetben használatuk indokolható is. Azonban a 1990-es évek elején a Michigan egyetem egy csapata úgy döntött, hogy a teljes X.500 DAP protokoll helyett, annak egy egyszerűsített változatát valósítja meg, ami az akkor már létező és nagy népszerűségnek örvendő TCP/IP protokollra épül az OSI helyett. E mellett még néhány további egyszerűsítést is végrehajtottak a protokoll adatmodelljében és végül 1993-ra így született meg a 1487-es számú RFC, ami a LDAP azaz a Lightweight Directory Access Protocol első változatát írta le. Ez egy egész sor RFC követte, ami az LDAP-al kapcsolatos részletkérdéseket igyekezett tisztázni. Az így kialakult szabvány:
Attribútum: igen
LDAP osztály: van neve, vannak kötelező és nem kötelező attribútumai, van OID-je. Az osztály egy konkrét példányának van DN-je.
Öröklődés: A leírtak nem az öröklődéssel, hanem a DIT szerkezetéből adódnak, semmi köze az öröklődéshez. Az öröklődés az osztályokra vonatkozik, azaz, ha People osztály kötelező attribútuma a CommonName és az PhoneNumber akkor, ha van egy OrganizationalPeople nevű osztály, ami a People osztálytól öröklődik, akkor annak is ezek kötelező attribútumai lesznek, de lehet ennek neki további kötelező attribútuma is. A DIT egy eleme, pedig az osztályok közül egy vagy többet valósít meg.
Az attribútumok leírása kicsit tömör. Remélem, a következőre gondolsz:
Egy attribútum:
suly=89
Az attribútum neve suly, típusa valós szám, értéke 89.
Egyenlők, ha a különbségük egynél kisebb
Ez stimmt?
Egy LDAP osztály:
- áll sok attribútumból
- meg egy azonosítóból, ami a fa hozzá vezető csomópontjainak jegyzéke, aka DN.
Az egyszerű öröklődés:
Ha az N-edik szinten a fában van egy allat nevű osztály, aminek a DN-je legyen mondjuk
planet=earth,category=living_things,kingdom=animals
Ez egy csomópontot definiál, ahol több ilyen információ is lehet, például van planet=earth,category=living_things,kingdom=plants is.
A category egy csomópont a fában (DIT), és ebben a cosmópontban van több adat, mint pl. a living_things, rocks, sky, ghosts?
A kingdom egy másik csomópont, amiben van mondjuk a plants meg az animals, mint adat?