Laravel Connect Active Directory with Adldap2

หลังจากที่เราทำ Laravel ให้รับส่งเมล์ได้แล้ว เราจะมาทำการเชื่อมต่อ LDAP บน Active Directory กัน โดยปกติบน PHP จะมี Extension ให้เรียกใช้งานอยู่แล้ว แค่ต้องทำการ Enable ก่อน แต่ถ้าหากต้องการใช้ Package บน Laravel จะใช้ Adldap2 ในการ Connect


Requirement

  • Laravel 5.5+
  • PHP 7.1+
  • PHP LDAP Extension Enabled
  • LDAP Server

Get Started

  • ทำการติดตั้ง Laravel Package ผ่าน Composer
# C:\Apache24\htdocs\laravel> composer require adldap2/adldap2-laravel
  • ทำการแก้ไขไฟล์ config/app.php
'aliases' => [
        ...
        'Adldap' => Adldap\Laravel\Facades\Adldap::class,
],
  • ทำการ Publish Configuration ไฟล์
# C:\Apache24\htdocs\laravel> php artisan vendor:publish --provider="Adldap\Laravel\AdldapServiceProvider"
  • ทำการแก้ไขไฟล์ config/adldap.php
'connection_settings' => [
    'domain_controllers' => explode(' ', env('ADLDAP_CONTROLLERS', 'lab-dc.lab.local')),
    'port' => env('ADLDAP_PORT', 389),
    'timeout' => env('ADLDAP_TIMEOUT', 5),
    'base_dn' => env('ADLDAP_BASEDN', 'dc=lab,dc=local'),
    'admin_username' => env('ADLDAP_ADMIN_USERNAME', 'lablocal'),
    'admin_password' => env('ADLDAP_ADMIN_PASSWORD', 'P@ssw0rd'),
],
  • ทำการ Create Route ในไฟล์ routes/web.php
Route::get('ldap/find/{name}','LdapController@find');
Route::get('ldap/search/{name}','LdapController@search');
Route::post('ldap/create','LdapController@create');
Route::post('ldap/update','LdapController@update');
Route::post('ldap/delete','LdapController@delete');
  • ทำการ Generate Controller ที่ชื่อว่า LdapController
# C:\Apache24\htdocs\laravel> php artisan make:controller LdapController
  • ทำการแก้ไขไฟล์ app/Http/Controllers/LdapController.php
use Illuminate\Http\Request;
use Adldap\Laravel\Facades\Adldap;

class LdapController extends Controller
{
    public function find($name)
    {
    	$user = Adldap::search()->users()->find($name);
    	return $user;
    }

    public function search($name)
    {
    	$search = Adldap::search()->where('cn', '=', $name)->get();
    	return $search;
    }

    public function create($name)
    {
    	$user = Adldap::make()->user([
		    'cn' => $name,
		]);
    }

    public function update($name, $rename)
    {
    	$user = Adldap::search()->users()->find($name);
    	$user->cn = $rename;
    	$user->save();
    }
  • จะแสดงผลลัพธ์ในรูปแบบ JSON

อ่านเพิ่มเติม : https://bit.ly/2Iiyews


Leave a Reply

Your email address will not be published. Required fields are marked *