如果我需要在 LDAP 和 PHP 中搜索两个子文件夹,我应该为 $base_dn 添加什么
What to I put for $base_dn if I need to search two subfolders in LDAP and PHP
我对执行 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';
或
$base_dn = 'OU=STUDENTS,OU=MMM_USERS,DC=mmc,DC=mmm,DC=edu';
但并非没有。
总的来说,我只是想根据用户名(也是他们的 cn
和他们的 LDAP 密码来验证用户。然而,据我所知,我需要先获取他们的 DN
,以尝试 bind
与 DN
和密码的连接,取自 PHP 表单输入.
任何关于具体细节或整体方法的建议将不胜感激。
根据您的 LDAP 服务器实现,您可以使用 extensible matching filter。
但是,我怀疑您使用的是 Microsoft Active Directory,它不支持您希望执行的可扩展匹配。
-吉姆
我对执行 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';
或
$base_dn = 'OU=STUDENTS,OU=MMM_USERS,DC=mmc,DC=mmm,DC=edu';
但并非没有。
总的来说,我只是想根据用户名(也是他们的 cn
和他们的 LDAP 密码来验证用户。然而,据我所知,我需要先获取他们的 DN
,以尝试 bind
与 DN
和密码的连接,取自 PHP 表单输入.
任何关于具体细节或整体方法的建议将不胜感激。
根据您的 LDAP 服务器实现,您可以使用 extensible matching filter。
但是,我怀疑您使用的是 Microsoft Active Directory,它不支持您希望执行的可扩展匹配。
-吉姆