我对进行LDAP搜索只有非常基本的了解。我在Laravel中使用PHP。
我正在尝试搜索我的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';
或
$base_dn = 'OU=STUDENTS,OU=MMM_USERS,DC=mmc,DC=mmm,DC=edu';
但不是没有他们。
总的来说,我只是想根据用户名(也就是他们的cn
)和他们的LDAP密码来验证用户。然而,据我所知,我需要首先得到他们的DN
,尝试bind
与DN
和密码的连接,取自PHP形式输入。
对于具体细节或总体方法的任何建议将不胜感激。
答案 0 :(得分:0)
根据您的LDAP服务器实施,您可以使用extensible matching filter。
但是,我怀疑您使用的是Microsoft Active Directory,并且它不支持您希望执行的可扩展匹配。
-Jim