LDAP bevezető, elmélet

Tartalom

Bevezető
LDAP információs modell
LDAP séma
LDAP vs. SQL

Bevezető

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:

  • meghatározza az adatok hozzáférésére használható hálózati protokollt,
  • meghatározza a tárolandó információ szerkezetét és annak ASCII reprezentációját (LDIF),
  • megmondja, milyen elnevezési konvenciót használhatunk az adatelemek megnevezésére (distinguished name - DN),
  • definiál egy biztonságos azonosítási mechanizmust (binding),
  • meghatározza az adatok elosztásának módját és az adatokon végezhető elosztott műveleteket,
  • megmondja, hogyan lehet az információs modellt és a hálózati protokollt kiterjesztésekkel ellátni,
  • kvázi szabványos C és JAVA API határoz meg
Szalai Ferenc | 2006, május 29 - 08:15 | |
Tomka Gergely (nem ellenőrzött), 2006, június 23 - 15:13

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?

Szalai Ferenc, 2006, június 23 - 15:36

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.

Anonymous (nem ellenőrzött), 2006, június 23 - 16:04

Nem akarsz erről is kis ábrát rajzolni? Vagy rjazoljak én, és kijavítod?

Szalai Ferenc, 2006, június 23 - 16:28

Ha rajzolsz megköszönöm és beleteszem.

Hozzászólás megjelenítési lehetőségek

A választott hozzászólás megjelenítési mód a „Beállítás” gombbal rögzíthető.