OpenLDAP
OpenLDAP Software | |
Fejlesztő | Az OpenLDAP Projekt |
Legfrissebb stabil kiadás | 2.6.9 (stabil verzió, 2024. november 26.)[1] |
Programozási nyelv | C |
Operációs rendszer | platformfüggetlen |
Kategória | Címtárkiszolgálók |
Licenc | OpenLDAP Public License |
Az OpenLDAP Software weboldala |
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.[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 (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
[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]- ↑ OpenLDAP 2.6.9 now available, 2024. november 26. (Hozzáférés: 2024. november 28.)
- ↑ http://www.openldap.org/software/release/license.html
- ↑ http://www.openldap.org/project
- ↑ http://www.openldap.org/project/kurt
- ↑ http://www.highlandsun.com/hyc
- ↑ http://www.aero.polimi.it/masarati/personal.html
További információk
[szerkesztés]- The OpenLDAP website
- The OpenLDAP Project
- The OpenLDAP Foundation
- OpenLDAP Software
- OpenLDAP Public License
- Using libldap, OpenLDAP client API útmutató
- An OpenLDAP Update Archiválva 2009. augusztus 10-i dátummal a Wayback Machine-ben article by Marty Heyman 13 September 2007