zgdy 发表于 2017-4-8 11:17:34

PHP 通过LDAP协议,操作Windows Active Directory

  我从来就没有接触过Active Directory,这次是第一次学习它,所以对很多东西,还不是很理解。在此我把我在学习过程中收集的一些资料和大家共享。
  一、学习如何管理Active Directory
  Active Directory 循序渐进系列指南
  二、ADExplorer
  到网上下载一个ADExplorer,它是Active Directory浏览器,可以让我们更加清楚认识Active Directory的数据存储方式及格式。
  三、域外访问Active Directory
   确保将域外计算机的 DNS 分析 程序配置 为与 Active Directory 运用 相同的 DNS 名称服务器;在大多数情况下,假定您要运用 Active Directory 集成的 DNS,则我们把此域外计算机的DNS设置为此Active Directory服务器IP地址。
  详细内容请参照《运用 Active Directory执行Linux客户端身份验证》
  四、php 代码
  为了使用方便,我使用 adLDAP来进行编程,这样可以简便很多。
  <?php
require_once(dirname(__FILE__) . '/adLDAP.php');

$options=array();
try {
    $options['account_suffix']="@mydomain.com";
    $options['base_dn']="OU=Accounts,DC=mydomain,DC=com";//
    $options['domain_controllers']=array("mydomain.com");
    $options['ad_username']="administrator";
    $options['ad_password']="123456";
    $ldap = new adLDAP($options);
}
catch (adLDAPException $e) {
    echo $e; exit();  
}
//var_dump($ldap);

echo ("<pre>\n");
$result=$ldap->authenticate("qiujiayu","qiujiayu");
var_dump($result);
echo("----------------------------------------------------");
$result=$ldap->folder_list(array('Marketing'), ADLDAP_FOLDER, true,'contact');
var_dump ($result);
echo("----------------------------------------------------");

$result=$ldap->all_users();
var_dump ($result);
echo("----------------------------------------------------");

$result=$ldap->all_contacts();
var_dump ($result);
echo(json_encode( ($ldap->contact_info($result,array('telephonenumber')))));
echo("----------------------------------------------------");
?>
页: [1]
查看完整版本: PHP 通过LDAP协议,操作Windows Active Directory