Kaj je imenik LDAP

Imenik LDAP hrani podatke o različnih objektih v resničnem ali računalniškem svetu. Primarno se uporablja za shranjevnjem podatkov o uporabnikih, skupinah uporabnikov ter podatkih o uporabnikih, ki jih potrebujejo računalniški sistemi.

Imenik LDAP je baza podatkov, ki pa za razliko od baz SQL ni relacijska, ampak je organizirana v drevesno strukturo. Optimizirana je za branje in ne za pogosto vpisovanje podatkov, definicije podatkov pa niso poljubne ampak so vpisane v shemah.

Sheme LDAP

Sheme določajo kako so poimenovani posamezni atributi objekta, v grobem kakšne vrednosti lahko zajemajo in na kakšen način se išče po njih (število ali niz, ali je občutljiv na velike ali male črko in podobno). Če želimo torej v imenik vstaviti nove objekte ali zaradi dodatne aplikacije dopolniti podatke o objektih, naložimo novo shemo. Katero shemo uporabimo je tipično zapisano v dokumentaciji aplikacije, pogostokrat pa uporabljajo kar privzete, standardizirane sheme, ki so prisotne že v osnovni postavitvi imenika LDAP. Primer namenskih shem za Eduroam.si in ArnesAAI pa so na primer:

Drevesna struktura LDAP

Drevesna struktura imenika LDAP

Drevesu LDAP rečemo tudi DIT (angl. Directory Information Tree). Nekaj posebnih objektov, ki se tičejo samega imenika LDAP, najdemo že v korenini drevesa LDAP. To so na primer:

Posamezne organizacije, ki imajo lahko tudi skupni imenik LDAP, si uredijo vpis svojih objektov v poddrevesu glede na primarno registrirano domeno DNS, ki ji v tem kontekstu rečemo pogosto rečemo tudi kraljestvo (angl. realm). Uporaba domene ni v ničemer povezana s strežniki in internetnimi domenami DNS, pomembno je le, da imamo uporabljeno domeno v lasti (ne pa tudi delujočo ali vpisano na strežnikih DNS). Tako ima na primer Arnes, ki ima v lasti domeno arnes.si svoje poddrevo na lokaciji dc=arnes,dc=si.

V korenini drevo potem razdelamo na posmezne skupine, za kar uporabimo organizacijsko enoto (angl. organizational unit) ou=:

Včasih se je veliko uporabljajo "strmo drevo oziroma strukturo". Uporabnike se je ločevalo tudi po območnih enotah ali geografskih lokacijah, tako so na primer orgnizacijske enote delali ločeno za vsaki oddelek posebej, na primer:

Sodobni LDAPi uporabljajo nizko strukturo

Včasih so bile organizacije veliko bolj toge, uporabniki niso bili mobilni, zmogljivosti omrežnih povezav in imenikov pa so bile manjše. Vsak oddelek je tipično imel imenik s svojim poddrevesom, med seboj pa so imenike povezali s preusmeritvami in tako sestavili polno drevo med večimi strežniki. Danes so stari razlogi za tovrstno razdelitev drevesa vsi neveljavni in praviloma se izdeluje drevesa z "ravno strukturo", kot je narisana v zgodnji sliki, brez dodatnih razdelitev po območjih ali oddelkih.

Visoka struktura se še vedno uporablja tam, kjer so informacijski sistemi posameznih oddelkov organizacije močno ločeni, zaradi zgodovinskih razlogov ali zaradi lažje replikacije delov imenika LDAP. Predno se odločimo za visoko strukturo, moramo odločitev močno pretehtati.

Primeri strukture imenika LDAP

Primer enonivojske (flat) strukture imenika LDAP

Primer večnivojske (drevesne) strukture imenika LDAP

