PHP - аутентификация LDAP в Windows 2003 Active Directory (идентификатор пользователя отличается от имени и фамилии) - PullRequest
0 голосов
/ 07 октября 2011

Нужна ваша помощь в аутентификации идентификатора пользователя активного каталога по LDAP. Моя проблема уникальна. Позвольте мне объяснить здесь. Прежде чем опубликовать этот вопрос, я погуглил его, а также искал в этом форуме и не получил подходящих сообщений.

Вот проблема У меня есть контроллер домена Windows 2003. Политика моей компании заключается в создании идентификаторов пользователей в домене, как показано ниже

First Name = John
Last Name = Wagner
User ID = jwagner@company.com (domain controller is company.com)

Когда я обновляю свойства пользователя в Active Directory Users and Computers, мне нужно обновить полное имя и фамилию - Джон Вагнер

Когда я пытаюсь аутентифицировать HTML-форму в php, используя идентификатор пользователя, она не работает. Однако, когда я аутентифицируюсь с именем и фамилией, это работает.

//username is given as jwagner in the html form in this case. Authentication Fails.
//username is given as "john wagner" (without the quotes). Authentication Success.

if ((isset($_POST['username'])) && (isset($_POST['password'])))
{
$username=$_POST['username'];
$password=$_POST['password'];

$adServer = "10.23.1.1";
$ldapconn = ldap_connect($adServer)
    or die("Could not connect to LDAP server.");

$ldaprdn = $username;
$ldapbind = ldap_bind($ldapconn, $ldaprdn, $password);

if ($ldapbind)
{
    $_SESSION['username'] = $username;
    $_SESSION['password'] = $password;
    header("Location: http://company.com/website1");
}
else
{
    //if authentication fails, redirect back to the login page
    header("Location: http://company.com/index.php");
}
}

Я не уверен, куда я иду не так. Разве невозможно аутентифицировать учетную запись активного каталога с помощью php, если идентификатор пользователя не равен имени и фамилии учетной записи активного каталога?

Спасибо за все ваши советы и помощь заранее.

С уважением, Вини

1 Ответ

1 голос
/ 08 октября 2011

Если вы вводите своего пользователя следующим образом:

enter image description here

вам нужно просто проверить:

$ldap_domain = 'company.com';
$ldapbind = ldap_bind($ldapconn, "$ldaprdn@$ldap_domain", $password);
...