berg / ldap-authenticator
A package for quickly setting up LDAP authentication
Requires
- php: >=5.4.0
- zendframework/zend-authentication: 2.5.1
- zendframework/zend-ldap: 2.5.1
- zendframework/zend-session: 2.5.1
Requires (Dev)
- illuminate/auth: ^5.1-stable
- illuminate/support: ^5.1-stable
- mockery/mockery: 0.9.*
- phpunit/phpunit: 4.8.*
This package is not auto-updated.
Last update: 2020-01-24 15:59:07 UTC
README
LDAP Authenticator
This package adds quick support for LDAP authentication using Zend Frameowork's LDAP authentication package. It includes support for Laravel 5.
Installation
composer require berg/ldap-authenticator
Laravel Config
This package comes with a driver to support quick setup using Laravel 5. To set up, first install the package and then register the driver by placing the following code in the AppServiceProvider's boot method:
Auth::extend('ldap', function($app) {
$userProvider = new LdapUserProvider();
return new Guard($userProvider, $app->make('Illuminate\Session\Store'));
});
Then create a file named ldap.php in the config/ folder. The file should return an array with the following values:
'hostname' => '',
'port' => 636,
'security' => 'SSL',
'base_dn' => '',
'bind_dn' => '',
'bind_password' => ''
Lastly set the driver in the config/auth.php
file to ldap
.
If you wish to use the class for non-authentication tasks such as checking if a user exists, you may also use the built in service provider by adding the following line to the app.php
config file:
'Berg\LdapAuthenticator\Laravel\LdapServiceProvider'
Usage
Once set up, using the Auth::attempt($username, $password) will automatically call on the ldap driver.
To use the service provider, call App::make('LdapAuthenticateService')
Exceptions
This package uses exceptions to handle invalid logins. The following errors are used:
'Berg\LdapAuthenticator\Exceptions\IncorrectCredentialsException'
'Berg\LdapAuthenticator\Exceptions\InvalidCredentialsException'
'Berg\LdapAuthenticator\Exceptions\UserDoesNotExistException
If using Laravel, these should be added to the $dontReport
property in the Handler class. Custom handling of each exception can be added to the Handler->render()
method.