OpenLDAP

A Wikipédiából, a szabad enciklopédiából
OpenLDAP Software
FejlesztőAz OpenLDAP Projekt
Legfrissebb stabil kiadás2.6.7 (stabil verzió, 2024. január 29.)[1]
Programozási nyelvC
Operációs rendszerplatformfüggetlen
KategóriaCímtárkiszolgálók
LicencOpenLDAP Public License
Az OpenLDAP Software weboldala

Az OpenLDAP szoftver a könnyűsúlyú címtár-hozzáférési protokoll (LDAP) egy szabad, nyílt forráskódú megvalósítása, melyet az OpenLDAP Projekt fejlesztett ki. A saját, BSD-stílusú, Open LDAP Public License alatt terjesztik.[2] 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[szerkesztés]

Az OpenLDAP Projektet[3] Kurt Zeulenga hozta létre 1998-ban.[4] 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ő),[5] Pierangelo Masarati,[6] é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[szerkesztés]

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 (BES)-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[szerkesztés]

Koncepció[szerkesztés]

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[szerkesztés]

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[szerkesztés]

Koncepció[szerkesztés]

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[szerkesztés]

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[szerkesztés]

További információk[szerkesztés]