Windows XP Windows 7 Windows 2003 Windows Vista Windows教程綜合 Linux 系統教程
Windows 10 Windows 8 Windows 2008 Windows NT Windows Server 電腦軟件教程
 Windows教程網 >> Linux系統教程 >> Linux系統常見問題解答 >> Linux ITDB+LDAP 實現ITDB導入LDAP用戶

Linux ITDB+LDAP 實現ITDB導入LDAP用戶

日期:2017/1/20 17:35:31      編輯:Linux系統常見問題解答
需要實現的功能:   在ITDB的硬件管理中,需要為硬件指派使用人。   這個使用人想從LDAP的用戶中導入。   流程:   1、把LDAP中的用導入ITDB的數據庫中,就可以了。   但是導入成功後,這些用戶也能夠登錄ITDB了,ITDB默認從LDAP中添加進來的用戶的權限是只讀。   解決:如何把用戶導入到ITDB中?什麼時候導入?登錄時候導入?還是在為硬件指派使用者時導入?   這裡要說明的一點是:ITDB本身也開發了結合LDAP的功能。但是在官方的更新日志上說明了,該LDAP功能是不成熟的,以為著只能滿足共享LDAP用戶的基本需求。權限控制上也比較單一。要麼加入的LDAP用具有只讀權限,也可以設置成完全權限。(可以加入後單獨設置,也可以在導入前,從配置文件中修改參數,應該是在初始化文件中,init.php)   ITDB本身是如何加入LDAP用戶的呢???   首先admin/admin登錄到ITDB系統。然後在設置中設置好LDAP服務器的相關信息。 現在就可以使用LDAP中的用戶和密碼登錄了。   你第一次設置,肯定是不行的。   可以聯通LDAP後,那麼就要考慮什麼時候將LDAP中的所有用戶(或者你選擇某個分支)   導入到ITDB中來了。 打開itdb-1.22源代碼。   找到init.php的文件   打開。   拉到最下面,找到" ?>“   也就是代碼結束的位置。   在問號前一行插入下面代碼
////////////////////////////////////////////////////////////////////////////////
     
            $dsn1=ldap_con nect("192.168.1.16");//連接到ldap服務器
            $srn1     = ldap_search($dsn1,"ou=People,dc=bawo,dc=cn","(cn=*)");//查詢ou=People,dc=bawo,dc=cn下的cn打頭的結果,返回到srn1
            $infon1 = ldap_get_entries($dsn1, $srn1); //獲得srn1中條目的個數,保存在infon1這個數組中
            for ($i = 1; $i < $infon1["count"]; $i++)//開始循環加入到ITDB的數據庫
            //for ($i = 0; $i < 3; $i++)//這個是用來做測試的,只取0,1,2前三個用戶加入系統,利於刪除
            {
                $usrn1=trim(strtolower($infon1[$i]["cn"][0]));//用戶名變成小寫,然後打斷
                $u=0;
                $u=getuserbyname($usrn1);//getuserbuname用來檢查用戶名在ITDB數據庫中是否存在,如果不存在,返回-1,如果存在則返回$u。
                if ($u==-1){
                  $rnd=mt_rand(); //c r e a t e a random
                  db_execute2($dbh,
                    "IN S E R T into users (username,cookie1,usertype) values (:username,:cookie1,:usertype)",
                    array('username'=>$usrn1,'cookie1'=>$rnd,'usertype'=>2));//這個usertype就是創建用戶所賦予的權限
                  db_exec($dbh,"U P D A T E users s e t cookie1='$rnd' where username='$usrn1'",1,1);
               } 
          }
////////////////////////////////////////////////////////////

 

這段代碼的意義在於,只要打開ITDB的頁面,就會更新LDAP中的u=People,dc=bawo,dc=cn用戶到ITDB的數據庫中來。   無論登錄的成功與否,都會更新。
Copyright © Windows教程網 All Rights Reserved