我正在尝试执行ldap授权,然后再次检查组中的成员身份。系统是一台运行php 5.3.10的Ubuntu机器,用于对Server2008 R2 Active Directory进行身份验证。我似乎无法让ldap_search()工作。我从jExplore中提取了DN,所以我很确定DN是正确的。 ldap_bind可以在另一个函数中使用证书,所以我确信服务器和用户名/密码是有效的。错误:php Active Directory查找
PHP Warning: ldap_search(): Search: Operations error in /var/www/zzz.php on line 28
代码:
$ldap = ldap_connect('ldap://xxx.xxx');
$admins = $auth['admin'];
// User not logged in, user level '0'
if (!isset($user))
{
return 0;
}
// DN
$group_dn = 'CN=IT Employees,OU=groups,OU=users,OU=xxx,DC=xxx,DC=xxx';
// Filter
$filter = '(sAMAccountName=' . $user . ')';
// Attributes
$attr = array("memberof","givenname");
echo $group_dn.' '.$filter.' '.$attr.'<br />';
// Check if the user is a member of the Admin Group
$SubGroups = ldap_search($ldap, $group_dn, $filter, $attr); //Search the admin group for user.
$debug = ldap_get_entries($ldap, $SubGroups);
echo $debug['count'];
if ($debug['count']>>0)
{
// Yep, you are set admin. (User level 2)
echo "Admin Set<br />";
return 2;
}
else
{
// Failure. Thou art a normal user. (User level 1)
echo "Admin Denied<br />";
return 1;
}
}
也许检查$ LDAP是一个有效的资源? – ficuscr
此问题的答案应该可以帮助您:http://stackoverflow.com/questions/6222641/how-to-php-ldap-search-to-get-user-ou-if-i-dont-know-the -ou-for-base-d –
感谢Matthew的建议,但它没有解决它。 :( –