# OpenLDAP
OpenLDAP, LDAP (Lightweight Directory Access Protocol) ‘ın OpenLDAP Project tarafından geliştirilmiş bir uygulamasıdır. OpenLDAP Kamu Lisansı olarak bilinen BSD-türevi bir lisans kullanmaktadır. Platform bağımsız bir protokoldür. Kullanımda olan birçok Linux dağıtımı, LDAP desteği için OpenLDAP yazılımını barındırır. OpenLDAP, BSD dışında, AIX, HP-UX, Mac OS X, Solaris, Microsoft Windows ve z/OS gibi sistemlerde de çalışabilir.


## Proje Gelişimi ve Çekirdek Kadro.
OpenLDAP projesi, Kurt Zeilenga tarafından 1998 yılında başlatıldı. Proje, University Of Michigan ‘ın yayınladığı LDAP referans kaynağını kullanılarak başladı. Proje geliştikçe, LDAP protokolünün gelişimi ve evrimine de katkısı oldu. 
2006 Nisan ‘ında çekirdek takımı 3 kişiden oluşuyordu;
  - Howard Chu (Chief Architect)
  - Pierangelo Masarati
  - and Kurt Zeilenga
Daha sonra, Luke Howard, Hallvard Furuseth, Quanah Gibson-Mount, and Gavin Henry gibi birçok geliştirici ve gönüllü projeye katıldı.


## OpenLDAP Bileşenleri.
Openldap 3 ana bileşene sahiptir;
  - slapd
  - LDAP kütüphaneleri
  - İstemci yazılımı: ldapsearch, ldapadd, ldapdelete vb...
Ek olarak birçok yardımcı projeye sahiptir.
  - JLDAP – LDAP : Java için sınıf kütüphaneleri
  - JDBC-LDAP - Java JDBC - LDAP köprü sürücüsü
  - ldapc++ - LDAP C++ sınıf kütüphaneleri


## Arka plan.
### Genel kavram.
Tarihsel olarak OpenLDAP server mimarisi ikiye ayrılır. Ağ erişimi ve protokolün işlenmesinden oluşan bir “önplan” ve tam anlamıyla bir veri depolama ile ilgilenen “arka plan”. Bu mimari, modülerlik, değişik arka planlar ve arayüz hazırlamaya imkân tanır.


### Kullanılabilir Arka planlar.
Openldap ta standart olarak 16 farklı arka plan sağlanmıştır. Ve bağımsız olarak geliştirilen üçüncü parti arka planlar olduğu bilinmektedir. Kategorilenmiş olarak aşağıdaki gibidir.
Veri deoplama arka planları;
  - back-bdb: Berkeley üniversitesi tarafından geliştirilmiş ilk arka plandır.
  - back-hdb: subtree renames desteği getirilmiş halidir.
  - back-ldif: LDIF dosyaları üstüne inşa edilmiştir.
  - back-ndb: MYSQL'in NDB cluster engine üstüne yapılmıştır.
Proxy arka planları;
  - back-ldap: diğer LDAP sunucular için temel proxy
  - back-meta: meta-directory özellikli proxy
  - back-passwd: Unix sistemlerinin passwd ve grup verileri için kullanılan proxy
  - back-relay: diğer slapd arka planlarına yönlendirme
  - back-sql: SQL veritabanları için
Dinamik arka planlar;
  - back-config: LDAP üzerinden slapd düzeni
  - back-dnssrv: DNS üzerinde LDAP sunucuları yerleştirme
  - back-monitor: LDAP üzerinden slapd iştatistikleri
  - back-null: Unix /dev/null analizi
  - back-perl: LDAP isteklerinde peel başvurusu
  - back-shell: LDAP isteklerine Shell betikleri başvurusu
  - back-sock: LDAP isteklerin IPC 'ye yönlendirme
back-perl, back-tcl, back-ldbm gibi bazı arka planlar şu anda kullanımda olmayan openldap versyonlarındada çalışabilmektedir.
Pratikte -perl, -shell, and –sock gibi arka planlar, kabiliyete bağlı olarak diğer programlama dillerine arayüz sağlayabilir.


## Yerleşim.
### Yerleşim Anlayışı.
Normalde bir LDAP isteği önplandan alınır ve çözümlenir. Ardından işleme için arka plana iletilir. Arka planda istek tamamlandığında sonuç önplana veya istemciye iletilir. Önplan ile arka plan arasına bir takım kodlar sıkıştırılmıştır. Bu da kesmelere ve tetiklemelere cevap vermeye olanak tanır.


### Kullanılabilir Yerleşimler.
Openldap ‘ta öntanımlı olarak 20 tane yerleşim vardır. Ayrıca katkıcıların geliştirdiği 10 tane daha katkı yerleşimi vardır.
Çekirdeğe eklenmiş öntanımlı yerleşimler: 
  - accesslog: LDAP veritabanındaki log sunucusu aktivitesi
  - auditlog: flat metin dosyası üstündeki log sunucusu aktivitesi
  - chain: belirsizliği zincirleyip önleme
  - collect: X.500 gerçekleştirimi
  - constraint: değer kısıtlama
  - dds: dinamik veri servisi
  - deref: girdiler hakkında bilgi
  - dyngroup: basit dinamik grup desteği
  - dynlist: daha karışık dinamik grup desteği
  - memberof: aynı özellikliler grubu desteği
  - pcache: önbelleğe alınmış sorgu sonuçları
  - ppolicy: LDAP parola kuralları
  - refint: başvursal bütünlük
  - retcode: önceden belirlenmiş çeşitli görevler tanımlama
  - rwm: LDAP verileri için yeni yazım
  - seqmod: girdiler için serileştirme
  - syncprov: Syncrepl sağlayıcı
  - translucent: yarı transparan veri arttırımı
  - unique: verileri benzersizleştirme
  - valsort: özellikler için sıralama
Katkıcılardan gelen yerleşimler: 
  - addpartial: istek ekleme ve ayarlama
  - allop: tüm özellikleri geri döndürme
  - autogroup: sabit grupları dinamik yönetme
  - denyop: ayarlanmış isteklerin iptali
  - lastmod: en son ayarlanmış duruma alma
  - nops: gereksiz ayarları filtreleme
  - nssov: slapd ‘den direkt olarak NSS isteklerine cevap verme
  - proxyOld: kesin kodlama desteği
  - smbk5pwd: Samba ve Kerberos parola korunumu
  - trace: Tüm LDAP istek ve tepkilerini kayıtlama
Openldap, aynı zamanda Sun and Netscape/Fedora/RedHat mimarisini kullanan SLAPI ‘ yi de desteklemektedir.