dev-master
9999999-dev https://github.com/aravind-zrx/cakephp-ldapLDAP utility plugin for cakephp
MIT
The Requires
0.1
0.1.0.0 https://github.com/aravind-zrx/cakephp-ldapLDAP utility plugin for cakephp
MIT
The Requires
Wallogit.com
2017 © Pedro Peláez
LDAP utility plugin for cakephp
You can install this plugin into your CakePHP application using composer., (*1)
The recommended way to install composer packages is:, (*2)
composer require aravind-zrx/Cakephp-ldap
In your app's config/bootstrap.php add:, (*3)
// In config/bootstrap.php
Plugin::load('LdapUtility');
or using cake's console:, (*4)
./bin/cake plugin load LdapUtility
Basic configuration for creating ldap handler instance, (*5)
$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);
| Parameter | Description |
|---|---|
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 |
Passowrd for common bind DN |
Parameters for setting LDAP authentication has all the parameters of LDAP handler connection except commonBindDn and commonBindPassowrd, (*6)
// 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',
]);
}
Auth specific configs, (*7)
| Parameter | Description |
|---|---|
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 |
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 authentication |
Search for entry with cn starting with test, (*8)
$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, (*9)
$ldapHandler->find('read', [
'baseDn' => 'ou=people,dc=example,dc=com',
'filter' => 'cn=test.user',
'attributes' => ['cn', 'sn', 'mail']
]);
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
LDAP utility plugin for cakephp
MIT
LDAP utility plugin for cakephp
MIT