PHP连接LDAP进行登录验证
基于安全性考虑,准备把PHP做的自动化平台加入ldap登录验证,具体做法如下:
了解背景:
LDAP 的全称是“轻量级目录访问协议(Lightweight Directory Access Protocol)”,是一种简单的目录协议。所谓目录,是一种专门的数据库,可以用来服务于任何应用程序。公司的域帐号登录采用的是Ldap登录验证,所有的系统均使用来自同一个 LDAP 目录的用户信息进行身验证。这样,就不需要在每个系统中保存不同的密码,只需要在 LDAP 目录中保存一个密码即可。本文主要介绍一下PHP环境下如何通过后台登录公司Ldap服务器验证用户名密码。
环境配置(安装ldap扩展库):
首先是系统的环境配置,在Linux服务器环境下,php不默认挂载ldap扩展库,因此需要添加ldap扩展库,添加ldap扩展库的方法有两种:一是重新编译php,这种方法比较繁琐,另外一种方法是通过phpize和configure的方式加载ldap的so文件来使php支持ldap扩展库,相对来说更加的方便快捷。这里介绍的是第二种方法。
(1)通过http://www.php.net/releases/ 下载当前系统php版本对应的源码包,解压到服务器某目录下
(2)进入该目录 cd /user/local/php/ext/ldap
ps:如果PHP目录下面没有发现ext文件,可以在网上下载php源码,然后将ext文件放到php文件下;
(3)在当前目录运行phpize/usr/local/php/bin/phpize 生成configure文件
(4)运行configure文件并添加生成ldap扩展的参数
./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代码添加验证
/**
* 添加登录时LDAP验证
*/
public function doLogin(){
$username = "companydomain\\".$_POST['username'];
$password = $_POST['password'];
$conn = ldap_connect('192.168.1.4') or die('无法连接AD服务器');;
if ($conn)
{
$bind = ldap_bind($conn,$username, $password); // 如果连接了,便进行登入
if ($bind)
{
$this->success("验证通过",U('/admin/index/index'));
} else {
$this->error('登录失败');
}
ldap_close($conn);
}
未完待续。。。。。。
PHP连接LDAP进行登录验证的更多相关文章
- Python实现LDAP用户名密码验证
网上借鉴了不少东西,下面是python代码,备份后用. 思路,因为每个用户的组都不一样,这样就导致了dn不一致的情况, 据需要先根据用户名获取该用户的dn,然后再bind用户名和密码进行验证. 反正是 ...
- java桥连接sql server之登录验证及对数据库增删改查
一:步骤 1.sql server建立数据库和相关表 2.建立数据源 (1).打开控制面板找到管理,打开ODBC选项或直接搜索数据源 (2).打开数据源配置后点击添加,选择sql server点击 ...
- 3月9日(用 DBHelper 工具连接 mysql 数据库 实现登录验证)
一. 用DBHelper 与mysql 连接 实现最简单的登录验证. (1)新建 web project ----->选择src导入 DBHelper 工具包-------->选择web ...
- java连接sql server--关于登录验证及对数据库增删改查应用
一:步骤## 1.sql server建立数据库和相关表 2.建立数据源 (1).打开控制面板找到管理,打开ODBC选项或直接搜索数据源 (2).打开数据源配置后点击添加,选择sql server ...
- php 连接redis,并登录验证
环境: centos7 上安装了redis, 同时安装了php的redis扩展 yum install redis yum install php-pecl-redis redis服务端设置了登录密码 ...
- ldap登录验证的通用步骤
和利用数据库进行验证类似,LDAP中也是利用登陆名和密码进行验证,LDAP中会定义一个属性password,用来存放用户密码,而登陆名使用较多的都是mail地址.那怎么样才能正确的用LDAP进行身份验 ...
- AD域登录验证
AD域登录验证 作者:Grey 原文地址:http://www.cnblogs.com/greyzeng/p/5799699.html 需求 系统在登录的时候,需要根据用户名和密码验证连接域服务器进行 ...
- 在Windows和UNIX下利用PHP和LDAP进行身份验证
我现在的老板曾要求我为企业内部的Web服务提供一种标准的身份验证方法.我遇到的一个主要问题就是我们公司主要使用了两种平台:UNIX和.所以,我的第一个想法并不很成功:它要求每个员工都使用UNIX或者L ...
- 如何使用Python连接ldap
如何使用Python连接ldap 好多使用ldap认证的软件都是Python的,比如superset和airflow, 好吧,他们都是airbnb家的.在配置ldap的时候可能会出现认证失败,你不知道 ...
随机推荐
- struts2捕获action类异常
首先是STRUTS.XML的配置.重点在于配置文件: <!-- struts2捕获action类异常 --> <global-results> <resu ...
- ArcGIS教程:创建特征
摘要 创建由输入样本数据和一组栅格波段定义的类的 ASCII 特征文件. 使用方法 · 输出特征文件应使用扩展名 .gsg. · 输入栅格波段和输入栅格或要素样本数据必须具有重叠范围.将仅为公共区域计 ...
- Linux 高速操作IOport
在嵌入式设备中对GPIO的操作是最主要的操作. 一般的做法是写一个单独驱动程序,网上大多数的样例都是这种.事实上linux以下有一个通用的GPIO操作接口.那就是我要介绍的 "/sys/cl ...
- 动态生成表格的每一行的操作按钮如何获取当前行的index
for(var i=0; i<10; i++) { $("#tableList").append( $("<tr>").append( $(& ...
- centos6.5安装禅道
1.安装禅道需要安装以下环境 mysql php 5 apache 2 2.安装命令 1.安装mysql yum install mysql mysql-server 2.安装apache yum i ...
- 关于close和shutdown
我们知道TCP是全双工的,可以在接收数据的同时发送数据.假设有主机A在和主机B通信,可以认为是在两者之间存在两个管道.就像这样:A ---------> BA <--------- B 1 ...
- 配置SQL Server on Linux(2)
1. 前言 前一篇配置SQL Server on Linux(1),地址:http://www.cnblogs.com/fishparadise/p/8125203.html ,是关于更改数据库排序规 ...
- Sublime Text编辑器 + vim插件
Sublime安装 Sublime Text 是一个代码编辑器.Sublime Text是由程序员Jon Skinner于2008年1月份所开发出来,它最初被设计为一个具有丰富扩展功能的Vim. Su ...
- 商城项目整理(三)JDBC增删改查
商品表的增加,修改,删除,订单表的增加,确认,用户表的查看,日志表的增加,查看 商品表建表语句: create table TEST.GOODS_TABLE ( gid NUMBER not null ...
- Hibernate学习---单表查询
我们都知道SQL是非常强大的,为什么这么说呢?相信学过数据库原理的同学们都深有体会,SQL语句变化无穷,好毫不夸张的说可以实现任意符合我们需要的数据库操作,既然前面讲到Hibernate非常强大,所以 ...