使用PHP登录Ldap服务器
来源:互联网 发布:淘宝上的邮票是真的吗 编辑:程序博客网 时间:2024/05/16 07:39
LDAP 的全称是“轻量级目录访问协议(Lightweight Directory Access Protocol)”,是一种简单的目录协议。所谓目录,是一种专门的数据库,可以用来服务于任何应用程序。公司的域帐号登录采用的是Ldap登录验证,所有的系统均使用来自同一个 LDAP 目录的用户信息进行身验证。这样,就不需要在每个系统中保存不同的密码,只需要在 LDAP 目录中保存一个密码即可。本文主要介绍一下PHP环境下如何通过后台登录公司Ldap服务器验证用户名密码。
首先是系统的环境配置,在Linux服务器环境下,php不默认挂载ldap扩展库,因此需要添加ldap扩展库,添加ldap扩展库的方法有两种:一是重新编译php,这种方法比较繁琐,另外一种方法是通过phpize和configure的方式加载ldap的so文件来使php支持ldap扩展库,相对来说更加的方便快捷。这里介绍的是第二种方法。
(1)通过http://www.php.net/releases/ 下载当前系统php版本对应的源码包,解压到服务器某目录下
(2)进入该目录 cd/XXX/XXX/php-5.X.XX/ext/ldap
(3)在当前目录运行phpize/usr/local/php/bin/phpize 生成configure文件
(4)运行configure文件并添加生成ldap扩展的参数
./configure--with-php-config --with-ldap
(5)运行make make install
运行结束后会生成ldap.so文件
(6)找到php.ini文件,找到extension_dir,将ldap.so文件复制进该目录
(7)php.ini文件中添加extension=ldap.so
(8)重启apache,这样就为php添加了ldap扩展库
下面介绍一下在php下使用ldap到服务器验证用户名密码。
$ldapConnect=ldap_connect(LDAP_SERVER_IP , LDAP_SERVER_PORT ); //建立到ldap服务器的连接LDAP_SERVER_IP是ldap服务器ip,LDAP_SERVER_PORT是ldap服务器端口(默认389) $bind= @ldap_bind($ldapConnect , $user . ‘@corp.qihoo.net’,$pass); //验证帐号密码,ldap_bind第一个为绑定的连接,第二个为用户名(注意是否有后缀),第三个为密码。 if($bind ) {//验证成功 $SEARCH_DN= 'ou=XXX,ou=XXX,dc=XXXX,dc=XXXX,dc=XXXX'; //搜索基本条件值(类似于数据库的库和表) $SEARCH_FIELDS= array('mail','displayName', 'cn'); //需要的搜索结果 $result= @ldap_search($ldapConnect,$SEARCH_DN,"cn=" . $user,$SEARCH_FIELDS); //第三个参数是限定搜索结果为用户名为$user(类似where后的搜索条件) $retData = @ldap_get_entries($ldapConnect, $result); foreach($retDataas $k => $v) {//筛选整理数据,返回 return array( 'userName'=> $v['cn'][0], 'nickName'=> $v['displayname'][0] 'mail'=> $v['mail'][0] ); } } else {//验证失败 } ldap_close($ldapConnect); //关闭ldap连接
- 使用PHP登录Ldap服务器
- 使用ldap登录服务器
- 使用PHP连接LDAP服务器
- Ldap服务器登录配置
- php,ldap登录例子
- 搭建 登录php服务器
- PHP 登录 FTP 服务器
- 用JNDI 登录 LDAP 服务器的小程序
- 使用 Microsoft Active Directory 作为 LDAP 服务器
- 如何使用LdapConnection 类链接 Ldap服务器
- (转)Openfire服务器配置全过程,使用LDAP~
- ldap服务器
- 服务器-LDAP
- 用户名+密码登录ldap服务器,注意密码没有存储在ldap中的password
- php+ldap
- CAS 使用 ESUP 插件认证 LDAP 用户的单点登录
- C# LDAP认证登录
- C# LDAP认证登录
- 转自老赵:SICP书荐,及函数复用的一些解释
- poj 1755 Triathlon(半平面交解不等式)
- Java采用readInt()方法直接读取特定的ZIP压缩文件出现了奇怪的问题
- VIM查看文件编码 文件编码格式转换 文件名编码转换.
- 开源免费的C/C++网络库(c/c++ sockets library)
- 使用PHP登录Ldap服务器
- DialogResult
- sleep和wait有什么区别的三种解释
- Oracle 绑定变量详解
- weblogic虚拟主机配置
- ural 1837. Isenbaev's Number bfs
- Oracle 触发器
- C++开源算法库OpenSAL(Open Standardized Algorithm Library)
- HDU 4704 Sum (费马定理+快速幂)