Lightweight Directory Access Protocol sau LDAP - o solicitare de protocol și la modificările aduse serviciului bazat pe directorul X.500, se execută prin TCP / IP. Versiunea actuală a LDAP este LDAPv3, astfel cum sunt definite în RFC4510. și punerea în aplicare LDAP în Ubuntu - este OpenLDAP, versiunea curentă 2.4.25 (oniric) (2.4.28 pentru Precise. - un comentariu al traducătorului).
Astfel, acest protocol oferă acces la directoare LDAP. Iată câteva concepte cheie și termeni:
director LDAP - date de arbori în formă de înregistrări. ierarhic prin natura, numită structura de informații director (DIT).
Înregistrarea conține un set de atribute.
Acest atribut este de tip (nume / descriere) și una sau mai multe valori.
Fiecare atribut trebuie să fie definit în cel puțin un objectClass.
Atribute și clase de obiecte sunt definite în schemele (clasa obiect este de fapt considerată ca fiind un tip special de atribut).
Fiecare intrare are un identificator unic: Numele său distinctiv (DN sau DN). Se compune din ei nume distinctiv relativ (RDN), ca urmare a intrării părintelui DN.
intrare DN - nu este un atribut. Nu este considerat ca făcând parte din înregistrarea efectivă.
termeni obiect. container și nodul (nod) au unele conotații, dar toate desemnează în mod substanțial de lucru, cum ar fi înregistrarea, termenul corect punct de vedere tehnic.
De exemplu, atunci avem o înregistrare care conține 11 atribute. Sa DN - Acest "cn = John Doe, dc = exemplu, dc = com"; ea RND - este "cn = John Doe"; iar părintele DN - "dc = exemplu, dc = com".
Postul de mai sus - este format LDIF (LDAP Data Interchange Format). Orice informații pe care le pune în DIT dvs. ar trebui să fie în acest format. Acest lucru este definit în RFC2849.
Instalarea serviciului de server OpenLDAP și de obicei utilitare de administrare LDAP. Ele sunt în pachete slapd și-utils LDAP, respectiv.
Instalarea slapd va crea o configurație de lucru. În special, se va crea o bază de date exemplu, puteți utiliza pentru a stoca datele lor. Cu toate acestea, sufixul (sau baza DN) al acestuia se determină din numele de domeniu localhost. Dacă doriți să utilizați altceva, editați / etc / hosts și înlocuiți numele de domeniu de pe dreapta. Ca un exemplu, dacă aveți nevoie de sufixul dc = exemplu, dc = com. atunci fișierul ar trebui să aibă o linie de genul:
Puteți anula modificările după ce instalați pachetul.
Acest ghid va utiliza baza de date cu sufixul dc = exemplu, dc = com.
Vom continua cu instalarea:
Începând cu Ubuntu 8.10 slapd este proiectat să fie ajustat în mod independent, alocarea unui DIT separat în acest scop. Acest lucru vă permite să configurați dinamic slapd fără a fi nevoie perestartovyvat de serviciu. Această bază de date de configurare conține o colecție de fișiere de text LDIF situate în /etc/ldap/slapd.d. Aceste lucrări de realizare cunoscute sub diferite nume: metoda slapd-config, metoda RTC (setare realtime) sau cn = metodă de configurare. Puteți utiliza în continuare metoda tradițională a unui fișier plat (slapd.conf), dar acest lucru nu este recomandat; Această funcționalitate va fi în cele din urmă eliminat.
Ubuntu folosește acum metoda slapd-config pentru configurarea slapd și acest manual reflectă acest lucru.
Unele scheme de clasic (cosinus, nis, inetOrgPerson) este acum disponibil pentru slapd. Aceasta include, de asemenea, o schemă de bază (de bază), care se presupune că pentru oricare din circuit de lucru.
Procesul de instalare va crea 2 DIT. Unul pentru slapd-config, și unul pentru datele dvs. (dc = exemplu, dc = com). Să aruncăm o privire:
Prezentată aici se pare ca o bază de date slapd-config tree (DIT). Să ne amintim că acest cadru se bazează pe LDIF și este în /etc/ldap/slapd.d:
Nu editați direct bazei de date slapd-config. Efectuați modificări prin intermediul protocolului LDAP (utilități).
Iată cum arată copacul slapd-config prin intermediul protocolului LDAP:
Explicația înregistrărilor:
Ai făcut-o! Două baze (sufix: dc = exemplu, dc = com) sunt acum în sincronizare.
Odată ce replicarea începe, îl puteți urmări rulând:
În cazul în care conexiunea este lentă și / sau baza de date LDAP este mare, procesul de a aduce în clienți și furnizorii de linie contextCSN poate fi prelungit. Dar ar trebui să știți că procesul este pornit imediat ce contextCSN de consum crește în mod inevitabil.
Pentru a verifica dacă funcționează, trebuie doar să întrebați la DN bazei de consum:
Ar trebui să vedeți utilizatorul # 'John #' și de grup „Minerii # #“, precum și noduri # „# Oameni“ și # '# Grupuri'.
Controlul ce tip de acces (a se citi, scrie, și așa mai departe.) Utilizatorii trebuie să beneficieze de resursele cunoscute sub numele de control al accesului. Combinații ale acestor directive sunt numite liste de control al accesului (ACL).
Când am stabilit pachetul slapd ACL diferit setat automat. Vom examina unele dintre cele mai importante consecințe ale acestor omisiuni și, făcând acest lucru, înțelegem ideea de modul ACL, și cum să le configurați.
Pentru ACL eficiente pentru o interogare LDAP trebuie să se uite la intrarea ACL a bazei de date solicitate, precum și cu privire la înregistrarea unui prim-plan special de baze de date exemplu. Prin ACL implicit. obținut prin acest din urmă acțiune, în cazul în care nu coincid cu regulile de realizare anterioare. Datele de bază front-end este interogată în al doilea turn și ACL aplicat pe primul meci dintre cele două surse ACL. Următoarele comenzi arată, respectiv ACL bază de date hdb ( „dc = exemplu, dc = com“) și acestea sunt aceleași din baza de date front-end:
lăsând originalul paragrafului precedent, pentru că ei nu cred că a înțeles corect sensul:
Pentru a obține eficiente ACL pentru o interogare LDAP trebuie să ne uităm la intrările ACL ale bazei de date fiind interogate precum și cele ale speciale instanța bazei de date front-end. ACL-uri care fac parte din urmă acționează ca valori implicite în cazul celor din fosta nu se potrivesc. Baza de date este al doilea front-end să fie consultat și ACL care urmează să fie aplicat este primul pentru a se potrivi ( «primul meci victorii») dintre aceste 2 surse ACL. Următoarele comenzi vor da, respectiv, ACL-uri ale bazei de date hdb ( «dc = exemplu, dc = com») și cele ale bazei de date frontend:
rootDN are întotdeauna acces deplin la baza sa de date. Adăugarea acestora la ACL oferă configurație generală, dar cauzează o scădere a performanței slapd.
Primul ACL este foarte important:
Acest lucru poate fi reprezentat într-un mod diferit pentru o mai bună înțelegere:
Acest ACL compozit (două dintre ele) necesită următoarele:
atribut UserPassword nu este disponibil pentru toți ceilalți utilizatori, cu excepția rootDN, care are acces deplin.
Caută pe DIT pot fi efectuate în mod anonim, deoarece # 'Prin * citi #' în ACL.
Așa cum am menționat anterior, nici un utilizator administrativ este creat pentru baza slapd-config. Cu toate acestea, există identificarea SASL, care oferă acces integral la aceasta. Este similar cu superutilizatorul pentru localhost (root / sudo). Aici este:
Următoarea comandă va afișa baza de date ACL slapd-config:
Din moment ce această autentificare SASL, avem nevoie de un mecanism SASL atunci când sunt solicitate de utilitate LDAP în cauză, și vom vedea de multe ori în acest manual. Acest extern (EXTERNAL) mecanism. A se vedea comanda precedentă ca un exemplu. Vă rugăm să rețineți:
Ar trebui să utilizați sudo pentru a identifica ca ACL rădăcină să fi lucrat.
Un mod de scurt pentru a obține toate ACL este după cum urmează:
Există încă multe de spus pentru controlul accesului. A se vedea pagina conducerea slapd.access.
Atunci când un server de autentificare OpenLDAP, cel mai bine este de a face acest lucru utilizând o sesiune criptată. Acest lucru poate fi realizat prin utilizarea unui nivel de criptare de transport (TLS).
Aici organizam propriul Centru de Certificat (Certificate Authority - CA), și apoi să creați și să semneze un certificat de server LDAP, în numele CA. Deoarece slapd compilat folosind biblioteca GnuTLS. vom folosi pentru a efectua aceste sarcini, certtool de utilitate.
Instalați pachetul GnuTLS-bin și ssl-CERT:
Creați un certificat de cheie privată a Centrului: