Difference between #1 and #2 of How to use ldap in UserIdentity for authentication

changed
Title
How toHowto use ldap in UserIdentity
unchanged
Category
Tutorials
unchanged
Tags
unchanged
Content
It took me a while to get ldap auth working with yii, so I write it down here,
maybe it can be of some use.

Yii does not have a ldap class by itself, but you can extend it for example with
Zend classes. To authenticate users at you page via ldap, change
protected/components/UserIdentity.php in the following way:

On top of the file add:

    Yii::import('application.vendors.*');
    require_once('Zend/Ldap.php');

Delete or comment out everything in the authenticate() function. Then add

    $options = array(
            'host'              => 'your.ldap.host.com',
            'username'          =>
'your_admin_users_username',
            'password'          =>
'your_admin_users_password',
            'baseDn'            => 'your_base_dn',
            'useStartTls'        => true, # if you need startTls
    );
    $ldap = new Zend_Ldap($options);
    try{
           
$ldap->bind("cn=".$this->username.",your_base_dn",
$this->password);
            $auth=true;
    }
    catch (Exception $e){
            $auth=false;
    }
    if($auth===true)
    {
            $this->errorCode=self::ERROR_NONE;
    }
    return !$this->errorCode;

For this to work you need Exception.php, Ldap.php and the Ldap folder from the
library folder of a Zend installation in the folder protected/vendors/Zend