如何通过php中的ldap获取活动目录的密码?

时间:2011-02-09 08:48:36

标签: php passwords ldap get

我在Active Directory中遇到密码问题。 我想从用户的“用户名”获取密码 我尝试了函数“ldap_search”,但我找不到正确的密码属性 我尝试过:password,userpassword,userPassword,unicodePwd,unicodepwd,但它们不正确。

我期待着为每个人提供帮助 谢谢大家:D trankinhly

3 个答案:

答案 0 :(得分:7)

Active Directory中的密码无法检索。它们也不在大多数目录中。 (eDirectory有一个密码策略,如果您绑定为指定用户,则可以通过LDAP扩展检索密码)

某些目录可能会让您恢复散列版本,但这也不是那么好。

要成为跨平台,最好尝试使用提供的值绑定并成功或失败。此外,LDAP表示使用空白密码的绑定实际上是匿名绑定,这可能会成功,因此您需要针对该情况进行过滤。

一旦绑定为用户,您可以查看他们的组成员身份(因为通常他们可以看到他们自己的)或查看其他属性,如果他们可以阅读它,则意味着他们具有某种程度的权限。 (即实施授权和身份验证)。

答案 1 :(得分:4)

我刚刚查询了在MS-Windows Server 2003上运行的Active Directory(在Ubuntu 10.04中使用ldapsearch),似乎只能检索以下内容并注意密码不存在。

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

您也可以参考:

答案 2 :(得分:4)

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