[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: PHP+AD-авторизация
McLotos
HELLO WORLD!
Подскажите, как можно привязать авторизацию в php-проекте к ActiveDirectory. Ну т.е. я хочу чтобы пользователи, которые зарегистрированы в домене, могли заходить в проект используя свой логин и пароль.
Подскажите как настроить LDAP connect?
Нашёл вот такой класс.
class objLDAP{
var $LDAP_host;
var $LDAP_port;
var $LDAP_dn;
var $LDAP_Login;
var $password;
var $err_no;

function objLDAP($LDAP_Login,$password,$LDAP_host=,$LDAP_port=389,$LDAP_dn='') {
$this -> LDAP_host = $LDAP_host;
$this -> LDAP_port = $LDAP_port;
$this -> LDAP_dn = $LDAP_dn;
$this -> LDAP_Login = $LDAP_Login;
$this -> password = $password;
$this -> _authorizated = false;
$this -> _authorization();
}//constructor

function _authorization() {
$this -> err_no = 0;
$this -> err_msg = '';
$LDAP_conn = @ldap_connect($this->LDAP_host, $this->LDAP_port);
if ( !$LDAP_conn ) {
$this -> err_no = 1; //'LDAP_connect error'
$this -> err_msg = 'LDAP_connect error';
return false;
}
$LDAP_search = @ldap_search($LDAP_conn, $this->LDAP_dn, 'uid='.$this->LDAP_Login, array('dn'));
$search_info = @ldap_get_entries($LDAP_conn, $LDAP_search);
if ( 1 != $search_info['count']) {
$this -> err_no = 2;
$this -> err_msg = 'LDAP_Login error';
return false;
}
$rdn = $search_info[0]['dn'];
if((@ldap_bind($LDAP_conn,$rdn,$this->password))&&($this->password!='')) {
$this -> _authorizated = true;
return true;
}
else {
$this -> err_msg = 'LDAP_Password error';
return false;
}
}
//Authorization

function getLogin() {
if (true === $this -> _authorizated) return $this -> LDAP_Login;
else return false;
} //getLogin

function ErrorNo() {
return $this -> err_no;
}//ErrorNo

function ErrorMsg() {
return $this -> err_msg;
}//ErrorMsg

}//class LDAP




Спустя 19 минут, 59 секунд (1.03.2012 - 07:09) Visman написал(а):
$LD = new objLDAP($Login,$password,$host,$port,$dn);
if ($LD->getLogin() === false)
exit($LD->ErrorNo().' '.$LD->ErrorMsg())

Спустя 7 часов, 4 минуты, 21 секунда (1.03.2012 - 14:14) McLotos написал(а):
=)
Да нет, я знаю как пользоваться классами, просто думал может хватит и стандартных функций, ну в том смысле логично ли использовать именно этот класс, может можно сделать всё проще?

Спустя 9 минут, 54 секунды (1.03.2012 - 14:24) Visman написал(а):
Чего проще-то?
Класс уже готов, подключил, проверил логин/пароль - всего 3 строки biggrin.gif

Спустя 16 часов, 47 минут, 46 секунд (2.03.2012 - 07:11) McLotos написал(а):
Цитата
Чего проще-то?

код грузить не охота.


_____________
программирование - инструмент для решения конкретных задач, любая попытка спроектировать что-то универсальное приведет к провалу.©paul85
В любом случае тебе прийдётся пройти путь изобретения велосипеда, который прошли другие, только причиной твоего изобретения будет непонимание принципов работы велосипеда изобретённого другими людьми.©SlavaFr
jQuery это попытка использовать АН-225 для перевозки зубочистки
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.