kamiyonanayo / laravel-kldap-auth
Laravel的LDAP认证
1.0.0
2024-01-04 11:11 UTC
Requires
- php: ^8.2
- freedsx/ldap: ^0.8.0
- laravel/framework: ^10.0
README
Laravel的LDAP认证库
用法
安装
通过Composer安装
composer require kamiyonanayo/laravel-kldap-auth
复制库的配置文件
使用artisan的vendor:publish命令将配置文件复制到config文件夹
php artisan vendor:publish --tag=kldap-auth-config
修改库的配置文件
根据环境修改config/kldap-auth.php的内容
修改认证设置文件
修改认证设置文件(config/auth.php),将认证提供者的驱动设置为kldap,并添加kldap_connection和model。
- 在kldap_connection中指定config("kldap-auth.connections")中存在的键。
- 指定model为模型类。
示例auth.php
return [
/*
|--------------------------------------------------------------------------
| User Providers
|--------------------------------------------------------------------------
|
| All authentication drivers have a user provider. This defines how the
| users are actually retrieved out of your database or other storage
| mechanisms used by this application to persist your user's data.
|
| If you have multiple user tables or models you may configure multiple
| sources which represent each model / table. These sources may then
| be assigned to any extra authentication guards you have defined.
|
| Supported: "database", "eloquent"
|
*/
'providers' => [
'users' => [
'driver' => 'kldap',
'kldap_connection' => 'ldap',
'model' => App\Models\User::class,
],
// 'users' => [
// 'driver' => 'database',
// 'table' => 'users',
// ],
],
];
事件
事件类 | 触发时机 |
---|---|
\Kamiyonanayo\LaravelLdapAuth\Events\Auth\KLdapValidated::class | LDAP认证成功时 |
\Kamiyonanayo\LaravelLdapAuth\Events\Auth\KLdapSynchronizingDatabse::class | LDAP认证成功后DB同步前 |
\Kamiyonanayo\LaravelLdapAuth\Events\Auth\KLdapSynchronizedDatabse::class | LDAP认证成功后DB同步后 |
\Kamiyonanayo\LaravelLdapAuth\Events\Auth\KLdapRegistered::class | 在数据库同步处理中创建用户数据时 |
\Kamiyonanayo\LaravelLdapAuth\Events\Auth\KLdapChanged::class | 在数据库同步处理中值被更改时 |
\Kamiyonanayo\LaravelLdapAuth\Events\Auth\KLdapFallbackValidateCredentials::class | 发生回退时 |
\Kamiyonanayo\LaravelLdapAuth\Events\Auth\KLdapFallbackValidated::class | 回退认证成功时 |
\Illuminate\Auth\Events\Registered::class | 创建用户数据时(通过设置(fire_laravel_registered_event)可控) |
认证过滤器
要自定义认证处理时
通过继承\Kamiyonanayo\LaravelLdapAuth\Filter\Filter::class创建类,并在配置文件的ldap_filter中指定。
使用class指定类名,使用parameters指定传递给构造函数的值。
数据库同步
要自定义数据库同步处理时
通过继承\Kamiyonanayo\LaravelLdapAuth\Database\Hydrators\Hydrator::class创建类,并在配置文件的database_sync.hydrators中指定。