[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Авторизация с использованием AD
Uchenik
Добрый день. Перерыл кучу сайтов, везде один и тот же код, который не работает так как нужно. В общем суть вот в чем, нужно сделать так чтобы пользователи могли авторизовываться используя свои аккаунты домена.

define ('LDAP_HOST', 'dc-server');
define ('LDAP_PORT', '389');
define ('LDAP_PREFIX', 'dc=unit,dc=corp,dc=com');
define ('LDAP_BASE', 'ou=Members,dc=intec,dc=tns-intec,dc=kz');
define ('LDAP_FILTER', 'sAMAccountName=');
define ('LDAP_DOMAIN', '@mysite.com');

if (!empty($_POST['login']) && !empty($_POST['password']))
{
$username = $_POST['login'];
$login = $_POST['login'].LDAP_DOMAIN;
$password = $_POST['password'];
$ldap = ldap_connect(LDAP_HOST,LDAP_PORT) or die("Cant connect to LDAP Server");
ldap_set_option($ldap, LDAP_OPT_PROTOCOL_VERSION, 3);
if ($ldap)
{
$bind = ldap_bind($ldap,$login,$password);
if ($bind)
{
$result = ldap_search($ldap,LDAP_BASE,"(&(memberOf=".LDAP_PREFIX.")(".LDAP_FILTER.$username."))");
$result_ent = ldap_get_entries($ldap,$result);
}
else
{die('Вы ввели неправильный логин или пароль. попробуйте еще раз');}
}

if ($result_ent['count'] != 0)
{exit;}
else
{die('К сожалению, вам доступ закрыт');}
}

Если вводить неправильный пароль или всё правильно, но пользователь не администратор домена то выводится
Цитата
: ldap_bind(): Unable to bind to server: Invalid credentials
Вы ввели неправильный логин или пароль. попробуйте еще раз

а если ввести правильный логин и правильный пароль АДминистратора домена
Цитата
К сожалению, вам доступ закрыт

я пробовал в коде указать какие логин и пароль нужно использовать для подключения к LDAP (логин и пароль пользователя с правами админа), но как тогда будет работать авторизация?
Ну т.е. я не понимаю, как сделать чтобы можно было идентифицировать кто именно зашёл на сайт
помогите. очень нужно.
Быстрый ответ:

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