⑴ php中,ldap验证的错误: 这个报错始终解决不了,可否相告~
在 LDAP 的协议之中,很像硬盘目录结构或倒过来的树状结构。LDAP 的根就是全世界,第一级是属于国别 (countries) 性质的层级,之后可能会有公司 (organization) 的层级,接着是部门 (organizationalUnit),再来为个人。而就像文件,每个人都会有所谓的显名 (distinguished name, 简称 dn),dn 可能像酱子 cn=John Smith,ou=Accounts,o=My Company,c=US。
<?php
// 本例使用到 connect, bind, search, interpret search
// result, close connection 等等 LDAP 的功能。
echo "<h3>LDAP 搜寻测试</h3>";
echo "连接中 ...";
$ds=ldap_connect("localhost"); // 先连上有效的 LDAP 服务器
echo "连上 ".$ds."<p>";
if ($ds) {
echo "Binding ...";
$r=ldap_bind($ds); // 匿名的 bind,为只读属性
echo "Bind 返回 ".$r."<p>";
echo "Searching for (sn=S*) ..."; // 找寻 S 开头的姓氏
$sr=ldap_search($ds,"o=My Company, c=US", "sn=S*");
echo "Search 返回 ".$sr."<p>";
echo "S 开头的姓氏有 ".ldap_count_entries($ds,$sr)." 个<p>";
echo "取回姓氏资料 ...<p>";
$info = ldap_get_entries($ds, $sr);
echo "资料返回 ".$info["count"]." 笔:<p>";
for ($i=0; $i<$info["count"]; $i++) {
echo "dn 为: ". $info[$i]["dn"] ."<br>";
echo "cn 为: ". $info[$i]["cn"][0] ."<br>";
echo "email 为: ". $info[$i]["mail"][0] ."<p>";
}
echo "关闭链接";
ldap_close($ds);
} else {
echo "<h4>无法连接到 LDAP 服务器</h4>";
}
?>
⑵ ldap实现linux登录账号统一管理-server
一台Centos 6.8 安装ldap server
一台Centos 6.8安装ldap client
本环境中没有使用dns ,由扰型hosts文件代替
<pre>
echo '192.168.85.129 dev.com' >> /etc/hosts
</pre>
<pre>
service iptables stop
chkconfig iptables off
</pre>
<pre>
setenforce 0
sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/sysconfig/岁庆selinux
</pre>
<pre>
useradd test01
echo '乎李握abc'| passwd --stdin test01
</pre>
<pre>
yum -y install httpd php php-ldap php-gd -y
rpm -qa httpd php php-ldap php-gd
</pre>
⑶ 想用php连接AD调用域内用户名密码,发现ldap_connect命令不生效。
<?php$host = "17.18.122.12";
$user = "[email protected]";
$pswd = "@#$%edcR";
$conn = ldap_connect($host) or die("Could not connect!" );
if($conn){//设置参数
ldap_set_option ( $conn, LDAP_OPT_PROTOCOL_VERSION, 3
);
ldap_set_option ( $conn, LDAP_OPT_REFERRALS, 0 ); // Binding to ldap
server
$bd = ldap_bind($conn, $user, $pswd) or die ("Could not
bind");
echo "ldap_bind success";
}
else{
echo "Unable to connect to
AD server";
}
?>
⑷ 什么是 php LDAP模块
ldap(lightweight
directory
access
protocol)的意思是"轻量级目录访问协议",是一个用于访问"目录服务器"(directory
servers)的协议。php要能够连接上ldap服务器,必须安装php-ldap模块,并修改php.ini配置,增加配置项extension=ldap.so,之后重启apache服务器。
⑸ php ldap 用户认证的问题
你好,我也遇到过这个问题.
我的解决方法是不用RDN,直接用DN.
希望能帮到你.