LDAP
Lightweight Directory Access Protocol, ali LDAP (izgovojava /ɛl dæp/), je programski protokol za poizvedovanje in spreminjanje imeniških storitev, ki teče preko TCP/IP.

Imenik je niz predmetov z atributi organiziran na logični in hierarhični način. Preprost primer je telefonski imenik, ki je sestavljen iz seznama imen (bodisi osebe ali organizacije) organizirana po abecednem redu, kjer ima vsako ime, naslov in telefonsko številko povezano z njim.

Imenik LDAP drevesa pogosto odraža različna politične, geografske in/ali organizacijske meje, odvisno od izbranega modela. Pri postavitvi LDAP, se danes pogosto uporablja imena sistema domenskih imen (DNS) za imenovanje najvišje ravni hierarhije. Globlje znotraj imenika se morda pojavljajo vpisi, ki predstavljajo ljudi, organizacijske enote, tiskalnike, dokumente, skupine ljudi ali karkoli drugega, kar predstavlja določen vpis v drevo (ali več vpisov).

Njegova trenutna različica LDAPv3, je določena v seriji več Internet Engineering Task Force (IETF) zahtevah za mnenja (RFC), kot je podrobno opisano v RFC 4510.

Izvor in vplivi 
Telekomunikacijske družbe so uvedle koncept imeniških storitev za informacijske tehnologije in računalniška omrežja, saj je njihovo razumevanje imeniških zahtev bilo po okrog 70 letih razvoja in upravljanja telefonskih imenikov dobro razvito. Vrhunec tega dela je celovita specifikacija X.500, zbirka protokolov, ki jih je izdala Mednarodna telekomunikacijska zveza (ITU) v osemdesetih.

Imeniške storitve X.500 so bile tradicionalno dostopne prek protokola X.500 za dostop do imenika (DAP), ki je zahteval sklad protokolov Open Systems Interconnection (OSI). LDAP je bil prvotno namenjen za lahki alternativni protokol za dostop do storitev imenika X.500 prek enostavnejšega (in zdaj razširjenega) TCP/IP protokola. Ta model dostopanja do imenika je bil izposojen od DIXIE in Directory Assistance Service protokolov.

Samostojni LDAP imeniški strežniki so kmalu sledili, kot tudi imeniški strežniki, ki podpirajo tako DAP kot LDAP. Slednji je postal priljubljen v podjetjih, saj LDAP odpravlja potrebo za uvedbo omrežja OSI. Danes se lahko X.500 imeniški protokoli, vključno z DAP uporabljajo tudi neposredno prek TCP/IP.

Razvoj protokola so okrog leta 1993 začeli Tim Howes iz University of Michigan, Steve Kille iz Isode Limited in Wengyik Yeong iz Performance Systems International. Nadaljnji razvoj je prevzel Internet Engineering Task Force.

V zgodnjih fazah inženiringa je bil LDAP znan kot Lightweight Directory Browsing Protocol ali LDBP. Z razširitvijo področja uporabe protokola je bil preimenovan tako, da ne vključuje le brskanja imenika in funkcij za iskanje temveč tudi posodobitve imenika.

LDAP je vplival na nadaljnje internetne protokole, vključno novejše različice X.500, XML Enabled Directory (XED), Directory Service Markup Language (DSML), Service Provisioning Markup Language (SPML) in Service Location Protocol (SLP).

Pregled protokola 
Klient prične LDAP sejo ko se poveže na LDAP strežnik, ki mu rečemo Directory System Agent (DSA), po navadi na TCP vrata 389. Nato klient pošlje zahtevek za določeno operacijo na LDAP strežnik, na katerega strežnik odgovori. Z nekimi izjemami lahko klient pošlje naslednji zahtevek še preden dobi odgovor, strežnik pa mu lahko odgovori v kakršnemkoli vrstnem redu.

Klient lahko pošlje zahtevke za naslednje operacije:

 Start TLS — uporabi LDAPv3 Transport Layer Security (TLS) za varno povezavo
 Bind — avtentificiraj in določi verzijo LDAP protokola
 Search — išči ter pridobi imeniške vnose
 Compare — preveri če vnos vsebuje dano vrednost za atribut
 Add - dodaj vnos
 Delete - izbriši vnos
 Modify - spremeni vnos
 Modify Distinguished Name (DN) — spremeni DN, s tem ga prestavi v drugo vejo imenika ali le preimenuje
 Abandon — prekliči prejšnji zahtevek
 Unbind — prekini povezavo

