基於安全性考慮,準備把PHP作的自動化平臺加入ldap登陸驗證,具體作法以下:php
瞭解背景:數據庫
LDAP 的全稱是「輕量級目錄訪問協議(Lightweight Directory Access Protocol)」,是一種簡單的目錄協議。所謂目錄,是一種專門的數據庫,能夠用來服務於任何應用程序。公司的域賬號登陸採用的是Ldap登陸驗證,全部的系統均使用來自同一個 LDAP 目錄的用戶信息進行身驗證。這樣,就不須要在每一個系統中保存不一樣的密碼,只須要在 LDAP 目錄中保存一個密碼便可。本文主要介紹一下PHP環境下如何經過後臺登陸公司Ldap服務器驗證用戶名密碼。apache
環境配置(安裝ldap擴展庫):安全
首先是系統的環境配置,在Linux服務器環境下,php不默認掛載ldap擴展庫,所以須要添加ldap擴展庫,添加ldap擴展庫的方法有兩種:一是從新編譯php,這種方法比較繁瑣,另一種方法是經過phpize和configure的方式加載ldap的so文件來使php支持ldap擴展庫,相對來講更加的方便快捷。這裏介紹的是第二種方法。服務器
(1)經過http://www.php.net/releases/ 下載當前系統php版本對應的源碼包,解壓到服務器某目錄下dom
(2)進入該目錄 cd /user/local/php/ext/ldapide
ps:若是PHP目錄下面沒有發現ext文件,能夠在網上下載php源碼,而後將ext文件放到php文件下;this
(3)在當前目錄運行phpize/usr/local/php/bin/phpize 生成configure文件spa
(4)運行configure文件並添加生成ldap擴展的參數.net
./configure --with-php-config=/usr/local/php/bin/php-config --with-ldap
(5)運行 make
(6)運行 make install
(7)php.ini文件中添加extension=ldap.so;同時將ldap.dll的註釋去除(啓動ldap);
(8)重啓apache,這樣就爲php添加了ldap擴展庫
ps:重啓Apache時若是出現端口被佔用,手動將httpd的進程所有殺掉,而後重啓(具體爲啥被佔用尚未深刻研究);
(9)最後一步,利用PHPinfo()查看ldap是否安裝成功(下圖表示安裝成功)
到此,ldap就安裝成功了。
PHP代碼添加驗證
1 /** 2 * 添加登陸時LDAP驗證 3 */ 4 function doLogin(){ 5 $username = "companydomain\\" . $_POST['username']; 6 $password = $_POST['password']; 7 8 $conn = ldap_connect('192.168.1.4') or die('沒法鏈接AD服務器');; 9 10 if ($conn) { 11 $bind = ldap_bind($conn, $username, $password); // 若是鏈接了,便進行登入 12 if ($bind) { 13 $this->success("驗證經過", U('/admin/index/index')); 14 } else { 15 $this->error('登陸失敗'); 16 } 17 ldap_close($conn); 18 } 19 }
未完待續。。。。。。