⑴ 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.
希望能幫到你.