如果我需要在LDAP和PHP中搜索两个子文件夹,我应该为$base\u dn放置什么

如果我需要在LDAP和PHP中搜索两个子文件夹,我应该为$base\u dn放置什么,php,authentication,ldap,Php,Authentication,Ldap,我对LDAP搜索只有非常基本的了解。我将PHP与Laravel一起使用 我正在尝试搜索我的OU=users目录中的所有用户。我在其中有两个子文件夹:OU=STAFF和OU=“STUDENTS。我希望能够通过用户名在这两个目录中搜索特定的DN。问题是,我只能在指定STAFF或STUDENTS目录时才能进行搜索。我目前有: ... $base_dn = 'OU=USERS,DC=mysite,DC=mydomain,DC=edu'; $filter = "(&(objectClass=per

我对LDAP搜索只有非常基本的了解。我将PHP与Laravel一起使用

我正在尝试搜索我的
OU=users
目录中的所有用户。我在其中有两个子文件夹:
OU=STAFF
OU=“STUDENTS
。我希望能够通过用户名在这两个目录中搜索特定的
DN
。问题是,我只能在指定
STAFF
STUDENTS
目录时才能进行搜索。我目前有:

...
$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';

但不是没有它们

总的来说,我只是尝试根据用户的用户名(这也是他们的
cn
和LDAP密码)来验证用户。但是,据我所知,我需要首先获取他们的
DN
,尝试
绑定到连接,使用从PHP表单输入获取的
DN
和密码


如果您能就具体细节或总体方法提供任何建议,我们将不胜感激。

根据您的LDAP服务器实现,您可以使用

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

-吉姆

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