【问题标题】:How to get password of active directory by ldap in php?如何在php中通过ldap获取活动目录的密码?
【发布时间】:2011-02-09 08:48:35
【问题描述】:

我对 Active Directory 中的密码有疑问。 我想从用户的“用户名”获取密码 我尝试了函数“ldap_search”,但我没有找到正确的密码属性 我试过了:password、userpassword、userPassword、unicodePwd、unicodepwd,但是都不对。

我期待帮助大家 谢谢大家 :D 转身

【问题讨论】:

  • 您的具体要求是什么?获取密码或通过 Active Directory 对某人进行身份验证?
  • 您将无法从 AD 获取(如读取)密码,但是您可以对某人进行身份验证(即检查给定的用户/密码组合是否在 AD 中匹配)。跨度>

标签: php passwords ldap get


【解决方案1】:

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

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

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

作为用户绑定后,您可以查看他们的组成员身份(因为通常他们可以看到自己的)或查看其他属性,如果他们可以阅读,则意味着他们拥有一定级别的权限。 (即实现授权和身份验证)。

【讨论】:

    【解决方案2】:

    我刚刚查询了一个在 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
    

    您也可以参考:

    【讨论】:

      【解决方案3】:

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2014-08-18
        • 2019-04-02
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多