ugrás a tartalomhoz

PHP LDAP autentikáció

tomatila · 2013. Ápr. 11. (Cs), 10.32
Üdvözlet az olvasónak!

Ha valaki tényleges segítséget tudna adni, tehát kódot,
nem elméleti fejtegetést, nagyon megköszönném.
Ezeket a sorokat több hetes net-böngészés után írom.

Anonymus LDAP autentikációt kell megoldanom PHP-ban, ne kelljen
beírni a user-t és passwordot, de mégis azonosítanom kell
a belépőt. A program adatbázisában ott van a Windows belépő
userneve, ezzel kellene összevetni.
Remélem nem túl homályos, amit írtam.
 
2

-

H.Z. · 2013. Ápr. 11. (Cs), 11.05
Bocs, Poetro válaszát látva rájöttem, hogy totálisan félreértettem a kérdést.
1

ldap_bind[quote]If bind_rdn

Poetro · 2013. Ápr. 11. (Cs), 10.55
ldap_bind
If bind_rdn and bind_password are not specified, an anonymous bind is attempted.


Active Directory doesn't accept anonymous requests anymore.

With Windows Server 2003, only authenticated users may initiate an LDAP request against Windows Server 2003-based domain controllers. You can override this new default behavior by changing the seventh character of the dsHeuristics attribute on the DN path as follows:
CN=Directory Service,CN=Windows NT,CN=Services,CN=Configuration,Root domain in forest
3

Fejlesztettunk

janoszen · 2013. Ápr. 11. (Cs), 12.50
Szia,

egy projekthez fejlesztettunk sok LDAP-os cuccot, a kodot itt talalod: https://github.com/szeber/yapep_base/tree/master/src/YapepBase/Ldap

Ez mindenfele LDAP-os authot tud.
4

Hátha segít, nagyon egyszerű

deejayy · 2013. Ápr. 12. (P), 11.44
Hátha segít, nagyon egyszerű kód, van egy intranetes php-s appunk, ott így azonosítom a felhasználokat:

$ld = ldap_connect('10.1.2.3', 389);
ldap_set_option($ld, LDAP_OPT_PROTOCOL_VERSION, 3);
if (@ldap_bind($ld, 'uid=' . $usr_name . ',ou=Users,dc=domain,dc=com', $usr_password)) {
	// belépve
} else {
	// nem sikerült autentikálni
}
5

Valami zavar benne: miért van

H.Z. · 2013. Ápr. 12. (P), 12.09
Valami zavar benne: miért van '@' a bind előtt?
(tudom, hogy mire való, csak nem értem, hogy ebben az esetben miért kell)
8

Fölöslegesen szórja a hibákat

deejayy · 2013. Ápr. 12. (P), 21.21
Fölöslegesen szórja a hibákat :)

Viccen kívül: engem az érdekel, hogy megy-e a bejelentkezés. Ha nem megy, és jó adatokat írtam be, elkezdek nyomozni. A hibaüzenet a felhasználóknak nem fog segíteni, ha meg szólnak, hogy nem megy, akkor így is, úgy is a mélyére kell néznem.
6

kérdés

tomatila · 2013. Ápr. 12. (P), 16.40
Tisztelt deejayy!

A $usr_name, $usr_password honnan jön?
Feltételezem, hogy a bejelentkező képernyőről.
Nekem olyan kellene, ahol ezek nélkül autentikál a
program, de mégis tudom, ki az.

Üdvözlettel
7

Hogyan?

Poetro · 2013. Ápr. 12. (P), 17.04
És hogyan juthatna el akár csak a felhasználói név a PHP-hoz? Mert ezt valakinek be kell gépelni a böngészőben, mivel a böngésző magától ezt az információt nem fogja átadni. Ahhoz legalább egy ActiveX komponens kellene, vagy valami hasonló, hogy az OS-től vegyen bármilyen információt.
9

http://stackoverflow.com/ques

H.Z. · 2013. Ápr. 13. (Szo), 11.23
Ez nem tudom, segít-e...

Bocs, most látom, hogy rossz helyre írtam. Az eredeti kérdezőnek szántam.
10

Off

Pepita · 2013. Ápr. 13. (Szo), 15.40
Poetro is kérdezett. És elég eredeti is. :)
11

anonymus bind

tomatila · 2013. Ápr. 14. (V), 13.18
Poetro által idézett link 2003-as Win Server-re vonatkozik,
2008-as Win Serverrre lehet anonymus bind-t engedélyezni.
12

még valami

tomatila · 2013. Ápr. 18. (Cs), 17.05
..végül is nem volt szükség anonymus autentikációra, de ha ez valakinek segít:
hogy a PHP-nál működjön LDAP, semmi másra nincs szükség, csak a következő:

C:\xampp\php könyvtárból a C:\Windows\system32-ba másolni a libeay32.dll, libsasl.dll, ssleay32.dll fájlokat.
A C:\xampp\php\php.ini “extension=php_ldap.dll” sorából kitörölni a ";" jelet az elejéből, hogy működjön a kiterjesztés.
Apache szerver újraindítás.

Máris működik, ami a következő linken meg van írva (legalább is nekem - Windows 2008 Serveren ):
http://php.net/manual/en/function.ldap-bind.php
(ezen belül: Example #1 Using LDAP Bind)