หลังจากที่เราทำ 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
Tagged: Laravel
Leave a Reply