电脑安全

您当前的位置:主页 > 电脑安全 >

PHP LDAP 访问 Windows AD(Active Directory)-网络编程

来源:[db:来源]标题:   目录    编辑:电脑技术全能网 时间:2019-09-18 17:59

原标题:PHP LDAP 访问 Windows AD(Active Directory)-网络编程
   假如应用运动名目(Active Directory)取代在数据库表中树立账号, 你能够应用本来Windows收集中的账号.LDAP, 轻量级名目拜访协定(Lightweight Directory Access Protocol), 是用来拜访微软的运动名目等名目效劳器(DS, Directory Server)的协定. PHP默许支撑LDAP.上面是应用LDAP停止用户身份考证的PHP顺序. 在微软的运动名目中, 用户的独一标识是"samaccountname", 有些DS是"uid". 方式是: 1. 用有权限的账号的dn(形如 cn=user_name,ou=web,dc=ideawu,dc=com)衔接LDAP Server. 2. 依据登任命户的名字查问其dn. 3. 用该dn衔接LDAP Server. 假如衔接上就是登录胜利. 留神! 微软的运动名目效劳器能够应用空账号衔接胜利(设置成绩? 默许? 惯例?)!$userid = $_POST[''userid''];$user_password = $_POST[''password''];if($userid && $user_password){// config// $ldap_server = "ideawu.com";// $ldap_admin = "user_name";// $ldap_password = "xxx";// $base_cn = "ou=web,dc=ideawu,dc=com";$conn = ldap_connect($ldap_server);if(!$conn){die("<br>Connection LDAP server error");}$bind = ldap_bind($conn, $ldap_admin, $ldap_password);if(!$bind){die("<br>Bind LDAP server error");}$filter = ''samaccountname='' . $userid;$attributes = array(''mail'');$result = ldap_search($conn, $base_dn, $filter, $attributes);$info = ldap_get_entries($conn, $result);if(!$result){die("<br>Search failed");}if($info["count"] != 0){$user_dn = $info[0]["dn"];unset($bind2);$bind2 = @ldap_bind($conn, $user_dn, $user_password);if($bind2){// Login done. Set session}}ldap_close($conn);}