LDAP felhasználói hitelesítés | Connect2id

Az LDAP felhasználói hitelesítés a felhasználónév és a jelszó kombinációjának hitelesítése egy olyan címtárkiszolgálóval, mint az MS Active Directory, az OpenLDAP vagy az OpenDJ. Az LDAP könyvtárak szabványos technológia a felhasználói, csoport- és jogosultsági információk tárolására és kiszolgálására a vállalati alkalmazások számára.

A felhasználók hitelesítése egy LDAP könyvtárral kétlépcsős folyamat. Ez a cikkmagyarázza a mechanikát, majd azt, hogy hogyan kell konfigurálni azLdapAuth-ban.

1. lépés – A felhasználónév feloldása egy könyvtárbejegyzés attribútumára

A felhasználói bejegyzéseket a könyvtárban egy megkülönböztető név (DN) azonosítja, amely a könyvtár gyökerétől (a jobb szélső szegmenstől) kiinduló útvonalszerű struktúra:

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

A felhasználó hitelesítéséhez egy LDAP könyvtárral először meg kell szereznie a DN-jét, valamint a jelszavát.

A bejelentkezési űrlapon az emberek általában egy egyszerű azonosítót, például a felhasználónevüket vagy az e-mail címüket adják meg. Nem várja el tőlük, hogy megjegyezzék a könyvtári bejegyzésük DN-jét. Ez nem lenne praktikus.

A probléma megoldására a DN feloldás jön be. Ez veszi a felhasználó nevét vagy e-mail címét, majd keresést futtat az összes felhasználói bejegyzés név- vagy e-mail attribútumai között, hogy megtalálja a megfelelő bejegyzés DN-jét. A könyvtárak rendkívül hatékony indexelést és gyorsítótárazást alkalmaznak, így ezek a keresések általában nagyon gyorsak.

A keresendő könyvtári attribútumok a searchFilterconfigurationparaméterben vannak megadva.Az alapértelmezett LdapAuth konfiguráció az UID és email attribútumokat keresi. A%u helyőrzőt a bejelentkezési űrlapon megadott felhasználói azonosítóval helyettesíti:

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

Ha csak az UID-re szeretnénk keresni, a keresési szűrő így néz ki:

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

Ha az UID, az e-mail és az alkalmazotti szám alapján szeretne keresni, akkor a szűrőt bővítse ki

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

Két fontos dologra kell figyelni a DNfeloldás konfigurálásakor és a könyvtárban új felhasználónevek létrehozásakor:

  • Az attribútumoknak – felhasználónév, e-mail, stb -, amelyekkel a felhasználók bejelentkeznek, egyedinek kell lenniük. Ha két olyan bejegyzést találunk, amelyek azonos azonosító attribútummal rendelkeznek,pl. email, a hitelesítést azonnal megtagadjuk.

  • Győződjön meg arról, hogy minden felhasználó, akitől bejelentkezést várnak, rendelkezik egy meghatározott azonosító attribútummal. Például, ha a felhasználók az e-mail címükkel fognak bejelentkezni, győződjön meg róla, hogy minden fiók rendelkezik meghatározott e-mail attribútummal.Ellenkező esetben a hitelesítés sikertelen lesz.

Az LdapAuth webes API nem mutatja a hitelesítési válaszban a bejelentkezés sikertelenségének okát – hogy az egy rossz felhasználónév, egy rossz jelszó vagy mindkettő volt. Az olyan helyzetek hibaelhárításához, amikor egy felhasználó a helyes felhasználónév és jelszó megadása ellenére sem tud bejelentkezni, ellenőrizze a szolgáltatás naplóit.

Ha a bejelentkezést rossz felhasználónév miatt utasították el, egy ilyen sor jelenik meg a naplóban:

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

Ha a felhasználónév helyesen lett feloldva, de a jelszó rossz volt:

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

Ha helyesen oldottuk fel a felhasználó könyvtárbejegyzésének DN-jét, akkor folytathatjuk a következő lépéssel – a jelszó ellenőrzésével.

2. lépés – A felhasználói jelszó ellenőrzése

A jelszavakat a bind nevű LDAP parancs ellenőrzi. Kapcsolatot nyitunk a címtárkiszolgálóval, majd egy kérést küldünk a kapcsolat hitelesítésére egy adott felhasználóként a bejegyzés DN-jének és jelszavának átadásával:

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

Ha a hitelesítő adatok helyesek, a címtárkiszolgáló sikert küld vissza. Ellenkező esetben egy LDAP-hibát Invalid credentials (49-es kód) ad vissza.

Fontos dolgokat kell itt megjegyezni:

  • A jelszó ellenőrzése a felhasználó bejegyzésében található, erre a célra szolgáló attribútummal történik. Ha szabványos könyvtársémát használsz, ezt az attribútumot userPassword-nek hívják. Az MS Active Directoryban ennek az attribútumnak a neve unicodePwd. Győződjön meg arról, hogy minden felhasználó, akitől bejelentkezést várnak, rendelkezik egy meghatározott jelszóattribútummal. Ellenkező esetben a hitelesítés sikertelen lesz.

  • A jelszóértékek gyakran hasheltek, és további védelmet kaphatnak, például írásvédetté téve őket. Ezért egy egyszerű LDAP olvasás és összehasonlítás itt általában nem fog működni. A bind parancs mindig az előnyben részesített módszer.

  • A jelszavak jellemzően nagy- és kisbetű érzékenyek.

Még egyszer ne feledje, hogy a naplófájlok a barátja. Ezek minden bejelentkezési kísérlet részleteit rögzítik, és gyors hibaelhárításra használhatók, ha a hitelesítés nem a várt módon működik. Ha további segítségre van szüksége az LdapAuth beállításával kapcsolatban, lépjen kapcsolatba velünk.

Vélemény, hozzászólás?

Az e-mail-címet nem tesszük közzé.