使用PHP将新用户添加到LDAP

时间:2014-12-18 13:49:21

标签: php ldap

我正在尝试在Joomla3和SugarCRM CE 6.5之间集成两个系统。用户密码管理由LDAP完成,因此Joomla3和SugarCRM中的用户都将使用此身份验证系统。

然而,我们需要的是让SugarCRM成为创建用户的系统,因为我不希望负责创建新帐户的人使用LDAP。

我们在Users模块下创建一个logic_hook之前的save函数,所以当在SugarCRM中创建一个新用户时

1)检查LDAP中是否存在 - DONE

2)如果它不存在,我们启动这个before_save函数来创建它 - FAILING

这是我们正在调用的函数(它接收正在保存的用户bean),我不知道为什么它在行ldap_add失败...但是不知道为什么,甚至不知道如何调试错误,因为只返回“FALSE”值。

有什么想法吗?

function Add_LDAP ($user)
{
    $ldap_host = 'localhost';
        $base_dn = 'CN='.$user->user_name.',DC=regiac,DC=org';
        $GLOBALS['log']->fatal($base_dn);
        //Preparamos el usuario para crearlo
        $info["givenName"]=$user->first_name;
        $info["sn"]=$user->last_name;
        $info["uid"]=$user->user_name;
        $info["homeDirectory"]="/home/";
        $info["mail"]=$user->email1;
        $info["displayName"]= $user->first_name." ".$user->last_name;
        $info["departmentNumber"]=$user->id;
        $info["cn"] =$user->user_name;
        $info["userPassword"]=$user->user_hash;
        $info["objectclass"][0] = "top";
        $info["objectclass"][1] = "person";
        $info["objectclass"][2] = "inetOrgPerson";
        $info["objectclass"][3] = "organizationalPerson";



        $ldap_user  = "CN=admin,DC=regiac,DC=org";
        $ldap_pass = "passw";

        //First: Connect to  LDAP Server
        $connect = ldap_connect( $ldap_host, $ldap_port)
         or $GLOBALS['log']->fatal(">>Could not connect to LDAP server to add user<<");
        ldap_set_option($connect, LDAP_OPT_PROTOCOL_VERSION, 3);
        ldap_set_option($connect, LDAP_OPT_REFERRALS, 0);

//Login to LDAP
        $bind = ldap_bind($connect, $ldap_user, $ldap_pass)
           or $GLOBALS['log']->fatal(">>Could not bind to $ldap_host to add user<<");

// Adding new user - Here it is where it fails

    $add = ldap_add($connect, $base_dn, $info)
      or $GLOBALS['log']->fatal(">>Not able to load user <<");

// Close connection
       ldap_close($connect);

   // Return value of operation

        return $add;




}

0 个答案:

没有答案