Comunidad de diseño web y desarrollo en internet online

cambio de contraseña ldap

Citar            
MensajeEscrito el 16 May 2009 05:16 pm
Hola, he buscado por cielo y tierra y no he podido encontrar la forma de cambiar la contraseña de usuario en ldap, uso openldap en ubuntu server, phpldapadmin funciona perfecto pero nada que encuentro la forma de hacerlo en php.

Código :

<?php
  // using ldap bind
$ldaprdn  = 'cn=admin,dc=servidor;
$ldappass = 'secreto';

// connect to ldap server
$ldapconn = ldap_connect("127.0.0.1")
    or die("No hay conexión con el servidor de autenticación.");

if ($ldapconn) {

    // binding to ldap server
    $ldapbind = ldap_bind($ldapconn, $ldaprdn, $ldappass);

    // verify binding
    if ($ldapbind) {
        $person = "xyrer";
        $password = "password";
        $dn = "dc=servidor";
        $sr = ldap_search($ldapconn,$dn,'uid='.$person);
        if ($sr)
        {
            //echo "funciona la busqueda<br />";
            $ldapinfo = ldap_get_entries( $ldapconn, $sr );
        } else {
            echo "Error de busqueda";
        }
        if ($ldapinfo)
        {
            $clave = $ldapinfo[0]["userpassword"][0];
            $clave2 = "{MD5}".base64_encode(pack("H*",md5($password)));
            if ($clave == $clave2")
            {
                $output = "loginsuccess";
               $newpwd = "nuevaclave";
                    $cn = $ldapinfo[0]['cn'];
                    $info['userPassword'] = "{MD5}".base64_encode(pack("H*",md5($newpwd)));
                    if (ldap_mod_replace ($ldapconn, $cn, $info))
                    {
                        echo "<loginsuccess>Clave cambiada</loginsuccess>";
                    } else {
                        echo "<loginsuccess>Falló el procedimiento</loginsuccess>";
                    }
            } else {
                $output = "Acceso Denegado";
            }
            echo ($output);
            print_r($ldapinfo);
            echo "<br /><br /><br />";
            echo "Nombre real: ".$ldapinfo[0]["cn"][0]."<br />";
            echo "Usuario: ".$ldapinfo[0]["uid"][0]."<br />";
            echo "password: ".$ldapinfo[0]["userpassword"][0]."<br />";
        } else {echo "Error de ldapinfo";}
    } else {
        echo "Error de bind";
    }
    ldap_close($ldapconn);

} else {
    echo "Error de conexion";
}
?>

Por Xyrer

628 de clabLevel

1 tutorial

Genero:Masculino  

Android App Development

firefox
Citar            
MensajeEscrito el 21 Jun 2009 03:02 pm
Ya que encontré el error por mi mismo, lo pondré por si a alguien le sirve.

en la parte donde dice:

Código :

$cn = $ldapinfo[0]['cn'];
en realidad debe ir el dn, así que solo se cambia la "c" por la "d" así:

Código :

$cn = $ldapinfo[0]['dn'];


y todo perfecto.

Por Xyrer

628 de clabLevel

1 tutorial

Genero:Masculino  

Android App Development

firefox
Citar            
MensajeEscrito el 02 Sep 2018 08:15 pm
donde se encuentra este archivo

Por Pedro2111

0 de clabLevel



 

firefox

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.