سلام
مختصر میخایم پروژه لاراولیمون رو وصل کنیم به سرور اکتیودایرکتوری و از اون برای Auth استفاده کنیم.
برای نصب پکیج ما از adldap2/adldap2-laravel استفاده میکنیم.
composer require adldap2/adldap2-laravel php artisan vendor:publish --provider="Adldap\Laravel\AdldapServiceProvider"
بعد از اتمام نصب از مسیر config/ldap.php تنظیمات اولیه را میتونیم ببینیم. قسمت هایی که برای ما مهم هستن:
LDAP_TIMEOUT LDAP_PORT LDAP_HOSTS LDAP_BASE_DN LDAP_USERNAME LDAP_PASSWORD LDAP_USE_SSL
با توجه به اینکه این موارد لینک شدن به env - ما هم این مقادیر را توی این فایل اضافه میکنیم.
دقت شود برای اتصال نیازی به کاربری با سطح دسترسی ادمین در اکتیودایرکتوری نیست و یک کاربر معمولی هم میتواند برای اتصال کافی باشد.
LDAP_TIMEOUT=5 LDAP_PORT=389 LDAP_HOSTS=192.168.1.11 LDAP_BASE_DN=dc=sparrow,dc=local LDAP_USERNAME=foad LDAP_PASSWORD=password LDAP_USE_SSL=false
بعد از تنظیم موارد :
php artisan config:clear php artisan config:cache
تست ارتباط با سرور :
use Adldap\Laravel\Facades\Adldap; if(Adldap::auth()->attempt("${LDAP_USERNAME}@${LDAP_DOMAIN}", $LDAP_PASSWORD))} return response()->json(["success"=>'Successfully Connected!'], 200);{ else{ return response()->json(["success"=>'Failed!'], 200); }
LDAP_TIMEOUT=5 LDAP_PORT=636 LDAP_HOSTS=sparrow.local LDAP_BASE_DN=dc=sparrow,dc=local LDAP_USERNAME=foad LDAP_PASSWORD=password LDAP_USE_SSL=true
و تنظیم موارد زیر از مسیر /etc/ldap/ldap.conf
# TLS certificates (needed for GnuTLS) TLS_CACERT /etc/ssl/ldaps.crt TLS_REQCERT hard
php artisan config:clear php artisan config:cache systemctl restart php8.1-fpm