Как получить пароль активной директории по ldap в php? - PullRequest
5 голосов
/ 09 февраля 2011

У меня проблема с паролем в Active Directory.Я хочу получить пароль от "username" пользователя. Я попробовал функцию "ldap_search", но не могу найти правильный атрибут для пароля, который я пробовал: пароль, userpassword, userPassword, unicodePwd, unicodepwd, но они неверны.

С нетерпением жду помощи каждому Спасибо за все: D транкинхлы

Ответы [ 3 ]

7 голосов
/ 09 февраля 2011

Пароли в Active Directory не могут быть восстановлены. И при этом они не в большинстве каталогов. (eDirectory имеет политику паролей, поэтому, если вы привязываетесь как указанный пользователь, вы можете получить пароли с помощью расширений LDAP)

В некоторых каталогах можно восстановить хэшированные версии, но это тоже не так уж и хорошо.

Чтобы быть кроссплатформенным, лучше попытаться связать с предоставленными значениями и либо успешно, либо с ошибками. Кроме того, в LDAP говорится, что связывание с пустым паролем на самом деле является анонимным связыванием, которое, вероятно, будет успешным, поэтому вам необходимо выполнить фильтрацию для этого случая.

Однажды будучи привязанным как пользователь, вы можете посмотреть на членство в его группах (поскольку обычно они могут видеть свое собственное) или посмотреть на какой-то другой атрибут, который, если они могут его прочитать, означает, что у них есть некоторый уровень прав. (Т.е. реализовать авторизацию, а также аутентификацию).

4 голосов
/ 10 марта 2011

AD не хранит пароль в виде обычного текста.Хэш пароля хранится в unicodePwd.Этот атрибут можно получить только с помощью интерфейса ldapi.Обычный ldap_search ничего не вернет.

4 голосов
/ 09 февраля 2011

Я только что запросил Active Directory (используя ldapsearch в Ubuntu 10.04), работающий на MS-Windows Server 2003, и кажется, что можно получить только следующее, и обратите внимание, что пароля там нет.

givenName
distinguishedName
instanceType
whenCreated
whenChanged
displayName
uSNCreated
memberOf
uSNChanged
name
objectGUID
userAccountControl
badPwdCount
codePage
countryCode
badPasswordTime
lastLogoff
lastLogon
pwdLastSet
primaryGroupID
objectSid
accountExpires
logonCount
sAMAccountName
sAMAccountType
userPrincipalName

Вы также можете сослаться:

...