LDAP
Versiunea actuală a paginii nu a fost încă examinată de colaboratori experimentați și poate diferi semnificativ de
versiunea revizuită pe 14 martie 2021; verificările necesită
9 modificări .
LDAP ( English Lightweight Directory Access Protocol - „lightweight directory access protocol ”) este un protocol de nivel de aplicație pentru accesarea serviciului de directoare X.500 , dezvoltat de IETF ca o versiune ușoară a protocolului DAP dezvoltat de ITU-T . LDAP este un protocol relativ simplu care utilizează TCP/IP și permite operațiuni de autentificare ( legare ), căutare ( căutare ) și comparare ( comparare ), precum și operațiuni de adăugare, modificare sau ștergere a intrărilor . De obicei, serverul LDAP acceptă conexiuni de intrare pe portul 389 folosind protocoale TCP sau UDP . SSL - sesiunile LDAP încapsulate folosesc de obicei portul 636.
Fiecare intrare din directorul LDAP constă dintr-unul sau mai multe atribute și are un nume unic (DN - English Distinguished Name ). Numele unic poate arăta, de exemplu, după cum urmează: „cn=Ivan Petrov,ou=Employees,dc=example,dc=com” [1] . Un nume unic constă dintr-unul sau mai multe nume distincte relative (RDN ) separate prin virgulă . Numele relativ unic are forma AttributeName=valoare . Nu pot exista două intrări cu aceleași nume relative unice la același nivel de director. Datorită acestei structuri, numele unic al unei intrări dintr-un director LDAP poate fi ușor reprezentat ca arbore.
O intrare poate consta numai din acele atribute care sunt definite în descrierea clasei de intrare ( object class ), care, la rândul lor, sunt combinate în scheme ( schema ). Schema definește ce atribute sunt necesare pentru o clasă dată și care sunt opționale. Schema definește, de asemenea, tipul și regulile pentru compararea atributelor. Fiecare atribut de intrare poate stoca mai multe valori.
Standarde
Protocolul LDAP este definit în următoarele RFC -uri :
- RFC 4510 - Protocolul ușor de acces la director (LDAP): foaie de parcurs specificații tehnice (înlocuiește RFC 3377 )
- RFC 4511 - Protocolul ușor de acces la director (LDAP): Protocolul
- RFC 4512 - Protocol ușor de acces la director (LDAP): Modele de informații despre director
- RFC 4513 - Protocol ușor de acces la director (LDAP): metode de autentificare și mecanisme de securitate
- RFC 4514 - Protocol ușor de acces la director (LDAP): Reprezentarea șirurilor de nume distincte
- RFC 4515 - Protocol ușor de acces la director (LDAP): Reprezentarea șirurilor de filtre de căutare
- RFC 4516 - Protocol ușor de acces la director (LDAP): Localizator uniform de resurse
- RFC 4517 - Protocol ușor de acces la director (LDAP): Sintaxe și reguli de potrivire
- RFC 4518 - Protocol ușor de acces la director (LDAP): Pregătirea șirurilor internaționalizate
- RFC 4519 - Protocol ușor de acces la director (LDAP): Schemă pentru aplicațiile utilizator
- RFC 4520 (alias BCP 64) - Considerații privind Autoritatea de numere atribuite Internet (IANA) pentru protocolul LDAP (lightweight Directory Access Protocol) (înlocuiește RFC 3383 )
- RFC 4521 (alias BCP 118) - Considerații pentru protocolul ușor de acces la director (LDAP): extensie
În plus față de protocol, există standarde internaționale de nivel superior care descriu tot ceea ce este legat de modelul de integrare a sistemului și directorul (Directory), care este accesat folosind LDAP și DAP:
- Recomandarea ITU-T X.200 (1994) | ISO/IEC 7498-1:1994, Tehnologia informației — Interconectarea sistemelor deschise — Model de referință de bază: modelul de bază.
- Recomandarea ITU-T X.500 (2019) | ISO/IEC 9594-1:2020, Tehnologia informației - Interconectarea sistemelor deschise - Directorul: Prezentare generală a conceptelor, modelelor și serviciilor.
- Recomandarea ITU-T X.501 (2019) | ISO/IEC 9594-2:2020, Tehnologia informației - Interconectarea sistemelor deschise - Directorul: Modele.
- Recomandarea ITU-T X.509 (2019) | ISO/IEC 9594-8:2020, Tehnologia informației — Interconectarea sistemelor deschise — Directorul: Cadre de cheie publică și certificate de atribute.
- Recomandarea ITU-T X.511 (2019) | ISO/IEC 9594-3:2020, Tehnologia informației - Interconectarea sistemelor deschise - The Directory: Definiție abstractă a serviciului.
- Recomandarea ITU-T X.518 (2019) | ISO/IEC 9594-4:2020, Tehnologia informației — Interconectarea sistemelor deschise — Directorul: Proceduri pentru operarea distribuită.
- Recomandarea ITU-T X.519 (2019) | ISO/IEC 9594-5:2020, Tehnologia informației - Interconectarea sistemelor deschise - Directorul: Specificații protocol.
- Recomandarea ITU-T X.520 (2019) | ISO/IEC 9594-6:2020, Tehnologia informației — Interconectarea sistemelor deschise — Directorul: tipuri de atribute selectate.
- Recomandarea ITU-T X.521 (2019) | ISO/IEC 9594-7:2020, Tehnologia informației - Interconectarea sistemelor deschise - Directorul: clase de obiecte selectate.
- Recomandarea ITU-T X.525 (2019) | ISO/IEC 9594-9:2020, Tehnologia informației - Interconectarea sistemelor deschise - Directorul: Replicare.
Descrierea funcțională a protocolului
Protocolul LDAP definește următoarele operații pentru lucrul cu Directorul:
- Operațiuni de conectare/deconectare
- Binding ( bind ) - vă permite să asociați un client cu un anumit obiect Directory (real sau virtual) pentru a exercita controlul accesului pentru toate celelalte operațiuni de citire/scriere. Pentru a lucra cu Directorul, clientul trebuie să fie autentificat ca o entitate al cărei nume distinctiv se află în spațiul de nume descris de Director. În cererea de operare de legare , clientul poate să nu specifice un nume distinctiv, caz în care conexiunea se va face sub aliasul special anonim (de obicei ceva de genul unui cont de oaspete cu drepturi minime)
- Unbind ( unbind ) - Permite clientului să treacă la autentificare cu un nou nume distinctiv în cadrul unei sesiuni de conexiune la server LDAP. Comanda unbind este posibilă numai după autentificarea la server folosind bind, altfel apelul unbind returnează o eroare
- Căutare ( căutare ) - citirea datelor din Director. Operația este complexă, este nevoie de mulți parametri ca intrare, printre care principalii sunt:
- Baza de căutare ( baseDN ) - ramura DIT de la care începe căutarea datelor
- Adâncimea de căutare ( sfera de aplicare ) - poate avea valori (în ordinea creșterii sferei de aplicare): bază, unu, sub
- bază - căutare direct în nod - bază de căutare
- unul - căutați prin toate nodurile care sunt descendenți direcți ai bazei în ierarhie, adică se află la un nivel sub ea
- sub - căutare în întreaga zonă care stă la baza bazei de căutare (baseDN)
- Filtrul de căutare ( searchFilter ) este o expresie care definește criteriile de selectare a obiectelor de catalog care se încadrează în domeniul de aplicare specificat de parametrul scop. Expresia filtrului de căutare este scrisă în notație poloneză (prefix) , constând din operatori și operanzi logici (booleeni), care, la rândul lor, sunt operatori interni pentru potrivirea valorilor atributelor LDAP (în partea stângă) cu expresii (în partea dreaptă) folosind semnul egal.
Operatorii logici sunt reprezentați printr-un „mult” standard: & („ȘI logic”), | („SAU” logic) și ! (logic „NU”).
Exemplu de filtru de căutare[ unde? ] :
(&(!(entryDN:dnSubtreeMatch:=dc=Piter,dc=Rusia,ou=People,dc=example,dc=com))(objectClass=sambaSamAccount)
(|(sn=Lazar*)(uid=Nakhims*) ))
- Operațiuni de modificare - vă permit să schimbați datele din Catalog, în timp ce conceptul de modificare include atât adăugarea, ștergerea și mutarea înregistrărilor în ansamblu, cât și editarea înregistrărilor la nivelul atributelor acestora. Subtipuri de modificare:
- Adăugarea ( adăugare ) - adăugarea unei noi înregistrări
- Ștergere ( ștergere ) — ștergerea unei înregistrări
- Modificare RDN ( modrdn ) - mutare/copiere intrare
- Modificarea înregistrării ( modificare ) — permite editarea unei înregistrări la nivelul atributelor sale,
- adăugarea unui nou atribut sau a unei noi valori a unui atribut cu mai multe valori (adăugați)
- ștergerea unui atribut cu toate valorile sale (ștergere)
- înlocuirea unei valori de atribut cu alta (înlocuire)
- precum și creșterea (scăderea) valorii atributului ca parte a unei operații atomice (incrementare)
- Operație de comparare ( comparare ) - permite unui anumit nume distinctiv pentru a compara atributul selectat cu valoarea dată
Operațiune de solicitare de oportunitate
Standardul LDAP definește o operațiune specială care permite clienților să obțină informații despre versiunile de protocol acceptate de server și capacitățile serverului LDAP. Această comandă este un add-on (extensie) pentru operația de căutare și este executată cu următoarea combinație a parametrilor acestuia din urmă:
- BIND anonim
- baza de căutare baseDN specificată ca „” (șir gol)
- Adâncimea de căutare a domeniului este specificată ca bază
- Filtru de căutare: (objectClass=*)
- Lista atributelor solicitate: fie o enumerare explicită, fie „ + ” ( AVERTISMENT ! „ * ” nu va afișa valorile atributelor serviciului care conțin toate informațiile utile)
De exemplu, atunci când utilizați clientul LDAP din distribuția OpenLDAP , comanda de interogare a capacității poate arăta astfel:
ldapsearch -x -H ldap://host:port -LLL -b "" -s base '(objectClass=*)' supportedControls supportedCapabilities
Operațiune de interogare schema
Pentru a solicita informații despre schema curentă a unui director LDAP, trebuie mai întâi să executați o operațiune de capabilități de interogare obținând valoarea atributului subschemaSubentry .
ldapsearch -x -H ldap://host:port -LLL -s base -b "" '(objectClass=*)' subschemaSubentry
Valoarea rezultată este folosită ca nume distinctiv de bază de căutare ( baseDN ) în operația de interogare a schemei, care poate fi descrisă ca:
- BIND anonim sau complet. Majoritatea serverelor de directoare acceptă interogarea schemei fără a le lega mai întâi, dar există excepții (cum ar fi Active Directory );
- BaseDN de bază de căutare este egal cu valoarea atributului subschemaSubentry returnat de operația de interogare a capacității ;
- Adâncimea de căutare a domeniului este specificată ca bază ;
- Filtru de căutare: (objectClass=*) ;
- Lista atributelor solicitate: enumerarea explicită a atributelor (attributeTypes, objectClasses) este posibilă pentru toate serverele de directoare, în cazul OpenLDAP și al altora (OpenDS, ApacheDS, etc.) este posibil să se specifice „+”;
De exemplu, atunci când utilizați clientul LDAP din distribuția OpenLDAP , operația de interogare a schemei poate arăta astfel:
ldapsearch -x -H ldap://host:port -LLL -s base -b "cn=Subschema" '(objectClass=*)' ldapSyntaxes matchingRules
Implementări
Partea serverului
LDAP este un standard utilizat pe scară largă pentru accesarea serviciilor de directoare. Dintre implementările deschise distribuite gratuit, serverul OpenLDAP este cel mai cunoscut , dintre cele proprietare, suportul pentru protocol este disponibil în Active Directory , un serviciu de directoare de la Microsoft , conceput pentru a centraliza managementul rețelei Windows . Serverul IBM Lotus Domino include, de asemenea, un serviciu LDAP [2] [3] . Alte companii mari oferă și implementările lor de servicii de director care acceptă LDAP ca protocol de acces, de exemplu, Novell și Sun - OpenDS și, ulterior, OpenDJ.
Lista celor mai faimoase servere LDAP de astăzi:
- OpenLDAP
- ForgeRock OpenDJ
- Novell eDirectory
- Apple Open Directory (un furk al proiectului OpenLDAP)
- Microsoft Active Directory
- Samba4 LDAP (implementarea OpenSource a MS AD)
- RedHat Directory Server
- 389 Directory Server (în esență o versiune de testare a celei anterioare)
- Oracle Directory Server
- Apache Directory Server
- IBM Tivoli Directory Server
- IBM Domino LDAP
- CommuniGate LDAP
Partea client
Clienții LDAP sunt atât agende de adrese ale clientului de e-mail , cât și back-end-uri ale diferitelor servicii de rețea (DNS, SMTP, Samba, UTS etc.).
Vezi și
Note
- ↑ Descrierea parametrilor LDAP Arhivat 31 mai 2011 la Wayback Machine
- ↑ Schema LDAP Domino (link descendent) . Consultat la 31 octombrie 2010. Arhivat din original pe 8 iunie 2013. (nedefinit)
- ↑ Ghid de configurare Lotus Domino LDAP (link descendent) . Consultat la 31 octombrie 2010. Arhivat din original pe 4 martie 2016. (nedefinit)
Link -uri
Resurse
Servere
Clienți
Interfețe de programare (API)
scheme URI |
---|
Oficial |
|
---|
neoficial |
|
---|