Ldap wachtwoord wijzigen in PHP

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • shockme
  • Registratie: Oktober 2003
  • Laatst online: 02-06-2022
Ik wil met PHP het wachtwoord van een gebruiker in de LDAP database wijzigen.
Ik krijg alleen met geen mogelijkheid het wachtwoord uberhaupt al opgevraagd.

ik heb nu dit:
code:
1
2
3
4
5
6
7
8
9
10
11
12
$base_dn="o=server";
$ldapconn = ldap_connect("host", 389);
$ldapbind = @ldap_bind($ldapconn,"cn=fictief,o=fictief","fictief");
        
$read = ldap_search($ldapconn, $base_dn, "cn=gebruiker");
$info = ldap_get_entries($ldapconn, $read);
  
print  "Number of entires returned is " .ldap_count_entries($ldapconn,$read)."<p>";     
  
echo "".$info["userpw"]." =  Dit zou het wachtwoord moeten zijn";

ldap_close($ldapconn);


Volgens deze code zou er dus gezocht worden in de ldap database naar de gebruiker met de naam gebruiker(cn=gebruiker) vervolgens uit de arry wordt userpw gehaalt.

Dit geeft netjes aan dat er 1 entry is, echter er wordt geen wachtwoord opgehaald..
Iemand idee wat er fout gaat, of hoe ik dit aan moet gaan pakken?

Acties:
  • 0 Henk 'm!

  • shockme
  • Registratie: Oktober 2003
  • Laatst online: 02-06-2022
Klein bescheiden kickje.... O-)

Acties:
  • 0 Henk 'm!

  • eborn
  • Registratie: April 2000
  • Laatst online: 18-09 19:03
Wat staat er dan in het array $info? Doe eens een print_r.

Acties:
  • 0 Henk 'm!

  • Wacky
  • Registratie: Januari 2000
  • Laatst online: 05-09 21:19

Wacky

Dr. Lektroluv \o/

Probeer eens met de volgende code:
code:
1
print_r($info);


Misschien heet het paswoord veld wel anders, of is ie gewoon leeg (beveiligingskwestie?).

Nu ook met Flickr account


Acties:
  • 0 Henk 'm!

  • shockme
  • Registratie: Oktober 2003
  • Laatst online: 02-06-2022
