faulkj / ldapclient
一个简化连接和搜索LDAP目录的PHP类。
v1.5.5
2024-01-13 02:30 UTC
Requires
- php: >=7.0
Requires (Dev)
README
LDAPClient是一个旨在使LDAP操作变得简单和灵活的PHP库。从基本查询到高级LDAP功能,该库提供了一系列功能。
功能
- 简化LDAP连接
- 用户认证
- 高级搜索查询
- 调试支持
安装
composer require faulkj/ldapclient
方法和用法
LDAPClient类
__construct($server, $bindDN, $pass, $baseDN, $options)
初始化与LDAP服务器的连接。
$server
:LDAP服务器URL$bindDN
:绑定DN$pass
:绑定密码$baseDN
:目录的基础DN$options
:要拉取的LDAP字段列表。允许进行自定义属性映射,以适应您正在与之合作的特定LDAP系统。
示例
use FaulkJ\LDAPClient $ldap = new LDAPClient( "ldap.forumsys.com", "cn=read-only-admin,dc=example,dc=com", "password", "dc=example,dc=com", [ "id" => "uid" ] );
debug($dbg)
切换LDAP操作的调试输出。启用时,提供详细输出以供故障排除。
$dbg
:启用或禁用调试的布尔值
示例
$ldap->debug(true);
返回
- 如果没有提供参数,则返回当前调试状态
- 如果提供了参数,则返回LDAPClient对象,允许进行方法链式调用
getJSON($filter, $attr = [], $dn = false, $fullDNs = false)
将搜索结果转换为JSON格式。
$filter
:LDAP过滤器$attr
:要获取的属性$dn
:可选的DN以进行搜索$resolveDNs
:是否解析DN$stayBound
:是否保持绑定
示例
die($ldap->getJSON("(ou=chemist*)", ["cn", "members" => "uniquemember"], null, true));
返回:表示搜索结果的JSON格式字符串。
login($id, $pass, $attr)
认证用户并返回其属性。
$id
:用户ID$pass
:密码$attr
:要获取的属性
示例
if($user = $ldap->login("riemann", "password", ["fullname" => "cn", "mail"])) { echo "{$user->fullname} successfully logged in!"; } else echo "Invalid username or password!";
返回
- 如果成功,则返回具有指定属性的用对象
- 如果认证失败,则返回
false
- 如果用户未找到,则返回
null
member($user, $group, $options = [])
检查用户是否是特定LDAP组或组的成员。
$user
:要检查的用户ID$group
:要检查成员资格的组或组数组$options
:可选数组,用于额外属性映射(与默认选项合并)
示例
if($ldap->member("mathematicians", "gauss", [ "id" => "ou", "member" => "uniquemember" ])) { echo "gauss is a mathematician!"; }
返回
- 如果用户是成员,则返回
true
- 如果用户不是成员,则返回
false
- 如果用户未找到,则返回
null
photo($user)
检索指定用户的照片。
示例
$ldap->photo("simmons");
返回:如果可用,直接输出到屏幕的图像,如果不可用,则输出空图像
search($filter, $attr, $dn, $resolveDNs, $stayBound)
执行LDAP搜索。
$filter
:LDAP过滤器$attr
:要获取的属性$dn
:可选的DN以进行搜索$resolveDNs
:是否解析DN$stayBound
:是否保持绑定
示例
$res = $ldap->search( "(ou=chemist*)", [ "cn", "members" => "uniquemember" ], null, true ); echo implode("\n", $res->members);
返回
- 如果找到多个记录,则返回LDAP记录数组
- 如果只找到一条记录,则返回单个LDAP记录
- 如果没有找到记录,则返回
null