使用ADLDAP从Active Directory加载用户

时间:2012-03-06 10:21:15

标签: php active-directory ldap adldap

我正在使用ADLDAP库(http://adldap.sourceforge.net)与Active Directory进行交互。我正在使用PHP。我想从Active Directory获取所有用户并将其保存到阵列。有没有办法做到这一点?

2 个答案:

答案 0 :(得分:5)

你可能想做类似的事情:

$adldap = new adLDAP();
$usernames = $adldap->user()->all();

$users = array();
foreach ($usernames as $username)
{
    $userInfo = $adldap->user()->infoCollection($username);
    $users[$username] = $userInfo;
}

all()方法是here。{/ p>

答案 1 :(得分:1)

假设目录管理员允许LDAP客户端应用程序检索 来自目录的所有条目,从根中提取属性namingContexts的值 DSE。该属性的值(它是多值的)是命名上下文或后缀 这个服务器支持。使用此信息,使用以下方法构建搜索:

  • 命名上下文
  • 大小限制0f 0(无sizelimit)
  • 时间限制为0(无限时间)
  • 将匹配所有条目的过滤条件,例如(objectClass=*)(&)
  • 足以发现所有条目的范围,可能是subtree
  • 您需要的属性列表

为每个namingContext构建此搜索。再次,假设该目录 管理员将允许LDAP客户端搜索整个目录,这些搜索将会 导致包含每个条目的响应。

有许多警告,例如:

  • 这是管理员允许的吗?
  • 您的应用程序是否可以变得足够大以处理数据(如果不是简单分页结果) 机制可以提供解决方案)。
  • 我被告知AD对LDAP客户端的大小限制为1000。即使这是真的, 不应使用目录基础结构或供应商的知识对LDAP客户端进行编码。干 因此导致难以维护的糟糕,脆弱的代码。必须对所有LDAP客户端进行编码 符合IETF的LDAP理事会规定的标准。

有关详细信息,请参阅: