PHPackages                             zoomrx/cakephp-ldap - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Utility &amp; Helpers](/categories/utility)
4. /
5. zoomrx/cakephp-ldap

ActiveCakephp-plugin[Utility &amp; Helpers](/categories/utility)

zoomrx/cakephp-ldap
===================

LdapUtility plugin for CakePHP 3.x

v1.0(8y ago)4796↓100%2PHPPHP &gt;=5.4.16

Since Jan 18Pushed 6y ago1 watchersCompare

[ Source](https://github.com/ZoomRx/cakephp-ldap)[ Packagist](https://packagist.org/packages/zoomrx/cakephp-ldap)[ RSS](/packages/zoomrx-cakephp-ldap/feed)WikiDiscussions master Synced 1mo ago

READMEChangelog (1)Dependencies (2)Versions (2)Used By (0)

Cakephp-ldap plugin for CakePHP
===============================

[](#cakephp-ldap-plugin-for-cakephp)

Requirements
------------

[](#requirements)

- CakePHP 3.0+

Installation
------------

[](#installation)

You can install this plugin into your CakePHP application using [composer](http://getcomposer.org).

The recommended way to install composer packages is:

```
composer require zoomrx/cakephp-ldap

```

Usage
-----

[](#usage)

In your app's `config/bootstrap.php` add:

```
// In config/bootstrap.php
Plugin::load('LdapUtility');
```

or using cake's console:

```
./bin/cake plugin load LdapUtility
```

Configuration:
--------------

[](#configuration)

Basic configuration for creating ldap handler instance

```
	$config = [
		'host' => 'ldap.example.com',
        'port' => 389,
        'baseDn' => 'dc=example,dc=com',
        'startTLS' => true,
        'hideErrors' => true,
        'commonBindDn' => 'cn=readonly.user,ou=people,dc=example,dc=com',
        'commonBindPassword' => 'secret'
	]
	$ldapHandler = new LdapUtility\Ldap($config);
```

#### Config parameters

[](#config-parameters)

ParameterDescription`host`Host name of LDAP server`port`Port to connect with LDAP server. Defaults to 389`baseDn`Base Distinguished name (DN)`startTLS`Boolean to decide on connection with/without TLS. Defaults to false`hideErrors`Boolean to show/hide LDAP errors. Defaults to false`commonBindDn`Common bind DN. Used in the case of readonly operations`commonBindPassword`Password for common bind DN#### Setup Ldap authentication config in Controller

[](#setup-ldap-authentication-config-in-controller)

Parameters for setting LDAP authentication has all the parameters of LDAP handler connection except commonBindDn and commonBindPassowrd

```
    // In your controller, for e.g. src/Api/UsersController.php
    public function initialize()
    {
        parent::initialize();

        $this->loadComponent('Auth', [
            'storage' => 'Memory',
            'authenticate', [
                'LdapUtility.Ldap' => [
					'host' => 'ldap.example.com',
			        'port' => 389,
			        'baseDn' => 'dc=example,dc=com',
			        'startTLS' => true,
			        'hideErrors' => true,
			        'queryDatasource' => true,
                    'userModel' => 'Users',
                    'fields' => ['username' => 'email'],
                    'auth' => [
		                'searchFilter' => '(cn={username})',
		                'bindDn' => 'cn={username},ou=people,dc=example,dc=com'
		            ]
				]
            ],

            'unauthorizedRedirect' => false,
            'checkAuthIn' => 'Controller.initialize',
        ]);
    }
```

#### Authentication specific configs

[](#authentication-specific-configs)

ParameterDescription`auth.searchFilter`Search filter syntax with username placeholder. The placeholder will be replaced by username data from request. This is used to read LDAP data entry of the authenticated user`auth.bindDn`Bind DN syntax with username placeholder between braces. The placeholder will be replaced by username data from request`auth.callback`Callback function that will execute after fetching details from app datasource. Both LDAP details array and app user details array will be passed as arguments. If user has no record in app datasource, user details array will be false. Callback will be called only if queryDatasource is true`queryDataSource`Boolean to decide whether to query app datasource after successful LDAP authentication`userModel`If queryDataSource is set, userModel table will be used for base authentication`fields.username`If queryDataSource is set, authenticate class will use field.username as field condition for base authenticationExamples:
---------

[](#examples)

Search for entry with cn starting with test

```
	$ldapHandler->find('search', [
		'baseDn' => 'ou=people,dc=example,dc=com',
		'filter' => 'cn=test*',
		'attributes' => ['cn', 'sn', 'mail']
	]);
```

Read a particular entry with cn=test.user

```
	$ldapHandler->find('read', [
		'baseDn' => 'ou=people,dc=example,dc=com',
		'filter' => 'cn=test.user',
		'attributes' => ['cn', 'sn', 'mail']
	]);
```

TLS connections in development environment
------------------------------------------

[](#tls-connections-in-development-environment)

```
To connect an LDAP server over TLS connection, check ldap.conf file
	* For mac, conf file is located in /etc/openldap/ldap.conf
	* For unix, conf file is located in /etc/ldap/ldap.conf
To disable certificate verification change TLS_REQCERT to 'never' in ldap.conf file

```

###  Health Score

30

—

LowBetter than 65% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity20

Limited adoption so far

Community11

Small or concentrated contributor base

Maturity58

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 80% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Unknown

Total

1

Last Release

3034d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/f336d699aba70d07e59e19cf6e52dbcc352dfbe87982865c438cca61767e1620?d=identicon)[aravind-zrx](/maintainers/aravind-zrx)

---

Top Contributors

[![aravind-zrx](https://avatars.githubusercontent.com/u/33215492?v=4)](https://github.com/aravind-zrx "aravind-zrx (4 commits)")[![ajith-kumar-zoomrx](https://avatars.githubusercontent.com/u/40759103?v=4)](https://github.com/ajith-kumar-zoomrx "ajith-kumar-zoomrx (1 commits)")

###  Code Quality

TestsPHPUnit

### Embed Badge

![Health badge](/badges/zoomrx-cakephp-ldap/health.svg)

```
[![Health](https://phpackages.com/badges/zoomrx-cakephp-ldap/health.svg)](https://phpackages.com/packages/zoomrx-cakephp-ldap)
```

###  Alternatives

[markstory/asset_compress

An asset compression plugin for CakePHP. Provides file concatenation and a flexible filter system for preprocessing and minification.

3761.0M11](/packages/markstory-asset-compress)[cakedc/cakephp-phpstan

CakePHP plugin extension for PHPStan.

40676.6k31](/packages/cakedc-cakephp-phpstan)[dereuromark/cakephp-dto

A CakePHP plugin for generating immutable Data Transfer Objects with full type safety

2988.9k3](/packages/dereuromark-cakephp-dto)[dereuromark/cakephp-geo

A CakePHP plugin around geocoding tools and helpers.

51174.9k4](/packages/dereuromark-cakephp-geo)[cakedc/enum

Enumeration list Plugin for CakePHP 5

30222.5k2](/packages/cakedc-enum)[josegonzalez/cakephp-environments

CakePHP plugin to handle environments-level configuration

4785.9k](/packages/josegonzalez-cakephp-environments)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
