【发布时间】:2019-07-30 09:16:17
【问题描述】:
Laravel 版本:5.8 Adldap2-Laravel 版本:6.0 PHP版本:7.1.3 LDAP 类型:活动目录
您好,凭据正确,但我无法通过它们登录。 Adlap::auth()->attempt() 总是返回 false。
$user_format = env('LDAP_USER_FORMAT', 'cn=%s,dc=corp,dc=org');
$userdn = sprintf($user_format, $username);
if(Adldap::auth()->attempt($userdn, $request->password , true)) {
return redirect('/home');
} else {
dd($userdn);
}
配置/ldap_auth.php
'connection' => env('LDAP_CONNECTION', 'default'),
'provider' => Adldap\Laravel\Auth\DatabaseUserProvider::class,
'model' => App\User::class,
'rules' => [
Adldap\Laravel\Validation\Rules\DenyTrashed::class,
],
'identifiers' => [
'ldap' => [
'locate_users_by' => 'userprincipalname',
'bind_users_by' => 'distinguishedname',
],
'database' => [
'username_column' => 'username',
],
'windows' => [
'locate_users_by' => 'samaccountname'
],
],
'login_fallback' => env('LDAP_LOGIN_FALLBACK', false),
'usernames' => [
'ldap' => 'userprincipalname', // was just 'userprincipalname'
'eloquent' => 'username', // was 'email'
],
'sync_attributes' => [
'username' => 'userprincipalname',
'name' => 'cn',
],
'logging' => [
'enabled' => env('LDAP_LOGGING', true),
【问题讨论】:
-
如果你直接把value放在这里
attempt('username', 'password', true)呢? -
我试过了。我用前缀和后缀错了用户名。现在我的错误是:传递给 Illuminate\Auth\SessionGuard::__construct() 的参数 2 必须是 Illuminate\Contracts\Auth\UserProvider 的实例,给定 null,在 /var/www/DATI/pmi/vendor/laravel/ 中调用framework/src/Illuminate/Auth/AuthManager.php 第 125 行
标签: laravel active-directory ldap