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:
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).
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.
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.