Howto use ldap in UserIdentity

11 0
18
Viewed: 106 699 times
Version: Unknown (update)
Category: Tutorials
Written by: BeerSerc BeerSerc
Updated by: Navarr Navarr
Created: Jan 26, 2010
Updated: 12 years ago

You are viewing revision #1 of this wiki article.
This version may not be up to date with the latest version.
You may want to view the differences to the latest version.

next (#2) »

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