从LDAP获取所有用户

时间:2009-07-08 12:54:25

标签: php ldap

如何使用PHP从LDAP获取所有用户。

function getUsers() {

         $process = new process();
    //ldap->s_Host('domain.com');
    //$ldap->s_Domain('domain.com');
        $process->s_Host('domain.com');
        $process->s_Domain('domain.com');   
        $process->s_LdapSecure(false);

         if($process->LdapConn()){
             if($process->LdapBind()){



     }

}
}

2 个答案:

答案 0 :(得分:7)

这是一个类似“我如何着陆飞机?”的问题......: - )

你需要提供更多关于你将要做什么,你已经做了什么等等的细节......

首先,它取决于您所谈论的LDAP服务器类型(例如OpenLDAP或Active Directory)以及服务器使用的LDAP模式(Active Directory对此有明确的标准,但特别是OpenLDAP可以将用户存储在任意位置模式)。如果您已经弄清楚了这些细节,那么您可以使用ext/ldap(PHP的LDAP扩展库)或更高的抽象(例如PEAR的Net_LDAP2)来熟悉自己。如果您对LDAP通信的工作方式有基本的了解,并且在使用ext / ldap在PHP中执行整个操作时遇到问题,那么您应该将问题编辑为更具体。

通常,LDAP通信会话涉及:

  • 连接到服务器:ldap_connect()
  • 绑定到服务器(也称为具有适当访问权限的用户进行身份验证):ldap_bind()
  • 在服务器上执行操作
  • 关闭连接:ldap_unbind()

在服务器上执行操作(在您的情况下:检索所有用户帐户)现在在很大程度上取决于您正在使用的服务器和/或架构。

答案 1 :(得分:0)

注意限制... AD默认返回1000个对象,因此如果对象多于AD域中的对象,则会出现问题。 eDirectory允许您配置号码,但默认为无限制。 OpenLDAP,不知道。

你可能想要指定一个要检索的属性,即使只有cn或uid,否则默认是所有属性,这将是愚蠢的。

您可能希望将其范围限定为objectClass(例如用户,inetorgperson等,具体取决于您的后端服务器)。