Strežnik lahko pošlje tudi "Nezahtevana sporočila", ki niso odziv na zahtevek, npr. preden se seja časovo izteče in prekine povezava.

Struktura imenika 
Protokol dostopa do imenikov LDAP, ki so povzeti po X.500 modelu iz leta 1993:

 Imenik je drevo imeniških vnosov.
 Vnos sestavlja skupek atributov.
 Atribut ima ime (tip atributa ali opis atributa) in eno ali več vrednosti. Atributi so določeni v shemah.
 Vsak vnos ima unikaten identifikator: njegov Distinguished Name (DN). Ta pa je sestavljen iz Relative Distinguished Name (RDN), ki je lahko zgrajen iz nekaterih atributov vnosa, ter iz DN nadrejenega v imeniku. Torej lahko gledamo na DN kot polna pot do neke datoteke, ter na RDN kot relativno ime datoteke v imeniku.

Zavedati se moramo, da se lahko DN spreminja skozi življenjsko dobo vnosa, saj ga lahko premikamo drugam po drevesu. Da bi zanesljivo in nezamenljivo poimenovali vnos lahko med atribute dodamo unikaten identikifikator (Universally Unique Identifier, UUID).

Vnos lahko izgleda takole, ko se ga predstavi v formatu LDAP Data Interchange Format (LDIF) (LDAP sam je binarni protokol):

  dn: cn=Janez Novak,dc=example,dc=com
  cn: Janez Novak
  givenName: Janez
  sn: Novak
  telephoneNumber: +386 1 234 5678
  telephoneNumber: +386 1 123 1234
  mail: janez@example.com
  manager: cn=Maja novak,dc=example,dc=com
  objectClass: inetOrgPerson
  objectClass: organizationalPerson
  objectClass: person
  objectClass: top

dn je ime vnosa; ni ne atribut vnosa, niti ni del vnosa. "cn=Janez Novak" je RDN vnosa in "dc=example,dc=com" je DN nadrejenega vnosa, kjer dc pomeni "Domain Component" komponenta domene. Druge vrstice pa kažejo atribute v vnosu. imena atributov so po navadi okrajšave, npr. "cn" za "common name", "mail" za e-mail naslov in "sn" za priimek.

Zunanje povezave 
 Understanding LDAP  Preprost, uvodni vodič za LDAP.
 Oblikovanje LDAP sheme

