如果我需要在LDAP和PHP中搜索两个子文件夹,我可以为$ base_dn添加什么

时间:2015-03-10 16:30:11

标签: php authentication ldap

我对进行LDAP搜索只有非常基本的了解。我在Laravel中使用PHP。

我正在尝试搜索我的OU=USERS目录中的所有用户。我有两个子文件夹:OU=STAFFOU="STUDENTS。我希望能够在这两个目录中按用户名搜索特定的DN。问题是,如果我指定STAFFSTUDENTS目录,我只能进行搜索工作。我目前有:

...
$base_dn = 'OU=USERS,DC=mysite,DC=mydomain,DC=edu';
$filter = "(&(objectClass=person)(sAMAccountName=$username))";

$result = ldap_search($connection, $base_dn, $filter);
$entries = ldap_get_entries($connection, $result);


foreach ($entries as $entry) {
    $ldapUsername = $entry["sAMAccountName"][0];
    echo $ldapUsername;
    return;
}

如果我指定

,它将起作用
$base_dn = 'OU=STAFF,OU=MMM_USERS,DC=mmc,DC=mmm,DC=edu';

$base_dn = 'OU=STUDENTS,OU=MMM_USERS,DC=mmc,DC=mmm,DC=edu';

但不是没有他们。

总的来说,我只是想根据用户名(也就是他们的cn)和他们的LDAP密码来验证用户。然而,据我所知,我需要首先得到他们的DN,尝试bindDN和密码的连接,取自PHP形式输入。

对于具体细节或总体方法的任何建议将不胜感激。

1 个答案:

答案 0 :(得分:0)

根据您的LDAP服务器实施,您可以使用extensible matching filter

但是,我怀疑您使用的是Microsoft Active Directory,并且它不支持您希望执行的可扩展匹配。

-Jim