2011-02-09 62 views
4

我有Active Directory中的密码问题。 我想从用户的“用户名”获得密码 我试过功能“ldap_search”,但我没有找到正确的属性的密码 我试着:password,userpassword,userPassword,unicodePwd,unicodepwd,但他们是不正确的。如何在php中通过ldap获取活动目录的密码?

我期待着帮助大家 感谢所有:d trankinhly

+1

你确切的要求是什么;获取密码或通过Active Directory验证某人身份? – 2011-02-09 08:58:17

回答

3

我只是质疑的Active Directory(在Ubuntu 10.04使用ldapsearch)一个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 

您也可以参考:

6

密码在Active Directory中无法找回。它们也不在大多数目录中。 (eDirectory有一个密码策略,如果你绑定为指定的用户,那么你可以通过LDAP扩展来获取密码)

某些目录可能让你恢复哈希版本,但那也不是那么好。

是跨平台的,不如试着和提供,无论是成功或失败的值绑定。此外,LDAP表示,使用空密码的绑定实际上是一个匿名绑定,可能会成功,因此您需要为该情况进行过滤。

一旦作为用户绑定,您可以查看他们的组成员资格(因为通常他们可以看到他们自己的)或查看其他属性,如果他们能够读取它,意味着他们有一定的权限。 (即,实施授权以及认证)。

4

AD不以纯文本形式存储密码。密码哈希存储在unicodePwd中。该属性只能使用ldapi接口进行检索。常规的ldap_search不会返回任何内容。