Internetni protokoli
Lightweight Directory Access Protocol , ali LDAP ( izgovojava /ɛl dæp / ) , je programski protokol za poizvedovanje in spreminjanje imeniških storitev , ki teče preko TCP / IP. Imenik je niz predmetov z atributi organiziran na logični in hierarhični način . Preprost primer je telefonski imenik , ki je sestavljen iz seznama imen ( bodisi osebe ali organizacije ) organizirana po abecednem redu , kjer ima vsako ime , naslov in telefonsko številko povezano z njim . Imenik LDAP drevesa pogosto odraža različna politične , geografske in /ali organizacijske meje , odvisno od izbranega modela . Pri postavitvi LDAP , se danes pogosto uporablja imena sistema domenskih imen ( DNS ) za imenovanje najvišje ravni hierarhije . Globlje znotraj imenika se morda pojavljajo vpisi , ki predstavljajo ljudi , organizacijske enote , tiskalnike , dokumente , skupine ljudi ali karkoli drugega , kar predstavlja določen vpis v drevo ( ali več vpisov ) . Njegova trenutna različica LDAPv3 , je določena v seriji več Internet Engineering Task Force ( IETF ) zahtevah za mnenja ( RFC ) , kot je podrobno opisano v RFC Izvor in vplivi Telekomunikacijske družbe so uvedle koncept imeniških storitev za informacijske tehnologije in računalniška omrežja , saj je njihovo razumevanje imeniških zahtev bilo po okrogletih razvoja in upravljanja telefonskih imenikov dobro razvito . Vrhunec tega dela je celovita specifikacija X . 500 , zbirka protokolov , ki jih je izdala Mednarodna telekomunikacijska zveza ( ITU ) v osemdesetih . Imeniške storitve X . 500 so bile tradicionalno dostopne prek protokola X . 500 za dostop do imenika ( DAP ) , ki je zahteval sklad protokolov Open Systems Interconnection ( OSI ) . LDAP je bil prvotno namenjen za lahki alternativni protokol za dostop do storitev imenika X . 500 prek enostavnejšega ( in zdaj razširjenega ) TCP / IP protokola . Ta model dostopanja do imenika je bil izposojen od DIXIE in Directory Assistance Service protokolov . Samostojni LDAP imeniški strežniki so kmalu sledili , kot tudi imeniški strežniki , ki podpirajo tako DAP kot LDAP. Slednji je postal priljubljen v podjetjih , saj LDAP odpravlja potrebo za uvedbo omrežja OSI. Danes se lahko X . 500 imeniški protokoli , vključno z DAP uporabljajo tudi neposredno prek TCP / IP. Razvoj protokola so okrog letazačeli Tim Howes iz University of Michigan , Steve Kille iz Isode Limited in Wengyik Yeong iz Performance Systems International . Nadaljnji razvoj je prevzel Internet Engineering Task Force . V zgodnjih fazah inženiringa je bil LDAP znan kot Lightweight Directory Browsing Protocol ali LDBP . Z razširitvijo področja uporabe protokola je bil preimenovan tako , da ne vključuje le brskanja imenika in funkcij za iskanje temveč tudi posodobitve imenika . LDAP je vplival na nadaljnje internetne protokole , vključno novejše različice X . 500 , XML Enabled Directory ( XED ) , Directory Service Markup Language ( DSML ) , Service Provisioning Markup Language ( SPML ) in Service Location Protocol ( SLP ) . Pregled protokola Klient prične LDAP sejo ko se poveže na LDAP strežnik , ki mu rečemo Directory System Agent ( DSA ) , po navadi na TCP vrata Nato klient pošlje zahtevek za določeno operacijo na LDAP strežnik , na katerega strežnik odgovori . Z nekimi izjemami lahko klient pošlje naslednji zahtevek še preden dobi odgovor , strežnik pa mu lahko odgovori v kakršnemkoli vrstnem redu . Klient lahko pošlje zahtevke za naslednje operacije : Start TLS — uporabi LDAPv3 Transport Layer Security ( TLS ) za varno povezavo Bind — avtentificiraj in določi verzijo LDAP protokola Search — išči ter pridobi imeniške vnose Compare — preveri če vnos vsebuje dano vrednost za atribut Add - dodaj vnos Delete - izbriši vnos Modify - spremeni vnos Modify Distinguished Name ( DN ) — spremeni DN , s tem ga prestavi v drugo vejo imenika ali le preimenuje Abandon — prekliči prejšnji zahtevek Unbind — prekini povezavo Strežnik lahko pošlje tudi " Nezahtevana sporočila " , ki niso odziv na zahtevek , npr. preden se seja časovo izteče in prekine povezava . Struktura imenika Protokol dostopa do imenikov LDAP , ki so povzeti po X . 500 modelu iz leta Imenik je drevo imeniških vnosov . Vnos sestavlja skupek atributov . Atribut ima ime ( tip atributa ali opis atributa ) in eno ali več vrednosti . Atributi so določeni v shemah . Vsak vnos ima unikaten identifikator : njegov Distinguished Name ( DN ) . Ta pa je sestavljen iz Relative Distinguished Name ( RDN ) , ki je lahko zgrajen iz nekaterih atributov vnosa , ter iz DN nadrejenega v imeniku . Torej lahko gledamo na DN kot polna pot do neke datoteke , ter na RDN kot relativno ime datoteke v imeniku . Zavedati se moramo , da se lahko DN spreminja skozi življenjsko dobo vnosa , saj ga lahko premikamo drugam po drevesu . Da bi zanesljivo in nezamenljivo poimenovali vnos lahko med atribute dodamo unikaten identikifikator ( Universally Unique Identifier , UUID ) . Vnos lahko izgleda takole , ko se ga predstavi v formatu LDAP Data Interchange Format ( LDIF ) ( LDAP sam je binarni protokol ) : dn : cn=Janez Novak ,dc=example ,dc=com cn : Janez Novak givenName : Janez sn : Novak telephoneNumber : +386234 telephoneNumber : +386123 mail : janez@example.com manager : cn=Maja novak ,dc=example ,dc=com objectClass : inetOrgPerson objectClass : organizationalPerson objectClass : person objectClass : top dn je ime vnosa ; ni ne atribut vnosa , niti ni del vnosa . " cn =Janez Novak " je RDN vnosa in " dc=example ,dc=com " je DN nadrejenega vnosa , kjer dc pomeni " Domain Component " komponenta domene . Druge vrstice pa kažejo atribute v vnosu . imena atributov so po navadi okrajšave , npr . " cn " za " common name " , " mail " za e - mail naslov in " sn " za priimek . Zunanje povezave Understanding LDAP Preprost , uvodni vodič za LDAP. Oblikovanje LDAP sheme Internetni protokoli