**OpenLDAP** Softvér je softvér s otvoreným zdrojovým kódom, ktorý implementuje protokol LDAP - Lightweight Directory Access Protocol – (protokol pre odľahčený prístup do adresára). Tento softvér vytvára skupina vývojárov, ktorá sa nazýva OpenLDAP Project v spolupráci s internetovou komunitou. 

Program je vydaný pod vlastnou licenciou v štýle BSD s názvom OpenLDAP Public License. Tento softvér obsahujú mnohé Linuxové distribúcie, no dá sa spustiť aj na platformách BSD, AIX, Android, HP-UX, Mac OS X, Solaris, Microsoft Windows (založených na NT technológii napr. 2000, XP, Vista, Windows 7, etc.) a z/OS.

História projektu
-----------------

OpenLDAP Project bol založený v roku 1998 Kurtom Zeilenganom. Projekt odštartoval vytvorením klonu referenčného zdrojového kódu LDAP od Michiganskej Univerzity, ktorá dlho podporovala vývoj tohto projektu a tiež vývoj samotného LDAP protokolu.

V apríli, 2006, mal OpenLDAP Project troch hlavných členov: Howarda Chu (hlavný architekt), Pierangela Masaratiho a Kurta Zeilenga. Do projektu prispievalo aj viacero významných aktívnych prispievateľov vrátane Luka Howarda, Hallvarda Furusetha, Quanaha Gibson-Mounta a Gavina Henryho.

Súčasti softvéru OpenLDAP
-------------------------

OpenLDAP Software má tri hlavné komponenty:

* slapd - samostatný LDAP daemon (služba bežiaca na pozadí),
* knižnice implementujúce LDAP protokol a pravidlá ASN.1 Basic Encoding Rules (BER)
* klientský softvér: ldapsearch, ldapadd, ldapdelete, a ďalšie nástroje

OpenLDAP Project pracuje aj na niekoľkých podprojektoch:

* JLDAP - knižnice pre jazyk Java
* JDBC-LDAP - Java JDBC - databázový ovládač pre jazyk Java
* ldapc++ - knižnice pre jazyk C++

Kľúčové vlastnosti softvéru OpenLdap
------------------------------------

**LDAPv3**: slapd implementuje 3. verziu protokolu Lightweight Directory Access Protocol. slapd podporuje LDAP cez protokoly IPv4 a IPv6 aj cez Unixový IPC.

**Vrstva jednoduchej autentifikácie a zabezpečenia (SASL)**: slapd podporuje silnú autentifikáciu (overenie totožnosti) a zabezpečenie údajov (integrity a dôvernosti) prostredníctvom použitia SASL. Implementácia SASL použitá v slapd je vykonávaná pomocou softvéru Cyrus SASL, ktorý podporuje množstvo mechanizmov vrátane DIGEST-MD5, EXTERNAL a GSSAPI.

**Zabezpečená transportná vrstva (TLS)**: slapd podporuje autentifikáciu založenú na certifikáte a zabezpečenie údajov (integrity a dôvernosti) prostredníctvom použitia TLS (alebo SSL). Implementácia TLS použitá v slapd môže byť vykonávaná buď pomocou softvéru OpenSSL alebo GnuTLS.

**Riadenie topológie**: slapd sa dá nastaviť tak, aby povoľoval prístup k soketovej vrstve na základe informácií o sieťovej topológii. Táto funkcia používa tzv. TCP wrappery – Obaľovače TCP protokolu (prostriedky, ktoré filtrujú pakety).

**Riadenie prístupu**: slapd poskytuje bohaté a mocné prostriedky na riadenie prístupu, ktoré nám umožňuje riadenie prístupu k informáciám v našej databáze(ach). Môžeme nastaviť prístup k záznamom na základe autorizačných informácií LDAP, IP adresy, názvu domény a ďalších kritérií. slapd podporuje aj statické aj dynamické informácie pre riadenie prístupu.

**Internacionalizácia**: slapd podporuje znakovú sadu Unicode aj jazykové značky.

**Výber databázového pozadia**: slapd umožňuje použiť rôzne druhy databázových pozadí, z ktorých si môžeme vybrať. Obsahuje BDB – vysokovýkonné databázové pozadie s transakciami; HDB – hierarchické vysokovýkonné pozadie s transakciami; SHELL – rozhranie na pozadí pre spúšťanie shell skriptov a PASSWD - jednoduché rozhranie na pozadí pre súbory passwd. Pozadia BDB a HDB sú obsluhované databázou Oracle Berkeley DB.

Viacnásobné databázové inštancie: slapd sa dá nakonfigurovať tak, aby obsluhoval viacero databáz v rovnakom čase. To znamená, že jeden slapd server môže odpovedať na požiadavky mnohých logicky rozdielnych súčastí LDAP stromu, pričom môže používať alebo to isté alebo iné databázové pozadie.

**Bežné modulárne API**: Ak vyžadujeme ešte väčšie prispôsobenie, slapd nám umožňuje napísať si svoje vlastné moduly. slapd Obsahuje dve odlišné súčasti: popredie, ktoré cez protokol obsluhuje komunikáciu s LDAP klientmi a moduly, ktoré vykonávajú také operácie, akými sú databázové operácie. Vďaka tomu, že tieto dve súčasti komunikujú cez dobre definované API rozhranie jazyka C, môžeme si vytvoriť vlastné, prispôsobené moduly, ktoré rôznymi spôsobmi rozšíria slapd. Dostupných je tiež veľký počet modulov programovateľnej databázy. Tieto modul umožňujú poskytnúť externé dátové zdroje serveru slapd s využitím populárnych programovacích jazykov (Perl, shell a SQL).

**Vlákna**: slapd je rozdelené do vlákien aby bol výkon čo najväčší. Jeden viacvláknový proces slapd obsluhuje všetky prichádzajúce požiadavky pomocou zhromaždiska vlákien. Týmto sa redukuje vyžadovaná záťaž procesora, pričom sa zachová vysoký výkon.

**Replikácia**: slapd sa dá nastaviť tak, aby spravoval tieňové kópie informácií v adresáre. Táto schéma replikácie jeden hlavný/viacero vedľajších je životaschopná aj vo vysoko využívaných prostrediach, v ktorých kvôli dostupnosti a spoľahlivosti nestačí jedna inštalácia slapd. Pre extrémne náročné prostredie, v ktorom zlyhanie jedného bodu nie je prípustné, je tiež možné použiť replikáciu viacero hlavných. slapd obsahuje podporu replikácie založenej na LDAP Sync.

**Sprostredkovateľská vyrovnávacia pamäť**: slapd sa dá nastaviť tak, aby fungoval ako vyrovnávacia pamäť LDAP v úlohe prostredníka.

**Konfigurácia**: slapd sa dá veľmi dobre nastavovať prostredníctvom jedného konfiguračného súboru, ktorý nám umožňuje zmeniť všetko, čo len budeme chcieť. Konfiguračným voľbám sú pridelené primerané predvolené hodnoty, čo nám výrazne uľahčí prácu. Konfigurácia sa dá nastavovať aj dynamicky použitím samotného LDAPu, čo výrazne zlepšuje ovládateľnosť.

Zdroje
------

OpenLDAP