PHP:修改LDAP

时间:2019-03-11 08:26:10

标签: php ldap

此代码可以为我提供正确的缩略图(得到1张结果):

<?php
$ldap_username = "admin@domain.com.my";
$ldap_password = "password";
$domainname = "dc=domain,dc=com,dc=my";

$conn = ldap_connect("ldap://x.x.x.x:x/");
ldap_set_option($conn, LDAP_OPT_REFERRALS, 0);
ldap_set_option($conn, LDAP_OPT_PROTOCOL_VERSION, 3);
$rs = ldap_bind($conn, $ldap_username , $ldap_password);

$search = "(&(objectCategory=person)(samaccountname=coisox))";
$rs = ldap_search($conn, $domainname, $search);
$ent = ldap_get_entries($conn, $rs);

for ($i = 0; $i < $ent["count"]; $i++) {
    echo "<br><b>Common Name: </b>" .   $ent[$i]["cn"][0];
    echo "<br><b>DN: </b>" .            $ent[$i]["dn"];
    echo "<br><b>Photo base64: </b>". (isset($ent[$i]["thumbnailphoto"]) && isset($ent[$i]["thumbnailphoto"][0])?base64_encode($ent[$i]["thumbnailphoto"][0]):'Photo not set');
}

ldap_close($conn);
?>

然后我尝试通过以下方式修改缩略图:

for ($i = 0; $i < $ent["count"]; $i++) {
    $newdata = array();
    $newdata["thumbnailphoto"][0]='vvvvvv';

    if(!ldap_modify($conn, $ent[$i]["dn"], $newdata)){
        $enum = ldap_errno($conn);
        $msg = ldap_err2str($enum);
        echo "Photo change Failed for {$dn}.<br> {$msg}";
    }
    else{               
        echo "Photo Updated";
    }
}

我得到了这个错误:

Warning: ldap_modify(): Modify: Insufficient access

我认为我的帐户具有足够的修改权限,因为我还安装了CJWDEV AD Photo Edit,因此工具要成功查询和上传新照片所需要的唯一信息是域,用户名和密码。该工具不需要特定的CN或OU。因此,必须有一些通用代码才能使它起作用。

还有一件事,我尝试在以下情况下运行此代码:

  1. 本地主机
  2. 非https
  3. https

我尝试过的变化:

变化1:

for ($i = 0; $i < $ent["count"]; $i++) {
    $newdata["thumbnailphoto"][0] = array();
    $newdata["thumbnailphoto"][0] ='vvvvvv';

    if(!ldap_modify($conn, $ent[$i]["dn"], $newdata)){
       ...same...
    }
}

变化2:

for ($i = 0; $i < $ent["count"]; $i++) {
    $newdata["thumbnailphoto"][0] = array();

    if(!ldap_modify($conn, $ent[$i]["dn"], $newdata)){
       ...same...
    }
}

变化3:

$userdata["thumbnailphoto"] = array();
$userdata["thumbnailphoto"][0] = 'vvvvvv';

变化4:

$userdata = array();
$userdata["thumbnailphoto"] = array();
$userdata["thumbnailphoto"][0] = 'vvvvvv';

变化5:

$userdata = array();
$userdata["thumbnailphoto"] = array();
$userdata["thumbnailphoto"]["0"] = 'vvvvvv';

变化6:

$userdata = array();
$userdata["thumbnailphoto"] = array();
$userdata["thumbnailphoto"][] = 'vvvvvv';

版本7-警告:ldap_modify():修改:没有此类对象:

$dn = $ent[$i]["dn"];
$userdata["thumbnailphoto"][0] = array();

//even I remove below line, same result
$userdata["thumbnailphoto"][0] = base64_decode('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');

ldap_modify($conn, "uid=$ldap_username,$dn", $userdata);

版本8-ldap_add():添加:违反对象类:

Using Variation 7, I change ldap_modify() to ldap_add()

0 个答案:

没有答案