OpenLDAP

A Wikipédiából, a szabad enciklopédiából
A lap korábbi változatát látod, amilyen KMBot (vitalap | szerkesztései) 2020. április 12., 22:26-kor történt szerkesztése után volt. Ez a változat jelentősen eltérhet az aktuális változattól. (szakaszcím módosítása a WP:FELÉP szerint (WP:BÜ) AWB)
OpenLDAP Software
FejlesztőAz OpenLDAP Projekt
Legfrissebb stabil kiadás2.6.8 (stabil verzió, 2024. május 21.)[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

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

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

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