Wanneer ik print_r doe krijg ik het volgende:
code:
1
Array ( [count] => 1 [0] => Array ( [uid] => Array ( [count] => 1 [0] => gebruiker ) [0] => uid [sn] => Array ( [count] => 1 [0] => gebruiker ) [1] => sn [objectclass] => Array ( [count] => 5 [0] => inetOrgPerson [1] => organizationalPerson [2] => Person [3] => ndsLoginProperties [4] => Top ) [2] => objectclass [logintime] => Array ( [count] => 1 [0] => 20050510202520Z ) [3] => logintime [cn] => Array ( [count] => 1 [0] => gebruiker ) [4] => cn [acl] => Array ( [count] => 7 [0] => 2#subtree#cn=gebruiker,o=server#[All Attributes Rights] [1] => 6#entry#cn=gebruiker,o=server#loginScript [2] => 2#entry#[Public]#messageServer [3] => 2#entry#[Root]#groupMembership [4] => 6#entry#cn=gebruiker,o=server#printJobConfiguration [5] => 2#entry#[Root]#networkAddress [6] => 7#entry#cn=gebruiker,o=server#passwordManagement ) [5] => acl [count] => 6 [dn] => cn=gebruiker,o=server ) )


Echter wanneer $info 'sn' of 'uid' pak krijg ik ook geen waardes

Acties:
  • 0 Henk 'm!

  • Wacky
  • Registratie: Januari 2000
  • Laatst online: 05-09 21:19

Wacky

Dr. Lektroluv \o/

shockme schreef op woensdag 11 mei 2005 @ 17:20:
Wanneer ik print_r doe krijg ik het volgende:
code:
1
Array ( [count] => 1 [0] => Array ( [uid] => Array ( [count] => 1 [0] => gebruiker ) [0] => uid [sn] => Array ( [count] => 1 [0] => gebruiker ) [1] => sn [objectclass] => Array ( [count] => 5 [0] => inetOrgPerson [1] => organizationalPerson [2] => Person [3] => ndsLoginProperties [4] => Top ) [2] => objectclass [logintime] => Array ( [count] => 1 [0] => 20050510202520Z ) [3] => logintime [cn] => Array ( [count] => 1 [0] => gebruiker ) [4] => cn [acl] => Array ( [count] => 7 [0] => 2#subtree#cn=gebruiker,o=server#[All Attributes Rights] [1] => 6#entry#cn=gebruiker,o=server#loginScript [2] => 2#entry#[Public]#messageServer [3] => 2#entry#[Root]#groupMembership [4] => 6#entry#cn=gebruiker,o=server#printJobConfiguration [5] => 2#entry#[Root]#networkAddress [6] => 7#entry#cn=gebruiker,o=server#passwordManagement ) [5] => acl [count] => 6 [dn] => cn=gebruiker,o=server ) )


Echter wanneer $info 'sn' of 'uid' pak krijg ik ook geen waardes
Dat komt omdat dat ook arrays zijn
code:
1
print_r($info["sn"]);


:)

Nu ook met Flickr account


Acties:
  • 0 Henk 'm!

  • shockme
  • Registratie: Oktober 2003
  • Laatst online: 02-06-2022
Wacky schreef op woensdag 11 mei 2005 @ 17:25:
[...]


Dat komt omdat dat ook arrays zijn
code:
1
print_r($info["sn"]);


:)
Helaas dit geeft ook geen uitvoer.... :z

Acties:
  • 0 Henk 'm!

  • shockme
  • Registratie: Oktober 2003
  • Laatst online: 02-06-2022
Ik gebruik nu de volgende code
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
$ds=ldap_connect("***", 389); 
if ($ds) { 

    $r=ldap_bind($ds,"cn=***,o=***","***"); 
    $sr=ldap_search($ds, "o=***", "cn=***"); 
    $info=ldap_get_entries($ds,$sr); 
   
    for ($i=0; $i<$info["count"];$i++) 
    { 
        echo "hier staat de cn onder:<br>";
        echo $info[$i]["cn"][0]; 
        
        echo "<br><br>hier staat de uid onder:<br>";
        echo $info[$i]["uid"][0];
        
        echo "<br><br>hier staat de objectclss onder:<br>";
        echo $info[$i]["objectclass"][0];
        
        echo "<br><br>hier staat het wachtwoord onder:<br>";
        echo $info[$i]["userpassword"][0];
        
            } 
     
    ldap_close($ds); 
     
}else { 
    echo "<H3>Unable to connect to LDAP Server</H3>"; 
}

Met deze code krijg ik netjes de cn, uid, en objectclass te zien, maar hij verdomd het wachtwoord te laten zien.. ideeen iemand?

[ Voor 36% gewijzigd door shockme op 12-05-2005 17:17 ]


Acties:
  • 0 Henk 'm!

  • eborn
  • Registratie: April 2000
  • Laatst online: 18-09 19:03
shockme schreef op donderdag 12 mei 2005 @ 17:09:
Met deze code krijg ik netjes de cn, uid, en objectclass te zien, maar hij verdomd het wachtwoord te laten zien.. ideeen iemand?
Omdat die niet in het array staat. Zoals eerder aangegeven: userPassword is vaak beschermd. Je hebt extra rechten nodig om het veld op te kunnen halen. Standaard kun je er alleen tegen authenticeren geloof ik, misschien zelfs dat wel niet eens.

Acties:
  • 0 Henk 'm!

  • GX
  • Registratie: Augustus 2000
  • Laatst online: 14-05 09:40

GX

Nee.

^^ Correct
Je kan een wachtwoord controleren door te binden naar de server met de username en het wachtwoord. Je krijgt dan meestal een succes terug als alles klopt.

Een wachtwoord ergens opvraagbaar laten zijn (vooral met zo'n open protocol als LDAP) is érg érg onveilig.

Overigens @ hiereboven ergens. print_r print een array recursief, dus print_r($info["sn"]); zal niet meer opleveren dan print_r($info);. Persoonlijk gebruik ik nog liever var_dump.

[ Voor 26% gewijzigd door GX op 12-05-2005 18:11 ]


Acties:
  • 0 Henk 'm!

  • shockme
  • Registratie: Oktober 2003
  • Laatst online: 02-06-2022
Ok, het wachtwoord is dus zo niet op te halen.
Maar zou het wel mogelijk zijn het wachtwoord in ldap te veranderen mbv php?

Acties:
  • 0 Henk 'm!

  • GX
  • Registratie: Augustus 2000
  • Laatst online: 14-05 09:40

GX

Nee.

Je zou 't kunnen proberen met ldap_modify

Ik raad het aan om 't te proberen op een account die niet meer werkt, of zelfs op een aparte LDAP directory.

Acties:
  • 0 Henk 'm!

  • shockme
  • Registratie: Oktober 2003
  • Laatst online: 02-06-2022
GX schreef op donderdag 12 mei 2005 @ 18:22:
Je zou 't kunnen proberen met ldap_modify

Ik raad het aan om 't te proberen op een account die niet meer werkt, of zelfs op een aparte LDAP directory.
Zoals het er nu naar uit ziet gaat dat lukken met ldap_modify. thnx!
Pagina: 1