我正在尝试在进行匿名绑定时在LDAP中搜索用户。首先是这可能吗?
这是一个有效的代码。
$ldaphost = "dc.mydomain.com"; // your ldap server
$ldapport = 389; // your ldap server's port number
$ldapuser = "username@mydomain.com";
$ldappass = "somepass";
$basedn = 'dc=mydomain,dc=com';
$searchfor = 'seconduser';
//Connecting to LDAP
$ldapconn = ldap_connect($ldaphost, $ldapport) or die("Could not connect to" . $ldaphost);
if ($ldapconn)
{
ldap_set_option($ldapconn, LDAP_OPT_PROTOCOL_VERSION, 3);
ldap_set_option($ldapconn, LDAP_OPT_REFERRALS, 0);
// binding to ldap server
$ldapbind = ldap_bind($ldapconn,$ldapuser, $ldappass);
$filter = '(&(samaccounttype=805306368)(samaccountname=' . $searchfor . '))';
$result = ldap_search($ldapconn, $basedn, $filter, array('samaccountname'));
$info = ldap_get_entries($ldapconn, $result);
echo '<pre>';
print_r($info);
}
上述代码的唯一内容是我必须提供绑定用户。我想匿名做。为此,我从
更改了以下代码行$ldapbind = ldap_bind($ldapconn,$ldapuser, $ldappass);
到
$ldapbind = ldap_bind($ldapconn);
但这会在ldap_search()
ldap_search(): Search: Operations error
如何使用匿名绑定在LDAP中搜索用户?
答案 0 :(得分:2)
您的Active Directory管理员应该告诉您,默认情况下禁用匿名访问。他们很可能不愿意改变它。对于应用程序,请求服务帐户(稳定密码)。