探索FreeDSx LDAP:纯PHP的LDAP库

探索FreeDSx LDAP:纯PHP的LDAP库

LDAPA Pure PHP LDAP Library.项目地址:https://gitcode.com/gh_mirrors/lda/LDAP

项目介绍

FreeDSx LDAP是一个纯PHP编写的LDAP库,它不依赖于PHP的核心LDAP扩展。该库实现了RFC 4511中描述的大部分客户端功能,以及一些非常有限的LDAP服务器功能。此外,它还实现了来自各种RFC的其他客户端特性,如分页控制支持、VLV控制支持、服务器端排序控制、密码修改请求等。

项目技术分析

FreeDSx LDAP的核心优势在于其纯PHP实现,这意味着它可以在没有安装PHP LDAP扩展的环境中运行。该库支持通过TLS对LDAP连接进行加密(如果OpenSSL扩展可用),并提供了丰富的功能,如SASL认证、搜索过滤器、分页搜索等。此外,它还提供了详细的文档和示例代码,使得开发者可以轻松上手。

项目及技术应用场景

FreeDSx LDAP适用于需要LDAP客户端功能的PHP项目,特别是在以下场景中:

  • 身份验证和授权:通过LDAP进行用户身份验证和授权。
  • 目录服务:管理用户、组和其他目录对象。
  • 集成第三方服务:与LDAP服务器集成,如Active Directory。
  • 自定义LDAP服务器:构建基于LDAP的自定义服务器应用。

项目特点

  • 纯PHP实现:不依赖于PHP的LDAP扩展,提高了兼容性和灵活性。
  • 丰富的功能:支持大部分LDAP客户端功能,如分页、排序、SASL认证等。
  • 易于使用:提供了详细的文档和示例代码,方便开发者快速上手。
  • 安全性:支持通过TLS对LDAP连接进行加密,确保数据传输的安全性。

快速开始

通过Composer安装FreeDSx LDAP:

composer require freedsx/ldap

以下是一个简单的示例,展示了如何使用FreeDSx LDAP进行LDAP操作:

use FreeDSx\Ldap\LdapClient;
use FreeDSx\Ldap\Operations;
use FreeDSx\Ldap\Search\Filters;

$ldap = new LdapClient([
    'servers' => ['dc1', 'dc2'],
    'base_dn' => 'dc=example,dc=local'
]);

$ldap->startTls();
$ldap->bind('user@example.local', '12345');

$filter = Filters::and(
    Filters::equal('objectClass', 'user'),
    Filters::startsWith('cn', 'S'),
    Filters::raw('(telephoneNumber=*)')
);
$search = Operations::search($filter, 'cn');

$paging = $ldap->paging($search, 100);

while ($paging->hasEntries()) {
    $entries = $paging->getEntries();
    var_dump(count($entries));
    
    foreach ($entries as $entry) {
        echo "Entry: ".$entry->getDn().PHP_EOL;
    }
}

CRUD操作

FreeDSx LDAP提供了完整的CRUD操作支持,以下是一些示例:

创建

use FreeDSx\Ldap\Entry\Entry;
use FreeDSx\Ldap\Exception\OperationException;

$entry = (new Entry('cn=foo,dc=domain,dc=local'))
   ->set('objectClass','top', 'group')
   ->set('sAMAccountName', 'foo');

try {
    $ldap->create($entry);
} catch (OperationException $e) {
    echo sprintf('Error adding entry (%s): %s', $e->getCode(), $e->getMessage()).PHP_EOL;
}

读取

$entry = $ldap->read('cn=foo,dc=domain,dc=local');

if ($entry) {
    echo $entry.PHP_EOL;
    var_dump($entry->toArray());
}

更新

use FreeDSx\Ldap\Exception\OperationException;

$entry = $ldap->read('cn=foo,dc=domain,dc=local');

if (!$entry->get('telephoneNumber')) {
    $entry->add('telephoneNumber', '555-555

LDAPA Pure PHP LDAP Library.项目地址:https://gitcode.com/gh_mirrors/lda/LDAP

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

高慈鹃Faye

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值