首页 后端开发 php教程 PHP操作AD,adLDAP类API详解与实例_PHP教程

PHP操作AD,adLDAP类API详解与实例_PHP教程

Jul 13, 2016 pm 05:45 PM
api php 下载 实例 工具 操作 详解 通过

本文简述通过PHP操作AD
工具 ADLDAP.php
下载位置http://adldap.sourceforge.net/download.php
API(以下来自http://adldap.sourceforge.net,翻译水平有限,如有不妥之处敬请指正)
constructor($options=array())//构造器
你可以通过配置变量的方式指定该类中AD的设置, 或者当类被调用的时候可以通过指定$option数组的方式被覆盖.
调用方式形似 $object = new adLDAP($options); $options 是一个由下列一个或多个keys组成的数组

account_suffix
默认:”@mydomain.local”
完整的域帐户后缀
base_dn
默认: “DC=mydomain,DC=local”
域的base dn. 一般来讲 base dn 与account suffix相同, 但是被隔开的且以"DC="为前缀. base dn 可被定位于Active Directory Users及Computers MMC的扩
展属性上
如果认证用户正常,但不能搜索,一般来说是由于指定了不正确的base_dn
 
domain_controllers
默认: array (“dc01.mydomain.local”)
域控制器数组,如果你希望该类通过多个控制器来平衡查询,可以在该数组中指定多个控制器,记住该类会向一个不可连接的域控制器发送请求,因为它只实施平衡
而无容错
.

ad_username
默认: NULL
默认地,adLDAP会以已经认证的用户帐号权限执行查询,你可以指定一个拥有更高权限的用来执行授权操作的用户帐号
 
ad_password
默认: NULL
ad_username相应的密码.

real_primarygroup
通过“Domain Users” 覆盖 primary group

use_ssl
默认: false
adLDAP 可以通过SSL使用LDAP以提供额外功能例如修改密码,选择此项时你的域控制器和WEB服务器均需配置相应选项,不只将其设置为true,详细请参考SSL方式的
LDAP选项
 
recursive_groups
默认: true
递归查询组成员
如用户Fred是组“Business Unit” 的成员,“Business Unit” 是组Department”的成员,Department”是组“Company”的成员
user_ingroup(“Fred”,”Company”)当该项开启的时候返回true,否则返回false
------------------------以下主要的操作方法
authenticate($username,$password,$prevent_rebind=false)
鉴别域控制器用户的username/password
 
group_add_group($parent,$child)
向父组里添加子组,返回true或false
 
group_add_user($group,$username)
向一个组里添加一个用户,返回true或false
 
group_create($attributes)
以指定属性创建一个组,返回true或false

Attribute Req Notes
group_name *  
container *  
description  

group_del_group($parent,$child)
从父组里删除子组,返回true或false

group_del_user($group,$users)
从一个组里删除一个用户,返回true或false

group_info($group_name,$fields=NULL)
返回一个关于指定组的信息数组,组名称区分大小写
默认文件包含member, memberof, description, distinguishedname, objectcategory, samaccountname

user_create($attributes)
创建一个用户,操作成功或失败时返回true或false

Attribute Req Notes
username *  
firstname *  
surname *  
email *  
container * The folder in AD to add the user to.
address_city   
address_code   
address_pobox   
address_state   
address_street   
change_password   如果为0用户下次登录时无需修改密码为1时下次登录时必须修改密码
company   公司名称.
department   
description   
display_name   
email   email地址,非exchange mailbox
enabled   0 为 disabled 1 为 enabled   
expires   帐户有效期 (unix timestamp).
firstname   
home_directory   
home_drive   
initials   
logon_name   登录名称不同于其他用户名.
manager   
office   
password   The password can only be set over SSL. It must also meet the password policy for your domain.
profile_path   
script_path   
surname   
title   
telephone   
web_page  

user_delete($username)
删除一个用户,返回 true 或 false

user_groups($username,$recursive=NULL)
返回用户所属组的信息

如果$recursive为 true, 将递归返回组列表.

user_info($username,$fields=NULL)
返回指定用户的信息数组,$fields必须为数组
默认fields 为: samaccountname, mail, memberof, department, displayname, telephonenumber, primarygroupid
欲查看所有可用信息,将$fields 设置"*"调用此函数
这个函数将返回一个有限集,除非当前认证帐户为administrator,一个用户也不能查询另一个用户的"memberof"域,除非它们是这个容器的管理者

user_ingroup($username,$group,$recursive=NULL)
用户是否属于该组,返回true或false
像user_info()函数一样,这个函数只有当当前认证用户是administrator时才会返回有效结果
 
user_modify($username,$attributes)
修改用户属性,返回true或false

user_password($username,$password)
设置指定用户的密码,. 要求配置通过ldaps.

computer_info($computer_name,$fields=NULL)
返回指定计算机的详细信息.

all_users($include_desc = false, $search = "*", $sorted = true)
返回AD里用户所有列表,在大目录里可能无法工作
all_groups($include_desc = false,$search = "*", $sorted = true)
返回AD里组所有列表,在大目录里可能无法工作
Samples:
登录
include "adLDAP.php"
$config['account_suffix'] = '@xxx.com';//域控制器后缀
$config['adserver'] = array('192.168.1.10','192.168.1.1');//域控制器,如果只有一台array('192.168.1.10')
$config['base_dn'] = 'cn=users,dc=xxx,dc=com';
$adldap =new adLDAP(array('domain_controllers'=>$config['adserver'],'account_suffix'=>$config['account_suffix'],'base_dn'=>$config
['base_dn'],'ad_username' => 'administrator','ad_password' => ''));
if($adldap)
{
    echo "登录成功";
}
else
{
    echo "登录失败";
}
?>
列出所有用户
echo "All users
";
foreach($adldap->all_users() as $val)
{
echo $val."
";
}
?>
列出所有组
echo "groups
";
foreach($adldap->all_groups() as $val)
{
echo $val."
";
}
?>
打印某台计算机信息
print_r($adldap->user_info("wang"));
?>
创建用户
if ($adldap->user_create(array('username' => 'tonix','firstname' => 'firstname','surname' => "surname",'email' => 'e@123.com','container' =>
'container')))
{
echo "OK";
}
else
{
echo "error";
}
?>
创建组
if ($adldap->group_create("group_name=test,container=www"))
{
echo "OK";
}
else
{
echo "error";
}
?>

作者“飞翔的人生”
 

www.bkjia.comtruehttp://www.bkjia.com/PHPjc/478629.htmlTechArticle本文简述通过PHP操作AD 工具 ADLDAP.php 下载位置http://adldap.sourceforge.net/download.php API(以下来自http://adldap.sourceforge.net,翻译水平有限,如有不妥之...
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

Video Face Swap

Video Face Swap

使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

meme币交易所排行榜 meme币主流交易所top10盘点 meme币交易所排行榜 meme币主流交易所top10盘点 Apr 22, 2025 am 09:57 AM

最适合交易Meme币的平台包括:1. 币安(Binance),全球最大,流动性高,低手续费;2. 欧意(OKX),高效交易引擎,支持多种Meme币;3. XBIT,去中心化,支持跨链交易;4. 雷迪姆(Solana DEX),低成本,结合Serum订单簿;5. PancakeSwap(BSC DEX),交易费用低,速度快;6. Orca(Solana DEX),用户体验优化;7. Coinbase,安全性高,适合新手;8. 火币(Huobi),亚洲知名,交易对丰富;9. DEXRabbit,智能

免费的看盘软件网站有哪些 币圈十大免费看行情软件排名 免费的看盘软件网站有哪些 币圈十大免费看行情软件排名 Apr 22, 2025 am 10:57 AM

币圈十大免费看行情软件排名前三分别是OKX、Binance和gate.io。 1. OKX提供简洁界面和实时数据,支持多种图表和市场分析。 2. Binance功能强大,数据准确,适合各种交易者。 3. gate.io以稳定性和全面性着称,适合长期和短线投资者。

币圈行情实时数据免费平台推荐前十名发布 币圈行情实时数据免费平台推荐前十名发布 Apr 22, 2025 am 08:12 AM

适合新手的加密货币数据平台有CoinMarketCap和非小号。1. CoinMarketCap提供全球加密货币实时价格、市值、交易量排名,适合新手与基础分析需求。2. 非小号提供中文友好界面,适合中文用户快速筛选低风险潜力项目。

十大数字虚拟货币app排行榜 币圈交易数字货币交易所排名前十 十大数字虚拟货币app排行榜 币圈交易数字货币交易所排名前十 Apr 22, 2025 pm 03:00 PM

十大数字虚拟货币app排行榜分别是:1. OKX,2. Binance,3. gate.io,4. Coinbase,5. Kraken,6. Huobi,7. KuCoin,8. Bitfinex,9. Bitstamp,10. Poloniex。这些交易所根据交易量、用户体验和安全性等因素评选,均提供多种数字货币交易服务和高效的交易体验。

靠谱好用的虚拟币交易所app推荐 币圈十大交易所排行榜最新 靠谱好用的虚拟币交易所app推荐 币圈十大交易所排行榜最新 Apr 22, 2025 pm 01:21 PM

靠谱好用的虚拟币交易所app是:1. Binance,2. OKX,3. Gate.io,4. Coinbase,5. Kraken,6. Huobi Global,7. Bitfinex,8. KuCoin,9. Bittrex,10. Poloniex。这些平台因其交易量、用户体验和安全性等因素被评选为最佳,均提供注册、验证、存款、提款和交易操作功能。

2025数字货币交易平台有哪些 十大数字货币app最新排行榜 2025数字货币交易平台有哪些 十大数字货币app最新排行榜 Apr 22, 2025 pm 03:09 PM

十大虚拟币看盘平台app推荐:1. OKX,2. Binance,3. Gate.io,4. Huobi,5. Coinbase,6. Kraken,7. Bitfinex,8. KuCoin,9. Bybit,10. Bitstamp,这些平台提供实时行情、技术分析工具和用户友好的界面,帮助投资者进行有效的市场分析和交易决策。

适合新手的数字货币交易App有哪些?一文了解币圈 适合新手的数字货币交易App有哪些?一文了解币圈 Apr 22, 2025 am 08:45 AM

选择适合新手的数字货币交易平台需考虑安全性、易用性、教育资源和费用透明度:1. 优先选择提供冷存储、双重验证和资产保险的平台;2. 界面简洁、操作清晰的App更适合新手;3. 平台应提供教程和市场分析等学习工具;4. 注意交易手续费和提现费等隐性成本。

数字货币交易app容易上手的推荐top10(025年最新排名) 数字货币交易app容易上手的推荐top10(025年最新排名) Apr 22, 2025 am 07:45 AM

gate.io(全球版)核心优势是界面极简,支持中文,法币交易流程直观;币安(简版)核心优势是全球交易量第一,简版模式仅保留现货交易;OKX(香港版)核心优势是界面简洁,支持粤语/普通话,衍生品交易门槛低;火币全球站(香港版)核心优势是老牌交易所,推出元宇宙交易终端;KuCoin(中文社区版)核心优势是支持800 币种,界面采用微信式交互;Kraken(香港版)核心优势是美国老牌交易所,持有香港SVF牌照,界面简洁;HashKey Exchange(香港持牌)核心优势是香港知名持牌交易所,支持法

See all articles