Laravel中的LDAP身份验证

时间:2017-04-07 07:11:02

标签: php laravel authentication ldap

我负责创建一个新的laravel项目,其中我们的LDAP进行身份验证。我对laravel很新,请原谅我缺乏理解力

我正在尝试使用此库:Adldap2-Laravel

我跟着this documentation从头开始构建身份验证。

所以我的 config / app.php 添加了这些行

//In providers array
Adldap\Laravel\AdldapServiceProvider::class,
Adldap\Laravel\AdldapAuthServiceProvider::class,

//In aliases
'Adldap' => Adldap\Laravel\Facades\Adldap::class,

我的 config / auth.php (我也尝试过只使用adldap驱动程序,但没有成功)

'providers' => [
    'users' => [
        'driver' => 'eloquent',
        'model' => App\User::class,
    ],
    'users' => [
        'driver' => 'adldap',
        'model'  => App\User::class,
    ],
],

一切看起来都很正确。但我不能认证,我有这个错误:These credentials do not match our records.

当我使用此代码时

use Adldap\Laravel\Facades\Adldap;

$username = "myUser";
$password = "myPassword";

if (Adldap::auth()->attempt($username, $password)) {
    //Queries here
}
else
{
    echo "Auth failed";
}

我可以执行查询,并且身份验证适用于所有用户。但我无法正确使用"登录"背后的登录表单。按钮。

我错过了什么吗?

我不知道身份验证是否应该直接工作而不导入任何东西,但我也尝试运行此命令

php artisan adldap:import

找到所有用户并将其插入laravel DB中。但身份验证仍然无效。

1 个答案:

答案 0 :(得分:0)

我从 .env 文件

中删除了ADLDAP_ACCOUNT_SUFFIX=

并在ADLDAP_ADMIN_USERNAME=Administrator@mycompany.something

中直接添加了后缀

现在我可以通过电子邮件地址进行连接。

我不知道这是否是最佳解决方案,但至少它是有效的。

我让这篇文章开放几天,看看是否有人有更好的想法