Php如何操作LDAP
2.1 Php如何與LDAP串連和關閉
$ds=ldap_connect("ServerName")
ServerName是LDAP的伺服器名,
例:
$ds=ldap_connect(“10.31.172.30:1000”)
傳回值是:true 或 false
關閉串連
ldap_close($ds);
2.2 在php中如何搜尋使用者資訊
$ds=ldap_connect("10.31.172.30:1000");
//首先串連上伺服器
$justthese = array("cn","userpassword",”location”);
//搜尋函數中的一個參數,要求返回哪些資訊,
//以上傳回cn,userpassword,location,這些都要求小寫
$sr=ldap_search($ds,"o=jite", "cn=dom*",$justthese);
//第一個參數開啟LDAP的代號
//第二個參數最基本的 dn 條件值 , 例:”o=jite,c=cn”
//第三個參數 filter 為布林條件,它的文法可以在 Netscape 站上找一份 dirsdkpg.pdf 檔案.
// ’o’為組織名,’cn’ 為使用者名稱,使用者名稱可用萬用字元 ’*’
echo "domadmin姓氏有".ldap_count_entries($ds,$sr)." 個<p>";
//ldap_count_entries($ds,$sr)傳回記錄總數
$info = ldap_get_entries($ds, $sr);
//LDAP的全部傳回資料
echo "資料傳回 ".$info["count"]."筆:<p>";
for ($i=0; $i<$info["count"]; $i++) {
echo "dn為:". $info[$i]["dn"] ."<br>";
echo "cn為:". $info[$i]["cn"][0] ."<br>"; //顯示使用者名稱
echo "email為:". $info[$i]["mail"][0] ."<p>"; //顯示mail
echo "email為:". $info[$i][“userpassword"][0] ."<p>"; //顯示加密後的密碼
}
2.3 添加使用者
$ds=ldap_connect("10.31.172.30:1000");
//首先串連上伺服器
$r=ldap_bind($ds,"cn=domadmin,o=jite","password");
//系住一個管理員,有寫的許可權
// cn=domadmin,o=jite順序不能變
$info["cn"]="aaa"; //必填
$info["userpassword"]="aaa";
$info["location"]="shanghai";
$info["objectclass"] = "person"; //必填person為個人,還有server…
ldap_add($ds, "cn=".$info["cn"].",o=jite", $info);
ldap_unbind($ds);
//取消綁定
ldap_close($ds);
//關閉串連
2.4 刪除使用者
$ds=ldap_connect("10.31.172.30:1000");
//首先串連上伺服器
ldap_bind($ds,"cn=domadmin,o=jite","password");
//綁定管理員,有刪除的許可權
$dn="cn=dingxf,o=jite";
ldap_delete($ds, $dn);
//刪除使用者
ldap_unbind($ds);
//取消綁定
ldap_close($ds);
//關閉串連
2.5 修改使用者資料
$ds=ldap_connect("10.31.172.30:1000");
//首先串連上伺服器
ldap_bind($ds,"cn=domadmin,o=jite","password");
//綁定管理員,有修改的許可權
$dn="cn=dingxf,o=jite";
//使用者dn
$info["userpassword"]="aaa"; //要修改的資訊,放在陣列變數中
$info["location"]="shanghaisdaf";
ldap_modify($ds, $dn , $info);
//修改函數
ldap_unbind($ds);
//取消綁定
ldap_close($ds);
//關閉串連
2.6 使用者登入驗證
$ds=ldap_connect("10.31.172.30:1000");
//首先串連上伺服器
if (ldap_bind($ds,"cn=dingxf,o=jite","dingxf")){
echo "驗證通過";
}else{
echo "驗證不通過";
}
ldap_unbind($ds);
//取消綁定
ldap_close($ds);
//關閉串連