Az LDAP-címtárfa szerkezeteAz LDAP-címtárfa szerkezete

Az LDAP-kiszolgáló működésének és az adattárolás módjának jobb megismeréséhez meg kell érteni a kiszolgáló adatszervezési módját, valamint azt, hogy a szerkezet segítségével az LDAP tudja biztosítani a szükséges adatok gyors elérését. Az LDAP-beállítás megfelelő működéséhez az alapvető LDAP-terminológiát ismernie kell. Ez a rész az LDAP-címtárfa alapvető elrendezését mutatja be, és bemutatja az LDAP-vel kapcsolatban használt legfontosabb kifejezéseket. Ha már ismeri valamennyire az LDAP-t és csak az LDAP-környezet SUSE Linux Enterprise rendszeren való beállításával kíván foglalkozni, akkor hagyja ki ezt a bevezető részt.

Az LDAP-címtárak faszerkezetre épülnek. A címtár minden bejegyzésének (objektumának) meghatározott helye van a hierarchiában. Ezt a hierarchiát az X.500 szabvány elnevezésével címtárinformációs fának (directory information tree, röviden DIT) hívjuk. A keresett bejegyzés teljes elérési útját, amely egyértelműen azonosítja, megkülönböztetett névnek vagy DN-nek (distinguished name) hívjuk. A bejegyzés elérési útja mentén lévő csomópontok neve relatív megkülönböztetett név vagy RDN (relative distinguished name). Az objektumok általában két fő típusba sorolhatók:

tároló (konténer)

Ezek az objektumok maguk is tartalmazhatnak további objektumokat. Ilyen objektumosztályok a root (a címtárfa gyökéreleme, amely igazából nem is létezik), a c (ország), az ou (szervezeti egység) és a dc (tartománykomponens). A modell igazából nagyban hasonlít egy fájlrendszer könyvtáraira (mappáira).

levél

Ezek az objektumok egy ág legvégén helyezkednek el, alattuk már nincsenek további objektumok. Néhány példa: person (személy), InetOrgPerson (személy kifejezetten internetes és vállalati attribútumokkal) és groupofNames (nevek csoportja).

A címtárhierarchia legtetején a root gyökérelem található: root. Ennek alárendelt elemei a következők lehetnek: c (country, ország), dc (domain component, tartománykomponens) vagy o (organization, szervezet). Az LDAP-címtárfa felépítését sokkal egyszerűbb egy ábrán bemutatni: 35.1. ábra - Az LDAP-címtár szerkezete.

35.1. ábra - Az LDAP-címtár szerkezete

Az LDAP-címtár szerkezete

Az ábrán egy képzeletbeli címtárinformációs fa látható. Három szinten láthatók bejegyzések. Minden bejegyzés a kép egy mezőjének felel meg. A képzeletbeli Geeko Linux nevű SUSE-alkalmazott teljes, érvényes megkülönböztetett neve ebben az esetben cn=Geeko Linux,ou=doc,dc=example,dc=com. Ez úgy keletkezik, hogy a cn=Geeko Linux RDN-hez (relatív megkülönböztetett névhez) hozzáadjuk az előző bejegyzés megkülönböztetett nevét (ou=doc,dc=example,dc=com).

Azt, hogy milyen típusú objektumok tárolhatók a DIT-ben, a séma határozza meg. Az objektum jellegét pedig az objektumosztály határozza meg. Az objektumosztály definiálja, hogy egy adott objektumnak milyen kötelező és opcionális attribútumai vannak. A sémának tehát minden, a kívánt alkalmazási helyzetben használt objektumosztály és attribútum definícióját tartalmaznia kell. Létezik néhány általános séma (lásd: RFC 2252 és 2256). Létrehozhatók azonban egyedi sémák is, illetve több, egymást kiegészítő séma is használható, ha ezt követeli meg a környezet, amelyben az LDAP-kiszolgálónak működnie kell.

A 35.1. táblázat - Általánosan használt objektumosztályok és attribútumok táblázat röviden bemutatja a példában használt a példában használt core.schema és inetorgperson.schema objektumosztályt, kötelező attribútumaikat és az attribútumok érvényes értékeit.

35.1. táblázat - Általánosan használt objektumosztályok és attribútumok

Objektumosztály

Jelentés

Példabejegyzés

Kötelező attribútumok

dcObject

domainComponent (tartomány-névkomponensek)

példa

dc

organizationalUnit

organizationalUnit (szervezeti egység)

doc

ou

inetOrgPerson

inetOrgPerson (intranetes vagy internetes személyes adatok)

Geeko Linux

sn és cn


A 35.1. példa - A schema.core kivonata a sémadirektíva egy részét mutatja be, magyarázatokkal együtt (sorszámozás csak a magyarázat érdekében).

35.1. példa - A schema.core kivonata

#1 attributetype (2.5.4.11 NAME ( 'ou' 'organizationalUnitName')
#2        DESC 'RFC2256: organizational unit this object belongs to'
#3        SUP name )

...
#4 objectclass ( 2.5.6.5 NAME 'organizationalUnit'
#5        DESC 'RFC2256: an organizational unit'
#6        SUP top STRUCTURAL
#7        MUST ou
#8 MAY (userPassword $ searchGuide $ seeAlso $ businessCategory 
    $ x121Address $ registeredAddress $ destinationIndicator 
    $ preferredDeliveryMethod $ telexNumber 
    $ teletexTerminalIdentifier $ telephoneNumber 
    $ internationaliSDNNumber $ facsimileTelephoneNumber 
    $ street $ postOfficeBox $ postalCode $ postalAddress 
    $ physicalDeliveryOfficeName
    $ st $ l $ description) )
...

A példában az organizationalUnitName attribútumtípust és a hozzá tartozó organizationalUnit objektumosztályt tekintjük meg. Az 1. sor az attribútum nevét, az egyedi OID-t (numerikus objektumazonosító) és az attribútum rövidítését tartalmazz OID.

A 2. sor egy rövid leírást ad az attribútumról a DESC kulcsszó után. Megemlíti a vonatkozó RFC-t, amelyre a definíció épül. A 3. sorban a SUP kulcsszó jelzi a felsőbb szintű attribútumtípust, amelyhez ez az attribútum tartozik.

Az organizationalUnit objektumosztály definíciója a 4. sorban kezdődik, ugyanúgy, mint az attribútum definíciójában, egy OID-vel és az objektumosztály nevével. Az 5. sor az objektumosztály rövid leírását tartalmazza. A 6. sor a SUP top bejegyzéssel jelzi, hogy ez az objektumosztály nem másik osztály alárendeltje. A 7. sor a MUST kulcsszótól kezdődően felsorolja az összes olyan attribútumtípust, amelyet az organizationalUnit típusú objektumok esetében kötelező megadni. A 8. sor a MAY kulcsszótól kezdődően megjeleníti az összes attribútumtípust, amely az objektumosztályban használható.

A sémák használatáról egészen kiváló bevezetést olvashat az OpenLDAP dokumentációjában. Ha a csomag már telepítve van, akkor a dokumentáció az /usr/share/doc/packages/openldap2/admin-guide/index.html fájlban tekinthető meg.