Autentificarea utilizatorului LDAP explicată | Connect2id

Autentificarea utilizatorului LDAP este procesul de validare a unei combinații de nume de utilizator și parolă cu un server de directoare cum ar fi MS Active Directory, OpenLDAP sau OpenDJ. Anuarele LDAP sunt o tehnologie standard pentru stocarea informațiilor despre utilizatori, grupuri și permisiuni și pentru a le servi aplicațiilor din întreprindere.

Autentificarea utilizatorilor cu un director LDAP este un proces în două etape. Acest articolexplică mecanica acestuia și apoi cum se configurează înLdapAuth.

Pasul 1 – Rezolvarea numelui de utilizator într-un atribut de intrare în director

Întrările de utilizator dintr-un director sunt identificate printr-un nume distins (DN) care seamănă cu o structură de tip cale care începe de la rădăcina directorului (segmentul cel mai din dreapta):

uid=alice,ou=people,dc=wonderland,dc=net

Pentru a autentifica un utilizator cu un director LDAP trebuie mai întâi să obțineți DN-ul acestuia, precum și parola.

Cu un formular de autentificare, oamenii introduc de obicei un identificator simplu, cum ar fi numele lor de utilizator sau adresa de e-mail. Nu vă așteptați ca ei să memoreze DN-ul intrării lor în director. Acest lucru ar fi nepractic.

Pentru a rezolva această problemă intervine o rezoluție DN. Aceasta ia numele sau adresa de e-mail a utilizatorului, apoi execută o căutare în atributele de nume sau de e-mail ale tuturor intrărilor de utilizare pentru a găsi DN-ul corespunzător intrării. Anuarele utilizează o indexare și o memorie cache foarte eficiente, astfel încât aceste căutări sunt de obicei foarte rapide.

Atributele directoarelor care trebuie căutate sunt definite în parametrul searchFilterconfigurationparameter.The default LdapAuth configuration caută atributele UID și email. Semnătura%u este înlocuită cu identificatorul de utilizator introdus în formularul de conectare:

ldapAuth.dnResolution.searchFilter = (|(uid=%u)(mail=%u))

Dacă doriți să căutați numai UID, filtrul de căutare ar arăta astfel:

ldapAuth.dnResolution.searchFilter = (uid=%u)

Dacă doriți să căutați pentru UID, e-mail și numărul de angajat, extindeți filtrul la

ldapAuth.dnResolution.searchFilter = (|(uid=%u)(mail=%u)(employeeNumber=%u))

Două lucruri importante care trebuie observate atunci când se configurează DNresolution și se creează noi userrentries în director:

  • Atributele – nume de utilizator, e-mail, etc. – cu care utilizatorii se loghează trebuie să fie unice. Dacă se constată că două intrări au același atribut de identificare,de exemplu, e-mail, autentificarea va fi prompt refuzată.

  • Asigură-te că fiecare utilizator care se așteaptă să se conecteze are un atribut definit pentru atributul de identificare. De exemplu, dacă utilizatorii urmează să se autentifice cu adresa lor de e-mail, asigurați-vă că toate conturile au un atribut definit pentru e-mail.În caz contrar, autentificarea va eșua.

Apif-ul web LdapAuth nu dezvăluie în răspunsul de autentificare cauza eșecului autentificării – dacă a fost un nume de utilizator greșit, o parolă greșită sau ambele. Pentru a soluționa situațiile în care un utilizator nu se poate autentificaîn ciuda introducerii unui nume de utilizator și a unei parole corecte, verificați jurnalele serviciului.

Dacă o autentificare a fost respinsă din cauza unui nume de utilizator greșit, în jurnal va apărea o linie ca aceasta:

2012-10-01 10:52:51,460 INFO – user.auth: username=tom authenticated=false message=Invalid username

Dacă numele de utilizator a fost rezolvat corect, dar parola a fost greșită:

2012-10-01 10:55:05,662 INFO – user.auth: username=alice DN=uid=alice,ou=people,dc=wonderland,dc=net authenticated=false message=Invalid password

Dacă am rezolvat corect DN-ul de intrare în director al utilizatorului, putem trece la următorul pas – verificarea parolei.

Pasul 2 – Validarea parolei utilizatorului

Password-urile sunt verificate de o comandă LDAP numită bind. Se deschide o conexiune la serverul de directoare, apoi se trimite o cerere de autentificare a conexiunii ca fiind un anumit utilizator prin transmiterea DN-ului de intrare și a parolei acestuia:

DN: uid=alice,ou=people,dc=wonderland,dc=netpassword: secret

Dacă datele de identificare sunt corecte, serverul de directoare returnează succes. În caz contrar, acesta returnează o eroare LDAP Invalid credentials (cod 49).

Elemente importante de reținut aici:

  • Parola este verificată în raport cu un atribut din intrarea utilizatorului dedicat pentru a servi acestui scop. Dacă folosiți o schemă standard de directoare, acest atribut se numește userPassword. În MS Active Directory, numele acestui atribut este unicodePwd. Asigurați-vă că fiecare utilizator care trebuie să se conecteze are un atribut de parolă definit. În caz contrar, autentificarea va eșua.

  • Valorile parolei sunt deseori hașurate și pot fi protejate suplimentar, de exemplu, prin faptul că sunt destinate numai scrierii. Prin urmare, o simplă citire și comparare LDAP nu va funcționa în general aici. Comanda bind este întotdeauna metoda preferată.

  • Pasapoartele sunt de obicei sensibile la majuscule și minuscule.

Încă o dată, nu uitați că fișierele jurnal sunt prietenii dumneavoastră. Acestea înregistrează detaliile fiecărei încercări de logare și pot fi folosite pentru o depanare rapidă atunci când autentificarea nu funcționează conform așteptărilor. Dacă aveți nevoie de mai mult ajutor cu configurarea LdapAuthobțineți legătura cu noi.

Lasă un răspuns

Adresa ta de email nu va fi publicată.