imho.ws
IMHO.WS  

Вернуться   IMHO.WS > Веб-мастеру > Веб-программирование
Опции темы
Старый 27.09.2007, 15:32     # 1
Dagas
Guest
 
Сообщения: n/a

Invalid credentials идентификация пользователя на PHP

Вкратце обстановка:
есть сервер Win2K на котором есть AD организации. Там поднято более 2х тысяч пользователей, и на этом всем завязана куча программного обеспечения (это что бы потом не говорили, типа "да ставьте *nix и не парьтесь!"). Есть сайт организации, поднят на FreeBSD.
Задача: создать страницу, с идентификацией пользователей из AD.
Поставлен PHP5 под него включен модуль php-ldap.

Код:
if(!isset($_SERVER['PHP_AUTH_USER']))
 {
  header("WWW...");
  header("HTTP/1.0 ...");
  exit;
 }
получаю $_SERVER['PHP_AUTH_USER'] $_SERVER['PHP_AUTH_PW'] - логин и пароль, под которыми пользователь хочет зайти на страничку. Теперь этого пользователя надо аутентифицировать. Для этого есть тестовый пользователь, под которым я захожу в AD используя ldap_connect(...), ldap_bind(...). Делаю поиск по AD, вычленяю пользователя используя найденный атрибут $info[$i]["samaccountname"][0], который сравниваю с $_SERVER['PHP_AUTH_USER']. Сравнение проходит успешно, получаю DN пользователя. А вот тут начинается мистика. Дело в том, что пользователи AD занесены с использованием кириллицы. Получается DN примерно такого вида: CN=ФИО,OU=Центр информационных технологий,OU=Сотрудники,DC=host,DC=com Из AD это значение, хранящееся в $info[$i]["dn"] приходит в кодировке UTF-8 (в которой я должен их вбивать назад в AD). Следующим шагом должна стать проверка введенной пользователем пары логин/пароль. Логин уже проверен (найден DN этого логина в базе), а пароль пока еще и пальцем никто не трогал. Делаю
Код:
$login_user=$info[$i]["dn"];
...
ldap_unbind(...);
ldap_connect(...);
ldap_bind($ds,$login_user,$_SERVER['PHP_AUTH_PW']);
...
и получаю ошибку Invalid credentials. Если делаю вход под именем тестового пользователя - повторный биндинг проходит, т.е. код написан верно? Пароль правильный 100%. Данные про пользователя, выведенные по ldap_search(...) тоже полностью совпадают с данными AD.
В чем может быть проблема?
 
Старый 27.09.2007, 15:41     # 2
EvroStandart
Full Member
 
Аватар для EvroStandart
 
Регистрация: 20.01.2004
Адрес: Таллинн
Пол: Male
Сообщения: 623

EvroStandart Имеются все основания чтобы гордиться собойEvroStandart Имеются все основания чтобы гордиться собойEvroStandart Имеются все основания чтобы гордиться собойEvroStandart Имеются все основания чтобы гордиться собойEvroStandart Имеются все основания чтобы гордиться собойEvroStandart Имеются все основания чтобы гордиться собойEvroStandart Имеются все основания чтобы гордиться собойEvroStandart Имеются все основания чтобы гордиться собойEvroStandart Имеются все основания чтобы гордиться собойEvroStandart Имеются все основания чтобы гордиться собойEvroStandart Имеются все основания чтобы гордиться собой
php-ldap я не использовал. В общем, там остаётся только выписывать значения переменных из разных мест. Дальше сравнивать и думать. Если будет ясно что именно и в каком месте теряется - можно искать решение.
EvroStandart вне форума  
Старый 10.10.2007, 11:27     # 3
Hubbitus
мод
IMHO Кодер-200(6,7,8)
 
Регистрация: 29.03.2003
Адрес: Saint-Petersburg, Russia
Пол: Male
Сообщения: 2 734

Hubbitus Бог с наворотамиHubbitus Бог с наворотами
Hubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотами
http://www.opennet.ru/tips/info/1466.shtml может это поможет в вопросе аутентификации в виндовом домене?
__________________
Я делаю Линукс! Присоединяйтесь к свободным людям!

Связаться со мной всегда можно по джабберу: Hubbitus@jabber.ru
Pahan-Hubbitus.
Hubbitus вне форума  


Ваши права в разделе
Вы НЕ можете создавать новые темы
Вы не можете отвечать в темах.
Вы НЕ можете прикреплять вложения
Вы НЕ можете редактировать свои сообщения

BB код Вкл.
Смайлы Вкл.
[IMG] код Выкл.
HTML код Выкл.

Быстрый переход


Часовой пояс GMT +4, время: 21:36.




Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.