PHP LDAP 连接

Posted

技术标签:

【中文标题】PHP LDAP 连接【英文标题】:PHP LDAP Connection 【发布时间】:2016-11-01 19:54:19 【问题描述】:

我收到了以下 LDAP 参数,但不确定如何在 php 中建立连接。我不确定每组参数使用哪个 PHP 函数。这是给我的参数:

服务器: ldaps://the_server.com:636

根 DN: dc=the_info,dc=more_info,dc=com

用户搜索库: ou=CompanyUsers

用户搜索过滤器: sAMAccountName=0

组搜索库: OU=Security,OU=CompanyGroups

组搜索过滤器: cn=0

群组成员身份:群组成员身份属性 = memberOf

显示名称 LDAP 属性:显示名称

电子邮件地址 LDAP 属性:邮件

如果有人可以为我提供一个 php 脚本,那就太好了!这是我第一次使用 LDAP,但仍然不了解所有这些参数。

【问题讨论】:

【参考方案1】:

以下是 linux base ldap 的工作代码。 可能对你有帮助。

<?php
$username = 'uid=amitkawasthi,ou=CompanyUsers,dc=the_info,dc=more_info,dc=com'; 
$password= 'test'; 
$ds=ldap_connect("the_server.com, 636"); 
echo $ds;
if ($ds)  
   echo "Binding ..."; 
   $r=ldap_bind($ds, $username, $password); 
   if ($r)
    
   $sr=ldap_search($ds,"ou=CompanyUsers,dc=the_info,dc=more_info,dc=com", "uid=amitkawasthi");   
   $entry = ldap_first_entry($ds, $sr); 
   $attrs = array(); 
   $attribute = ldap_first_attribute($ds,$entry,$identifier); 
   while ($attribute)  
     $attrs[] = $attribute; 
     $attribute=ldap_next_attribute($ds,$entry,$identifier); 
      
    echo count($attrs) . " attributes held for this entry:<p>"; 

    $ldapResults = ldap_get_entries($ds, $sr); 
//for ($item = 0; $item < $ldapResults['count']; $item++)  
  // for ($attribute = 0; $attribute < $ldapResults[$item]['count'];                  $attribute++)  
    //echo  $data = $ldapResults[$item][$attribute]; 
    echo  $data = $ldapResults[0][$attribute]; 
    echo $data.":&nbsp;&nbsp;".$ldapResults[0][$data][0]."<br>";             
   // 
///echo '<hr />'; 

   echo "OK"; 
   
   else
   
   echo "Fail"; 

   
 

?>
============================

【讨论】:

以上是关于PHP LDAP 连接的主要内容,如果未能解决你的问题,请参考以下文章

如何解决 PHP 中的 ldap_start_tls()“无法启动 TLS:连接错误”?

java 连接 ldap 报错

Spring 安全 ldap 连接管理

Spring-Ldap连接Ldap及简单的增删查改

无法连接 LDAP 服务器 - ldap_bind() 中的问题;

PHP 通过 SSH 隧道连接到其他网络中的 LDAP