Az OpenLDAP szoftver a könnyűsúlyú címtár-hozzáférési protokoll (LDAP) egyik szabad, nyílt forráskódú megvalósítása, melyet az OpenLDAP Alapítvány fejleszt. A saját, BSD-stílusú, Open LDAP Public License alatt terjesztik.http://www.openldap.org/software/release/license.html Az LDAP egy platform független protokoll. Számos Linux disztribúció tartalmazza az OpenLDAP-ot az címtár szolgáltatás megvalósításához. A szoftver még számos rendszeren: BSD-variánsok, AIX, Android, HP-UX, Mac OS X, Sun Solaris, Microsoft Windows (NT és leszármazottai, pl. 2000, XP, Vista, 7 stb.), és z/OS.

A projekt története és az alapcsapat Az OpenLDAP Projektethttp://www.openldap.org/project Kurt Zeulenga hozta létre 1998-ban.http://www.openldap.org/project/kurt A projektet az University of Michigan referencia LDAP megvalósításából kiindulva kezdték el, az UoM-en egy hosszútávú projekt foglalkozott az LDAP protokoll fejlesztésével.

2006 áprilisában három tagból állt az alapcsapat: Howard Chu (vezető tervező),http://www.highlandsun.com/hyc Pierangelo Masarati, és Kurt Zeilenga. Tovább fontos és aktív közreműködők: Luke Howard, Hallvard Furuseth, Quanah Gibson-Mount, és Gavin Henry.

Az OpenLDAP szoftver részei Az OpenLDAP három fő komponensből épül fel:

slapd – önálló LDAP démon és a hozzá tartozó modulok és eszközök LDAP protokollt és az ASN.1 Basic Encoding Rules (BER)-t megvalósító függvénykönyvtárak kliens szoftverek: ldapsearch, ldapadd, ldapdelete, és mások

Továbbá az OpenLDAP projekt otthont ad egyéb alprojekteknek is:

JLDAP – LDAP osztálykönyvtár Java nyelvhez JDBC-LDAP – Java JDBC – LDAP híd driver ldapc++ - LDAP osztálykönyvtár C++ nyelvhez

Háttérrendszerek Koncepció

A kezdetekben az OpenLDAP szerver (slapd, az önálló [standalone] LDAP démon) felépítése két részre volt osztva, a frontend, ami hálózati kapcsolatokat és a protokollt kezeli, illetve a backend (háttérrendszer), ami kizárólag az adattárolással foglalkozik. Moduláris felépítésű, így nem csak hagyományos adatbázisokkal, de más technológiákkal is összekapcsolható.

Megjegyzés: Korábbi (1.x) kiadásokban, a "háttérrendszer" és az "adatbázis" kifejezéseket, gyakran használták szinonimaként. Hogy precízek legyünk, a "háttérrendszer" tárolási interfészek egy csoportja, és az "adatbázis" egy ezeket megvalósító példány. A slapd szerver tetszőlegesen sok háttérrendszert használhat egyszerre, és minden egyes backend tetszőlegesen sok példányát (vagyis tetszőlegesen sok adatbázist) használhat egyszerre.

Elérhető háttérrendszerek Jelenleg 16 különféle háttérrendszer érhető el az OpenLDAP disztribúciókba, és számos külső gyártótó kínál saját tárolót. A sztenderd háttérrendszerek nagyjából három kategóriába sorolhatók:

Adattárolók – ezek ténylegesen adatot tárolnak back-bdb: az első tranzakciós háttérrendszer az OpenLDAPhoz, a BerkeleyDB-n alapul back-hdb: a back-bdb egy variánsa, amely teljesen hierarchikus és támogatja a részfa átnevezést back-ldif: egyszerű LDIF fájlokra alapul back-ndb: tranzakciós háttérrendszer, ami a MySQL NDB klaszter motorján alapul Proxy háttérrendszerek – ezek átjáróként szolgálnak más adattároló rendszerekhez back-ldap: egyszerű proxy más LDAP szerverekhez back-meta: proxy meta-könyvtár képességekkel back-passwd: a Unix rendszer passwd and group adatait használja back-relay: átirányít más slapd háttérrendszerre (belül) back-sql: tetszőleges SQL adatbázishoz kapcsolódik Dinamikus háttérrendszerek – ezek menet közben állítják elő az adatokat back-config: slapd konfiguráció LDAP-on keresztül back-dnssrv: LDAP szerver keresése DNS-ben back-monitor: slapd statisztika LDAP-on keresztül back-null: a Unix /dev/null –hoz hasonló, tevékenység nélküli háttérrendszer back-perl: perl modult futtat az LDAP kérés megválaszolásához back-shell: shell szkriptet futtat az LDAP kérés megválaszolásához back-sock: átirányítja az LDAP kéréseket IPC-n keresztül más démonoknak (tetszőleges)

Néhány a régebbi OpenLDAP kiadásokban szereplő háttérrendszer már nem használatos, például a back-ldbm, amit az eredeti UMich kódból örökölt, illetve a back-tcl, ami a back-perl és back-shell-hez hasonlóan TCL szkriptet futtatott.

