2009-07-08 791 views
1

如何從使用PHP的LDAP獲取所有用戶。從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()){ 



    } 

} 
} 
+0

現在最大的問題是: 您使用的是什麼框架或CMS或應用程序? – 2009-07-08 13:49:55

回答

7

這是一個問題,像「如何降落飛機?」 ...... :-)

你需要在你打算做什麼提供了很多詳細信息,你」已經完成,等等......

首先,它取決於你談論的LDAP服務器的類型(例如OpenLDAP或Active Directory)以及服務器使用的LDAP模式(Active Directory有明確的標準這但特別是OpenLDAP可以將用戶存儲在任意模式中)。如果你已經知道了這些細節,你可以使用PHP的擴展庫ext/ldap或者PEAR的Net_LDAP2等更高級的抽象類來自定義你自己。如果您對LDAP通信的工作原理以及如果在使用ext/ldap執行PHP中的整個事情時遇到問題有基本的瞭解,則應該編輯您的問題以更具體。

一般而言一個LDAP通信會話涉及:

在服務器上執行操作(您的情況:檢索所有用戶帳戶)現在強烈依賴於您使用的服務器和/或架構。

+0

我有進一步的誘惑,你能幫助我嗎 – Kevin 2009-07-08 13:50:31

0

小心限制... AD默認爲返回1000個對象,因此如果AD域中有多個對象,則會出現問題。 eDirectory可讓您配置號碼,但默認爲無限制。 OpenLDAP,不知道。

您可能想要指定要檢索的屬性,即使只有cn或uid,否則默認爲所有屬性,這將是排名愚蠢。

您可能希望將其範圍限定在objectClass(例如user,inetorgperson等,取決於您的後端服務器)。