Opombe k obema primeroma:

  • Uporabnikom še posebej pozorno nastavite atributa schacHomeOrganization in schacHomeOrganizationType. Vsi uporabniki znotraj ene organizacije imajo vrednosti teh dveh atributov nastavljeni enako, po principu kot ga prikazuje zgornja shema. Primer:
    • schacHomeOrganization predstavlja vrhnjo domeno organizacije:
      • org-primer.si
      • POZOR! Ta atribut ne uporabljajte za segmentiranje uporabnikov po skupinah! Vrednosti ki niso enake vrhnji domeni organizacije (npr. ucenci.org-primer.si, profesorji.org-primer.si, ipd. za ta atribut niso ustrezne!
    • schacHomeOrganizationType predstavlja tip organizacije:
      • urn:arnes.si:homeOrgType:srednja šola
  • Uporabnike znotraj organizacije segmentirajte v skupine s pomočjo vlog, ki jih določite z vrednostmi atributa eduPersonAffiliation. Primarno vlogo predstavlja atribut eduPersonPrimaryAffiliation in zavzema eno od vlog, ki so navedene v atributu eduPersonAffiliation. Primer vrednosti za eduPersonAffiliation:
    • učiteljem določite vrednost:
      • faculty in member
    • učencem in dijakom določite vrednost:
      • student in member
    • ostalim zaposlenim vrednost:
      • staff in member
  • Kadar so v imeniku vpisani tudi starši učencev/dijakov, le-te vodite v ločenem OU. Primer:
  • Vrednosti omenjenih atributov so standardizirane, zato uporabljajte zgolj predpisane vrednosti. Izpeljanke ali slovenski prevodi niso primerni.
Primer strukture skupnega imenika LDAP

Opombe:

  • Uporabnikom še posebej pozorno nastavite atributa schacHomeOrganization in schacHomeOrganizationType. Vsi uporabniki znotraj ene organizacije imajo vrednosti teh dveh atributov nastavljeni enako, po principu kot ga prikazuje zgornja shema. Primer:
    • schacHomeOrganization predstavlja vrhnjo domeno organizacije:
      • gimnazija-primer.si
      • POZOR! Ta atribut ne uporabljajte za segmentiranje uporabnikov po skupinah! Vrednosti ki niso enake vrhnji domeni organizacije (npr. students.gimnazija-primer.si, staff.gimanzija-primer.si, ipd. za ta atribut niso ustrezne!
    • schacHomeOrganizationType predstavlja tip organizacije:
      • urn:arnes.si:homeOrgType:srednja šola
  • Uporabnike znotraj organizacije segmentirajte v skupine s pomočjo vlog, ki jih določite z vrednostmi atributa eduPersonAffiliation. Primarno vlogo predstavlja atribut eduPersonPrimaryAffiliation in zavzema eno od vlog, ki so navedene v atributu eduPersonAffiliation. Primer vrednosti za eduPersonAffiliation:
    • učiteljem določite vrednost:
      • faculty in member
    • učencem in dijakom določite vrednost:
      • student in member
    • ostalim zaposlenim vrednost:
      • staff in member
  • Kadar so v imeniku vpisani tudi starši učencev/dijakov, le-te vodite v ločenem OU. Primer:
  • Vrednosti omenjenih atributov so standardizirane, zato uporabljajte zgolj predpisane vrednosti. Izpeljanke ali slovenski prevodi niso primerni.
Primer strukture skupnega imenika LDAP

Opombe:

  • Uporabnikom še posebej pozorno nastavite atributa schacHomeOrganization in schacHomeOrganizationType. Vsi uporabniki znotraj ene organizacije imajo vrednosti teh dveh atributov nastavljeni enako, po principu kot ga prikazuje zgornja shema. Primer:
    • schacHomeOrganization predstavlja vrhnjo domeno organizacije:
      • faksX.uni-primer.si
      • POZOR! Ta atribut ne uporabljajte za segmentiranje uporabnikov po skupinah! Vrednosti ki niso enake vrhnji domeni organizacije (npr. students.faksX.uni-primer.si, staff.faksX.uni-primer.si, ipd. za ta atribut niso ustrezne!
    • schacHomeOrganizationType predstavlja tip organizacije:
      • urn:arnes.si:homeOrgType:fakulteta
  • Uporabnike znotraj organizacije segmentirajte v skupine s pomočjo vlog, ki jih določite z vrednostmi atributa eduPersonAffiliation. Primarno vlogo predstavlja atribut eduPersonPrimaryAffiliation in zavzema eno od vlog, ki so navedene v atributu eduPersonAffiliation. Primer vrednosti za eduPersonAffiliation:
    • osebam, ki vzpostavljajo učni proces določite vrednost:
      • faculty in member
    • študentom določite vrednost:
      • student in member
    • ostalim zaposlenim vrednost:
      • staff in member
    • zunanjim sodelavcem, ki pravno niso člani organizacije, določite vrednost:
      • affiliate
  • Vrednosti omenjenih atributov so standardizirane, zato uporabljajte zgolj predpisane vrednosti. Izpeljanke ali slovenski prevodi niso primerni.