基于安全性考虑,准备把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 }
未完待续。。。。。。