26.2 Az LDAP-címtárfa szerkezete

Az LDAP-kiszolgáló mukö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 megfelelo muködéséhez az alapveto LDAP-terminológiát ismernie kell. Ez a rész az LDAP-címtárfa alapveto elrendezését mutatja be, és bemutatja az LDAP-vel kapcsolatban használt legfontosabb kifejezéseket. Ha rendelkezik LDAP háttérismerettel, és csak az LDAP-környezet openSUSE rendszeren való beállításával kíván foglalkozni, akkor hagyja ki ezt a bevezeto részt. Folytassa az olvasást a Szakasz 26.3, LDAP-kiszolgáló beállítása YaST segítségével vagy Szakasz 26.7, LDAP-kiszolgáló beállítása kézzel helyeken.

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értelmuen 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évo csomópontok neve relatív megkülönböztetett név vagy RDN (relative distinguished name). Az objektumok általában két fo típusba sorolhatók:

konténer (container)

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 (leaf)

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övetkezok 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 egyszerubb egy ábrán bemutatni: Ábra 26-1.

Ábra 26-1 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 mezojének felel meg. A képzeletbeli Geeko Linux nevu 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 elozo 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ötelezo é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). Az LDAP RFC definiál néhány általánosan használt sémát lásd pl. RFC 4519). Ezenfelül további sémák is elérhetok számos más alkalmazási helyzethez (pl. Samba, NIS helyettesítése stb.). Létrehozhatók azonban egyedi sémák is, illetve több, egymást kiegészíto séma is használható, ha ezt követeli meg a környezet, amelyben az LDAP-kiszolgálónak muködnie kell.

A Táblázat 26-1 táblázat röviden bemutatja a példában használt core.schema és inetorgperson.schema objektumosztályt, kötelezo attribútumaikat és az attribútumok érvényes értékeit.

Táblázat 26-1 Általánosan használt objektumosztályok és attribútumok

Objektumosztály

Jelentés

Példabejegyzés

Kötelezo attribútumok

dcObject

domainComponent (tartomány-névkomponensek)

pelda

dc

organizationalUnit

organizationalUnit (szervezeti egység)

doc

ou

inetOrgPerson

inetOrgPerson (intranetes vagy internetes személyes adatok)

Geeko Linux

sn és cn

A Példa 26-1 a sémadirektíva egy részét mutatja be, magyarázatokkal együtt (sorszámozás csak a magyarázat érdekében).

Példa 26-1 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 tartalmazó 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 felsobb szintu attribútumtípust, amelyhez ez az attribútum tartozik.

Az organizationalUnit objektumosztály definíciója a 4. sorban kezdodik, 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 kezdodoen felsorolja az összes olyan attribútumtípust, amelyet az organizationalUnit típusú objektumok esetében kötelezo megadni. A 8. sor a MAY kulcsszótól kezdodoen 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 tekintheto meg.