Protocol schematic de acces la registru
În informatică LDAP ( Lightweight Directory Access Protocol ) este un protocol standard pentru interogarea și modificarea serviciilor de directoare , cum ar fi o listă de e-mail corporativă sau o agendă telefonică sau, în general, orice grupare de informații care poate fi exprimată ca o înregistrare de date și organizată ierarhic. Acesta este specificat într-o serie de cereri de urmărire standard pentru comentarii (RFC) ale tehnologiei Internet Engineering (IETF). Descrierea sa în ASN.1 este publicată în prezent în RFC 4511 .
Istorie
Primele standarde
În anii șaptezeci , integrarea dintre lumea comunicațiilor și a tehnologiilor informaționale a pregătit calea dezvoltării noilor tehnologii de comunicare. Multe dintre sistemele dezvoltate erau incompatibile între ele: a devenit evident că sunt necesare noi standarde pentru a permite echipamentelor și sistemelor diferite să coopereze.
Două standarde principale au fost elaborate independent: unul a fost conceput de CCITT (Comité Consultatif International Telephonique et Telegraphique, sau Comitetul consultativ internațional pentru telefonie și telegrafie) și de către ISO . CCITT a devenit ulterior ITU-T . Lucrarea a produs Modelul de referință OSI ( ISO 7498 ), care a identificat șapte straturi în comunicarea datelor cu transport fizic la cel mai scăzut nivel și protocoale de aplicație la cele mai înalte niveluri.
Celelalte standarde s-au dezvoltat împreună cu Internetul și cercetarea DARPA în SUA . Internet Architecture Board (IAB) și Internet Engineering Task Force (IETF) dezvoltă standarde pentru Internet cu o serie de documente numite Request for Comments (RFC), care după ce au fost aprobate, implementate și utilizate pentru o anumită perioadă, pot deveni standarde (STD). Înainte ca o propunere să devină RFC, aceasta se numește Internet Draft .
Aceste două procese de standardizare abordează problema din două perspective diferite. Abordarea OSI începe de la zero și stabilește standarde folosind un model formal fără a necesita implementări. Internetul folosește o abordare mai puțin formală, în care oricine poate propune și comenta RFC-uri, care sunt apoi implementate pentru a-și verifica fezabilitatea. Protocoalele OSI s-au dezvoltat lent, în special pe piața computerelor personale. În schimb, TCP / IP și Internet au avut o aplicație mai mare și s-au dezvoltat rapid.
Unele companii și-au dezvoltat astfel propriile protocoale și produse pentru rețea. În orice caz, protocoalele OSI au avut importanță în marile sisteme distribuite care se dezvoltau într-un mod special. Un domeniu important a fost cel al serviciilor de directoare . CCITT a creat standardul X.500 în 1988 , care a devenit Recomandările X.500-X.521 din Directorul rețelei de comunicații de date ISO 9594 în 1990 .
Conform acestui standard, comunicarea dintre directoarele client și server utilizează protocolul de acces la director (DAP). Dar pentru a fi operațional, DAP necesită întreaga stivă OSI, deoarece este un protocol de strat de aplicație .
LDAP
Cu toate acestea, am dorit o interfață cu un server de director X.500 care să utilizeze mai puține resurse sau un protocol ușor. Din acest motiv, LDAP a fost dezvoltat ca o alternativă slabă la DAP. LDAP necesită protocolul TCP / IP mai ușor și mai popular în locul stivei OSI. În plus, LDAP simplifică anumite operații X.500 și omite anumite aspecte complicate. Protocolul original a fost conceput în 1993 [1] de Tim Howes de la Universitatea din Michigan , Steve Kille de la Isode Limited , Colin Robbins de la Nexor și Wengyik Yeong de la Performance Systems International . Mark Wahl de la Critical Angle Inc., Tim Howes și Steve Kille au început să lucreze în 1996 la o nouă versiune a LDAP, LDAPv3 sub auspiciile Internet Engineering Task Force (IETF). LDAPv3, publicat pentru prima dată în 1997, a înlocuit LDAPv2 și, printre principalele inovații, a adăugat suport pentru extensibilitate și autentificare simplă integrată și strat de securitate pentru stratul de autentificare sigură. Dezvoltări ulterioare ale specificației LDAPv3 și numeroase extensii au fost adăugate ulterior de IETF în RFC-uri ulterioare.
Doi precursori ai LDAP sunt RFC-urile emise de IETF, Directory Assistance Service ( RFC 1202 ) și DIXIE Protocol Specification ( RFC 1249 ). Ambele sunt RFC-uri informaționale și nu au fost propuse ca standard. Directory Assistance Service (DAS) a definit o metodă prin care un director client poate comunica cu un proxy pe o gazdă OSI care a emis cereri X.500 în numele clientului. DIXIE este similar cu DAS, dar oferă o conversie mai directă decât DAP. Prima versiune a LDAP a fost definită în X.500 Lightweight Access Protocol ( RFC 1487 ), care a fost ulterior înlocuit cu Lightweight Directory Access Protocol ( RFC 1777 ).
Ulterior LDAP a rafinat ideile și protocoalele DAS și DIXIE. Are o implementare mai neutră și reduce complexitatea clientului. Cea mai mare parte a activității în DIXIE și LDAP provine de la Universitatea din Michigan , care furnizează documentația implementărilor LDAP și menține paginile web și listele de corespondență pe LDAP. RFC 1777 definește protocolul LDAP în sine, împreună cu: „Reprezentarea șirului și sintaxa atributelor standard” ( RFC 1778 ), „Reprezentarea șirului numelui distinct” ( RFC 1779 ), „Format pentru LDAP URL” ( RFC 1959 ), „Șirul Reprezentarea filtrelor de căutare LDAP "( RFC 1960 ) Versiunea 2 a LDAP a atins proiectul de statut standard în procesul de standardizare IETF, la un pas de a fi un standard. Astăzi, toate implementările serverului de directoare se bazează pe versiunea LDAP 3 specificată în RFC 4511 .
DSML
Recent, nevoia de a combina operațiunile LDAP cu XML în utilizarea serviciilor web a dat naștere unui nou limbaj numit Directory Services Markup Language ( DSML ). Cea mai recentă versiune este DSMLv2. DSML este un format generic pentru importul / exportul acestor informații. În DSML, datele din director pot fi partajate între aplicațiile care acceptă acest format fără a expune protocolul LDAP. XML oferă un mod eficient de prezentare și transfer de date; Serviciile de director vă permit să partajați și să gestionați date și sunt astfel o condiție prealabilă necesară pentru tranzacțiile online. DSML este conceput pentru a face serviciul director mai dinamic prin utilizarea XML. DSML este o schemă XML pentru lucrul cu directoare și este definită cu o descriere a conținutului documentului (DCD). Astfel DSML permite programatorilor XML să acceseze directoare LDAP fără a fi nevoie să se ocupe de interfața LDAP sau API pentru acces la directoare, oferind o modalitate uniformă de a lucra cu directoare multiple și diferite.
LDAP a influențat dezvoltarea altor protocoale de rețea , cum ar fi Limbajul de marcare a furnizorului de servicii ( SPML ) și Protocolul de localizare a serviciului .
Prezentare generală a protocolului
Clientul inițiază o sesiune LDAP conectându-se la un server LDAP (numit și DSA, Directory System Agent ). Două porturi TCP sunt definite în mod obișnuit pentru conexiunea cu text simplu (portul 389) și conexiunea criptată (portul 636). Comunicațiile sunt întotdeauna inițiate de către client care trimite o cerere la care serverul trebuie să răspundă (există câteva excepții de la acest model de comunicare, definit în RFC-uri). Toate informațiile sunt codificate și transmise utilizând regulile de codificare de bază (BER).
Clientul poate solicita următoarele:
- Bind - autentifică
- Căutare - efectuează o căutare
- Comparați - efectuează un test de comparație între o valoare și valoarea atribuită unui atribut
- Adăugare - adaugă un obiect nou
- Șterge - șterge un obiect
- Modificare - modifică atributele unui obiect
- Modify Distinguished Name (DN) - mutați sau redenumiți un obiect
- Abandonează - anulează o solicitare trimisă anterior
- Operațiune extinsă - cerere pentru operațiuni extinse (definită în alte RFC-uri)
- Unbind - spune serverului să închidă conexiunea (nu exact inversul Bind)
- StartTLS - extensie pentru a utiliza Transport Layer Security (TLS) pentru a efectua Bind
Serverul poate trimite „notificări nesolicitate” care nu sunt răspunsuri la solicitările clientului. RFC 4511 definește un singur tip de „notificări nesolicitate” pe care serverul trebuie să le trimită tuturor conexiunilor deschise atunci când este pe cale să se închidă.
O metodă alternativă de securizare a conexiunii este utilizarea unui tunel SSL . În mod obișnuit, acest lucru este indicat cu „schema” ldaps: // în URL, dar această notație nu este standardizată în niciun RFC, într-adevăr acest comportament este depreciat din 2003 în RFC 3494 [2], care a abandonat oficial LDAPv2.
Director LDAP
Termenul folosit în mod obișnuit „ director LDAP ” poate fi înșelător, deoarece LDAP definește un protocol de acces și nu o bază de date. Niciun tip specific de director nu este un „ director LDAP ”. Termenul ar putea fi utilizat în mod rezonabil pentru a descrie orice director accesibil prin LDAP și care poate identifica obiectele conținute prin nume X.500, dar Directoare precum OpenLDAP și predecesorii săi s-au dezvoltat la Universitatea din Michigan, deși concepute special pentru acces prin LDAP mai degrabă decât ca o punte către X.500 , așa cum a fost cazul produselor furnizate de ISODE, nu sunt mai multe directoare LDAP decât orice alt director accesibil prin protocolul LDAP.
Structura
Informațiile dintr-un director sunt organizate în elemente numite intrări .
Elementele unui director LDAP au o structură ierarhică care reflectă limitele politice, geografice sau organizaționale. În modelul original X.500, elementele care reprezintă statele apar în partea de sus a arborelui, cu elemente pentru statele federale sau organizațiile naționale sub ele (în mod normal, în instalațiile LDAP, numele DNS sunt utilizate pentru a structura nivelurile superioare în ierarhie). Elementele pot apărea mai jos pentru a reprezenta diviziuni dintr-o singură organizație, persoane, documente, imprimante sau orice altceva.
În structura arborelui, la fiecare nivel există un nume distinct relativ (RDN) care identifică elementul în raport cu altul (de exemplu ou = oameni ). Unirea tuturor RDN-urilor, luate succesiv de la nodul frunză la rădăcină, constituie numele distins (DN), un șir care reprezintă în mod unic o intrare în director. Un DN poate fi, de exemplu:
"cn = John Doe, ou = oameni, dc = wikipedia, dc = org"
Fiecare intrare are o serie de atribute , constând din asocierea atribut-valoare; pentru fiecare atribut pot exista mai multe valori (vezi exemplul prezentat recent). Fiecare dintre atributele elementului este definit ca un membru al unei clase de obiecte, grupate într-o schemă. Fiecare articol din director este asociat cu una sau mai multe clase de obiecte, care definesc dacă un atribut este opțional sau nu și ce tip de informații conține. Numele atributelor sunt de obicei alese pentru a fi ușor de reținut, de exemplu „ cn ” pentru numele comun sau „mail” pentru o adresă de e- mail . Valorile atributelor depind de tip și majoritatea valorilor non-binare sunt stocate în LDAPv3 (versiunea LDAP 3) ca șiruri UTF-8 . De exemplu, un atribut de tip mail poate conține valoarea „[email protected]”, în timp ce un atribut „jpegPhoto” poate conține o fotografie în format JPEG (binar). În definiția clasei de obiecte LDAP sunt necesare unele atribute (TREBUIE), în timp ce altele sunt opționale (MAI). Pentru a obține crearea obiectului este esențial să se definească toate atributele obligatorii în același timp.
Fiecare atribut are propria sa definiție, care include, de asemenea, o specificație a tipului de date și a regulilor de potrivire. Puteți defini clase și atribute de obiecte personalizate.
Este necesar să efectuați o verificare după fiecare configurație.
URL LDAP
Există un format pentru o adresă URL care identifică o operațiune LDAP și care este de obicei folosit pentru a efectua căutări sau pentru a permite serverului să returneze „recomandări”, adică referințe la alt server care conține informațiile solicitate de client:
ldap: // host: port / DN? atribute? scope? filter? extensii
Nu sunt necesare toate părțile adresei URL.
- ldap: // indică schema URL-ului și identifică protocolul LDAP
- gazdă este adresa FQDN sau IP a serverului LDAP.
- port este portul pe care să contactați gazda
- DN este „numele distins” folosit pentru a identifica baza (punctul de plecare) al căutării.
- atribute este lista (cu elementele separate prin virgule) a atributelor de recuperat.
- domeniul de aplicare specifică domeniul de căutare (poate fi „de bază”, „unul” sau „sub”).
- filtru este filtrul de căutare (așa cum este definit în RFC 4515 ).
- extensiile sunt extensii la cererea LDAP
Se utilizează în mod obișnuit o schemă de tip "ldaps: //" care, deși este depreciată în RFC 3494 , indică o conexiune LDAP cu SSL. Acest lucru este complet diferit de utilizarea operației StartTLS care utilizează în schimb schema standard ldap://
.
Companii care susțin LDAP
LDAP a câștigat un sprijin extins din partea unor companii precum:
- Android (agenda telefonică)
- Apache (prin Apache Directory Server )
- Apple (prin Open Directory / OpenLDAP)
- AT&T
- Banyan Systems
- HP
- IBM / Lotus
- ISODE (prin serverul M-Vault)
- Mandriva (prin Mandriva Directory Server)
- Microsoft (prin Active Directory )
- Netscape (acum în produsele Sun Microsystems și Red Hat )
- Novell (prin eDirectory )
- OctetString (prin server VDE)
- Oracle (prin Oracle Internet Directory )
- portocale
- Radiant Logic (prin serverul de directoare virtual RadiantOne)
- Red Hat (prin Red Hat Directory Server)
- SiemensAG (prin server DirX )
- SGI
- Sun (prin serverele de director iPlanet și Sun ONE )
- Symlabs (prin Directory Extender )
- ESTOS (prin MetaDirectory 2.0)
precum și în implementări de software open source / gratuit, cum ar fi OpenLDAP și Fedora Directory Server . Serverul HTTP Apache utilizat ca proxy (din modulul mod_proxy) acceptă și LDAP.
RFC
LDAP este definit de o serie de Cereri de comentarii :
- RFC 4510 - LDAP: Specificații tehnice Harta rutieră (învechit: RFC 2251 , RFC 2252 , RFC 2253 , RFC 2254 , RFC 2255 , RFC 2256 , RFC 2829 , RFC 2830 , RFC 3377 , RFC 3771 )
- RFC 4511 - LDAP: Protocolul (învechit: RFC 2251 , RFC 2830 și RFC 3771 )
- RFC 4512 - LDAP: Modele de informații de director (învechite: RFC 2251 , RFC 2252 , RFC 2256 și RFC 3674 )
- RFC 4513 - LDAP: Metode de autentificare și mecanisme de securitate (învechite: RFC 2251 , RFC 2829 și RFC 2830 )
- RFC 4514 - LDAP: reprezentarea în șiruri a denumirilor distincte (învechit: RFC 2253 )
- RFC 4515 - LDAP: reprezentarea în șir a filtrelor de căutare (învechit: RFC 2254 )
- RFC 4516 - LDAP: Uniform Resource Locator (Învechit: RFC 2255 )
- RFC 4517 - LDAP: sintaxe și reguli de potrivire (învechite: RFC 2252 și RFC 2256 , actualizare: RFC 3698 )
- RFC 4518 - LDAP: Pregătirea șirurilor internaționalizate
- RFC 4519 - LDAP: Schema pentru aplicații utilizator (învechit: RFC 2256 , actualizare: RFC 2247 , RFC 2798 și RFC 2377 )
Următoarele RFC detaliază câteva „Cele mai bune practici actuale” specifice LDAP:
- RFC 4520 (de asemenea, BCP 64) - Considerații privind Autoritatea Numerelor Alocate pe Internet (IANA) pentru Protocolul de acces ușor la director (LDAP) (înlocuiește: RFC 3383 )
- RFC 4521 (și BCP 118) - Considerații pentru extensiile LDAP (Lightweight Directory Access Protocol)
Următoarele RFC acoperă unele extensii specifice la LDAPv3:
- RFC 2247 - Utilizarea domeniilor DNS în nume distincte (actualizat de RFC 4519 și RFC 4524 )
- RFC 2307 - Utilizarea LDAP ca serviciu de informații de rețea
- RFC 2589 - LDAPv3: Extensii Dynamic Directory Services
- RFC 2649 - Semnături operaționale LDAPv3
- RFC 2696 - Control simplu al rezultatelor paginate LDAP
- RFC 2798 - inetOrgPerson LDAP Object Class (actualizat de la RFC 3698 , RFC 4519 și RFC 4524 )
- RFC 2830 - LDAPv3: Extensie pentru securitatea stratului de transport
- RFC 2849 - LDAP Data Interchange Format ( LDIF )
- RFC 2891 - Sortarea pe partea de server a rezultatelor căutării
- RFC 3045 - Stocarea informațiilor despre furnizor în rădăcina LDAP DSE
- RFC 3062 - LDAP Password Modify Extended Operation
- RFC 3296 - Referințe subordonate numite în directoare LDAP
- RFC 3671 - Atribute colective în LDAP
- RFC 3672 - Subintrări în LDAP
- RFC 3673 - LDAPv3: Toate atributele operaționale
- RFC 3687 - Regulile de potrivire a componentelor LDAP
- RFC 3698 - LDAP: Reguli de potrivire suplimentare
- RFC 3829 - Controale de identitate de autorizare LDAP
- RFC 3866 - Etichete și intervale de limbă în LDAP
- RFC 3909 - Anulați operațiunea LDAP
- RFC 3928 - Protocol de actualizare client LDAP
- RFC 4370 - Control autorizare proxy LDAP
- RFC 4373 - LBURP
- RFC 4403 - Schema LDAP pentru UDDI
- RFC 4522 - LDAP: Opțiune de codare binară
- RFC 4523 - LDAP: Schema certificatului X.509
- RFC 4524 - LDAP: Schema COSINE (înlocuiește: RFC 1274 )
- RFC 4525 - LDAP: Extensie de modificare-incrementare
- RFC 4526 - LDAP: filtre adevărate și false absolute
- RFC 4527 - LDAP: Citiți comenzile de intrare
- RFC 4528 - LDAP: Controlul afirmării
- RFC 4529 - LDAP: Solicitarea atributelor după clasa de obiecte
- RFC 4530 - LDAP: entryUUID
- RFC 4531 - LDAP Turn Operation
- RFC 4532 - LDAP Cine sunt eu? Operațiune
- RFC 4533 - Operațiunea de sincronizare a conținutului LDAP
- RFC 4876 - Schema profilului de configurare pentru agenții bazați pe LDAP
- RFC 5020 - LDAP entryDN Attribute operațional
LDAPv2 a fost definit în următoarele RFC-uri:
- RFC 1777 - Protocol ușor de acces la director (înlocuiește: RFC 1487 )
- RFC 1778 - Reprezentarea în șiruri a sintaxelor standard de atribute (înlocuiește: RFC 1488 )
- RFC 1779 - O reprezentare în șir a numelor distinse (înlocuiește: RFC 1485 )
LDAPv2 a fost pus în starea „istoric” cu următoarea RFC
- RFC 3494 - Lightweight Directory Access Protocol versiunea 2 (LDAPv2) la Stare istorică
Notă
- ^ Tim Howes, The Lightweight Directory Access Protocol: X.500 Lite ( PDF ), la openldap.org . Adus la 26 decembrie 2012 .
- ^ RFC3494
Bibliografie
- ( EN ) Lightweight Directory Access Protocol , în Free On-line Dictionary of Computing , Denis Howe. Disponibil sub licență GFDL
Elemente conexe
linkuri externe
- Server LDAP
- (EN) Server Apache Directory , pe directory.apache.org.
- (RO) Fedora Directory Server pe directorul.fedora.redhat.com. Adus pe 21 aprilie 2019 (depus de „url original 16 martie 2010).
- ( EN ) Red Hat Directory Server , la redhat.com . Adus la 26 octombrie 2005 (arhivat din original la 5 decembrie 2006) .
- (RO) OpenLDAP , pe openldap.org.
- (EN) Novell eDirectory , pe novell.com.
- (EN) Sun Directory Server (XML), de la sun.com.
- (EN) OpenDS , pe opends.dev.java.net. Adus la 12 mai 2008 (arhivat din original la 4 iulie 2007) .
- ( EN ) OpenDJ , pe opendj.forgerock.org .
- (RO) Windows Server 2003 Active Directory , microsoft.com.
- Software LDAP
- FusionDirectory , la documentation.fusiondirectory.org . Adus la 28 iunie 2012 (arhivat din original la 5 martie 2016) .
- (EN) Apache Directory Studio , pe directory.apache.org.
- ( EN ) Instrumentul de administrare EDS , pe edsadmin.sourceforge.net .
- ( EN ) Client gratuit Win32 LDAP , pe softerra.com . Adus la 26 octombrie 2005 (arhivat din original la 30 iunie 2005) .
- ( RO ) JXplorer java OSS LDAP Client , pe jxplorer.org .
- ( EN ) GQ , pe sourceforge.net .
- ( EN ) Luma , pe luma.sourceforge.net .
- ( EN ) Linux LDAP HOWTO , la tldp.org .
- (EN) Articole LDAP, linkuri, cărți albe , pe bind9.net.
- ( EN ) Software LDAP, Instrumente și Utilități , pe bind9.net .
- ( EN ) LDAP (v3) Revision (ldapbis) Grup de lucru , pe ietf.org . Adus la 26 octombrie 2005 (arhivat din original la 3 iulie 2005) .
- ( EN ) Ce este LDAP? , pe gracion.com .
- (EN) Nice Neat Introducere la LDAP cu exemple , de la twistedmatrix.com. Adus la 26 octombrie 2005 (arhivat din original la 16 iulie 2005) .
- ( EN ) Biblioteci LDAP pentru C # .
- ( EN ) LDAP pentru Rocket Scientists , la zytrax.com .
- ( EN ) Implementare LDAP pentru PerLDAP 1.4 , la perldap.org .
- ( RO ) Importanța LDAP Un comentariu al lui Tom Jackiewicz despre LDAP]
- ( EN ) HOWTO on LDAP + SASL + KERBEROS Master / Slave Central Authentication Un complex Howto de Danang Wijanarko
- Integrarea sistemului cu LDAP Introducere în LDAP și OpenLDAP, cu exemple de configurare.
- Single Sign-On cu Kerberos și LDAP , ISBN 88-901141-1-8 , de Giuseppe Paternò
- Utilizare în Italia
- Exemplu PRACTIC de extragere a datelor unui LDAP italian, Indexul administrațiilor publice , pe paraparlando.com . Adus la 25 februarie 2015 (arhivat din original la 25 februarie 2015) .
- ( IT ) [1] Index Scheme, un ldap italian
Controlul autorității | LCCN (EN) sh2001008354 · GND (DE) 4537748-0 · BNF (FR) cb13612263r (data) |
---|