如何在使用匿名绑定时在LDAP中搜索用户?

时间:2017-02-10 00:42:47

标签: php active-directory ldap

我正在尝试在进行匿名绑定时在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中搜索用户?

1 个答案:

答案 0 :(得分:2)

您的Active Directory管理员应该告诉您,默认情况下禁用匿名访问。他们很可能不愿意改变它。对于应用程序,请求服务帐户(稳定密码)。