【问题标题】:LDAP Authentication with sAMAccountName and Password使用 sAMAccountName 和密码进行 LDAP 身份验证
【发布时间】:2016-07-05 12:05:33
【问题描述】:

我目前正在开发一个网络应用程序,用户可以在其中使用他们的帐户名登录。 所有用户都是 Microsoft 域的一部分。

我的用户具有以下属性:

CN: "Test Account"
displayName: "Test Account"
distinguishedName: "CN=Test Account,OU=Users,OU=CompanyName,DC=company,DC=com"
sAMAccountName: "test.account"
userPrincipalName: "test.account@company.com"

目前,我正在尝试使用此代码进行绑定:

$link = @ldap_connect($server);
@ldap_bind($link, $username, $password);

问题是,如果 displayName 不等于 sAMAccountName,ldap_bind 将失败。

那么如何在不知道 displayName/cn 的情况下使用密码和 sAMAccountName 进行绑定?

【问题讨论】:

  • 我的用户还获得了 name 属性,该属性包含值 Test Account

标签: php active-directory ldap


【解决方案1】:

您可能想看看this gist

它展示了如何在不知道用户 DN 的情况下使用 LDAP 条目中的任何唯一属性对用户进行身份验证。

请注意,您需要具有 LDAP 读取权限的用户,因为 AD 不允许匿名绑定。而且你会想要使用 ldaps 连接,因此不要使用 ldap_connect($server, $port),而是使用 ldap_connect('ldaps://ldap.server.tld:port')

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-08-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-30
    • 1970-01-01
    • 2014-02-28
    相关资源
    最近更新 更多