A gyakorlatban, a –perl, -shell, és –sock háttérrendszerek tetszőleges programnyelven készült modulok készítését teszi lehetővé, így végtelen lehetőségeket kínál a személyre szabásra. Gyakorlatilag így a slapd egy RPC motorrá válik, egy kompakt, jól definiált és széles körű API-val.

Overlays Koncepció Alapesetben az LDAP kéréseket a frontend fogadja, dekódolja, majd továbbítja a háttérrendszernek feldolgozásra. Amikor a háttérrendszer elkészült a válasszal, átadja a frontendnek, ami elküldi az eredményt az LDAP kliensnek. Az overlay egy olyan programkód, amit a frontend és a háttérrendszer közé lehet befűzni. Így extra műveleteket ékelhetünk a folyamatba, mikor a háttérrendszer megkapja a kérést, illetve fordítva, mikor a frontend a választ, az overlayek elérik a slapd belső API-ját, és a frontend és backend minden műveletét hívhatja. Egyszerre több overlay is használható, kialakítva egy művelet sorozatot a frontend és backend között.

Az overlayek kiterjeszthetik a háttérrendszer képességeit anélkül, hogy teljesen újat kellene írni, és új képességeket adhat kompakt, könnyen debuggolható, és karbantartható módon. Mióta az OpenLDAP 2.2-ben megjelent ez a lehetőség a közösség számos overlayt készített.

Elérhető overlayek Jelenleg 21 overlay található az alap OpenLDAP kiadásnak, és további 15 a felhasználók által készített szekcióban, és még több vár elfogadásra, hogy bekerülhessenek.

Az alapkiadásban szereplő overlayek: accesslog: naplózza a szerver tevékenységeit, egy másik LDAP adatbázisba, így LDAP-on keresztül elérhetőek a naplóállományok auditlog: a szerver tevékenységeinek naplózása egyszerű szövegfájlba chain: intercept referrals and chain them instead; code is part of back-ldap collect: X.500 stílusú kollektív attribútumokat valósít meg (mint a Netscape Class Of Service) constraint: korlátozza egyes attribútumok lehetséges értékeit (értékhalmaz, -tartomány) dds: dinamikus adat szolgáltatás (dynamic data service) – rövid élettartamú, önmaguktól lejáró bejegyzések deref: a keresés eredményeképpen visszakapott hivatkozott bejegyzésekről szolgáltat adatot dyngroup: egyszerű dinamikus csoporttámogatás dynlist: kifinomultabb dinamikus csoporttámogatás és mások memberof: a memberOf (tagja) és hasonló hivatkozó attribútumok támogatása pcache: keresési eredmények gyorsító tárazása ppolicy: LDAP jelszó szabályzat (jelszó minősége, élettartama stb.) refint: hivatkozási integritás retcode: előre meghatározott válaszkódot ad meg az egyes műveletekhez, kliensek debuggolásához használatos rwm: rewrite modul, LDAP adatok különböző álneveihez seqmod: szerializálja az írási műveleteket az egyes bejegyzésekhez sssvlv: szerver oldali rendezés és virtuális listanézet (Server Side Sorting and Virtual List Views) syncprov: (Syncrepl Provider) a replikáció mester oldalát valósítja meg translucent: Semi-transparent pass-through, for locally augmenting data on a proxied server (?) unique: egyediség kikényszerítése egy fában lévő attribútumokon valsort: egy attribútum értékeinek rendezési sorrendjét tartja karban A felhasználók által készített overlayek: addpartial: fogadja az Add (hozzáadás) kéréseket és Modified (módosítás) kéréssé alakítja, ha a bejegyzés már létezik allop: visszaadja az összes működési jellemzőt, azon kliensek számára, akik nem tudják, hogyan kérjék azokat autogroup: dinamikusan menedzselt statikus csoport cloak: a külön nem kért attribútumok elrejtése a keresésekben denyop: megtagadja a tiltott kéréseket (külön konfigurálható) dupent: többértékű eredményeket, külön bejegyzésekre bontja lastbind: a felhasználó utolsó sikeres bejelentkezésének idejét rögzíti lastmod: rögzíti az utolsó módosítást egy adott fában nops: kiszűri a redundáns módosításokat noopsrch: megadja hány bejegyzéssel térne vissza az adott keresés nssov: az NSS és PAM kéréseket közvetlenül a slapd-ben válaszolja meg, kiváltva az nss-ldap és pam-ldap démonokat proxyOld: támogatja a Sun féle ProxyAuthz elavult kódolását smbk5pwd: karbantartja a Samba és Kerberos jelszavakat trace: Naplóz minden LDAP kérést és választ usn: Update Sequence Numbers (ahogyan Microsoft AD-ben történik, még nem jelent meg)

Jegyzetek

További információk The OpenLDAP website The OpenLDAP Project The OpenLDAP Foundation OpenLDAP Software OpenLDAP Public License Using libldap, OpenLDAP client API útmutató An OpenLDAP Update article by Marty Heyman 13 September 2007

Kategória:Címtárkiszolgálók Kategória:Szabad szoftverek Kategória:Nyílt forrású szoftverek