PHP LDAP 搜索

标签 php ldap windows-server-2003

我有一个测试环境,包括两台Windows 2003服务器,一台运行IIS6.0和php 5.2,另一台是域 Controller 。我正在尝试获取一个 php 脚本来使用 LDAP 来查找服务器上的所有用户。

域是 openDesk.local,用户是默认 OU 用户。

到目前为止,我能够连接并绑定(bind)到域 Controller ,但我只是无法搜索它,我有大约 1 小时的 LDAP 经验,所以我相当确定它是一个与搜索有关的简单语法错误,当我运行此代码时出现“搜索失败”。

<?php

$host = "192.168.1.98"; 
$user = "username"; 
$pswd = "password";

$ad = ldap_connect($host)
  or die( "Could not connect!" );

ldap_set_option($ad, LDAP_OPT_PROTOCOL_VERSION, 3)
 or die ("Could not set ldap protocol");

$bd = ldap_bind($ad, $user, $pswd)
  or die ("Could not bind");

$dn = "OU=users,DC=openDesk,DC=local";

$filter = "cn=*";


$search = ldap_search($ad, $dn, $filter)
    or die ("Search failed");

$entries = ldap_get_entries($ad, $search);

echo $entries["count"];


?>

最佳答案

LDAP 查询应括在括号内。您可能还想在不使用通配符的情况下搜索属性。像“(objectClass=user)”之类的东西可以用作过滤器。

您可以在此处阅读有关 AD 搜索语法的更多信息:http://msdn.microsoft.com/en-us/library/aa746475(v=vs.85).aspx

关于PHP LDAP 搜索,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5943491/

相关文章:

active-directory - 单行 LDAP 查询,枚举来自超组内的组的用户

sockets - 我在 Windows Server 2003 中可以拥有的打开套接字数的上限是多少

php - 如何使用 Ionic 4、mysql 和 Angular 7 进行身份验证和 Crud 操作?

PHP 动态变量作为 jQuery 选择器

c# - 在 LDAP 与凭据绑定(bind)时授权任何用户名为空的人

excel - 为什么 Perl 保存两份 Excel 电子表格副本?

windows - 域帐户每隔几分钟就会用正确的密码锁定一次

php - 如何配置 NGINX + PHP5-FPM 为特定 IP 范围保留连接插槽?

php - Phalcon UTF8 兼容吗?

active-directory - 通过 ldapmodify 在 AD 中更改密码时违反 LDAP 约束