首页 > php教程 > php手册 > 正文

php连接LDAP服务器(Active Directory)及信息的检索

php中文网
发布: 2016-06-06 19:36:25
原创
1336人浏览过

LDAP是个Protocol,目前常用的实现有如下三种方案: 1 NDS(Novell Directory Services) 2 Microsoft Active Directory 3 OpenLDAP 要实现LDAP,第一步是设计DIT(即Directory Information Tree)。 以下 连接 代码在Microsoft Active Directory(即AD)下验

  ldap是个protocol,目前常用的实现有如下三种方案:

    1 NDS(Novell Directory Services)

    2 Microsoft Active Directory

    3 OpenLDAP

  要实现LDAP,第一步是设计DIT(即Directory Information Tree)。

立即学习PHP免费学习笔记(深入)”;

  以下连接代码在Microsoft Active Directory(即AD)下验证通过。

  最简单的bind方式:

php

// LDAP variables
$ldaphost = "192.168.8.5";  // your ldap servers
$ldapport = 389;                 // your ldap server's port number

// Connecting to LDAP

$ldapconn = ldap_connect($ldaphost, $ldapport) or die("Could not connect to $ldaphost");


$ldaprdn  = "testuser";     // ldap rdn or dn
$ldappass = 'testpwd';  // associated password

if ($ldapconn) {

    
// binding to ldap server
    $ldapbind = ldap_bind($ldapconn, $ldaprdn, $ldappass);

 
//var_dump($ldapbind);

    // verify binding

    if ($ldapbind) {
        
echo "LDAP bind successful...";
    } 
else {
        
echo "LDAP bind failed...";
    }

}

  是否能采用这种方式,取决于Directory Information Tree的结构。该方式存在明显缺点,要么bind成功,要么失败。即无法分别是用户名错误,还是密码错误。

  search方式:

   $ldap_host = "192.168.8.5";

    $ldap_port = "389";

    $base_dn = "OU=zzz,DC=test,DC=com,DC=cn";

    $filter = "(cn=*)";

    $ldap_user ="cn=admin,OU=zzz,DC=test,DC=com,DC=cn";

    $ldap_pass = "123456";

    $connect = ldap_connect( $ldap_host, $ldap_port);

    ldap_set_option($connect, LDAP_OPT_PROTOCOL_VERSION, 3);

    $bind = ldap_bind($connect, $ldap_user, $ldap_pass);

citySHOP多用户商城系统
citySHOP多用户商城系统

citySHOP是一款集CMS、网店、商品、分类信息、论坛等为一体的城市多用户商城系统,已完美整合目前流行的Discuz! 6.0论坛,采用最新的5.0版PHP+MYSQL技术。面向对象的数据库连接机制,缓存及80%静态化处理,使它能最大程度减轻服务器负担,为您节约建设成本。多级店铺区分及联盟商户地图标注,实体店与虚拟完美结合。个性化的店铺系统,会员后台一体化管理。后台登陆初始网站密匙:LOVES

citySHOP多用户商城系统 0
查看详情 citySHOP多用户商城系统

    $read = ldap_search($connect, $base_dn, $filter);

    

    $info = ldap_get_entries($connect, $read); 

    echo $info["count"]." entrees retournees

"; 

    for($ligne = 0; $ligne

    {

        for($colonne = 0; $colonne

        {

            $data = $info[$ligne][$colonne];

            echo $data.":".$info[$ligne][$data][0]."
";

        }

        echo "
";

    }

ldap_close($connect);

   其中:

    $ldap_user ="cn=admin,OU=zzz,DC=test,DC=com,DC=cn";

    $ldap_pass = "123456";

  这两个语句定义了一个专用的LDAP账户用于登陆到LDAP服务器,该帐号必须具有检索权限。

  在登录到LDAP服务器之后,就可以对LDAP中的信息进行检索ldap_search)了,此时就可以判断某个id是否存在,密码是否正确等等。

  在具体开发中采用哪种方式,取决于Directory Information Tree的设计。

相关标签:
php
PHP速学教程(入门到精通)
PHP速学教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号