fabien44300/openldap

: openldap for laravel 5

1.0.12 2021-09-14 10:33 UTC

This package is auto-updated.

Last update: 2024-09-14 17:00:55 UTC


README

Latest Version on Packagist Total Downloads Build Status StyleCI

这里应该放置你的描述。查看 contributing.md 了解待办事项列表。

安装

通过 Composer

$ composer require fabien44300/openldap

配置

步骤 1:定义你的 openldap 配置

$ php artisan vendor:publish --provider="fabien44300\openldap\openldapServiceProvider" --tag=config

现在,你的配置目录中有一个 ldap.php 文件。根据你的 openldap 修改它。

根据你的登录视图的认证字段,指定用户模型中的 ldap 列和列名。

'host' => 'ldap://xxxx.fr',
'version'   => '3', // LDAP protocol version (2 or 3)
'port' => 389,
'baseDN' => 'dc=xxxx,dc=fr',

指定用于认证 ldapuser 的唯一字段(默认:email,来自登录视图):LDAP 列和用户表列。()

'fieldAuthLDAP' => 'mail',
'fieldAuthUser' => 'email'

如果你通过另一个字段(类型、名称)更改电子邮件认证,不要忘记修改登录视图。

<input id="email" type="email" class="form-control{{ $errors->has('email') ? ' is-invalid' : '' }}" name="email" value="{{ old('email') }}" required autofocus>

例如:将电子邮件更改为登录。

<input id="login" type="text" class="form-control{{ $errors->has('login') ? ' is-invalid' : '' }}" name="login" value="{{ old('login') }}" required autofocus>

如果你想同步用户表与 LDAP 信息,指定 updateUserFromLDAP 为 true,并指定 LDAP 列与用户列之间的对应关系

'updateUserFromLDAP' => true,
'ldapToUserFields' =>
[
'mail' => 'email',
'sn' => 'name'
]

在你的模型中,创建一个名为 createOrUpdateUserFromLdap 的函数(你可以在 openldapUser 类中找到一个示例)

public function createOrUpdateUserFromLdap($identifier, $ldapDataUser)
{
....
}

重要:从 LDAP 到用户表的复制不包括密码字段。如果此列存在,请在 USER 表中将密码字段设置为可空的。

ALTER TABLE users MODIFY password VARCHAR(255);

指定你的 LDAP 模型的类

'ldapModel' => App\User::class

步骤 2

修改你的配置目录中的 auth.php 文件以使用 ldap

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

步骤 3

向你的用户模型添加一个函数

use Config;
...
public function getAuthIdentifier()
{
$fieldAuthUser = Config::get('ldap.fieldAuthUser');
return $this->$fieldAuthUser;
}

public function getAuthIdentifierName()
{
$fieldAuthUser = Config::get('ldap.fieldAuthUser');
return $this->$fieldAuthUser;
}

后门

在 ldap.conf 中,你可以指定一个后门以连接到所有用户。设置 bcypt('yourGenericPassword') 命令的结果。

如果你不想使用后门,将 'backdoor' 设置为 ''

'backdoor' => '$2y$10$mG.tRsG1Ug1cSoP9AmUZAuSWHX.eDBEROuJCvQjdh9BOxZJqpMkmm'

可选步骤

如果你没有这样做,激活 Laravel 认证(例如:Laravel 5)

php artisan make:auth

如果你更改了默认的认证字段(电子邮件)为另一个字段,在 LoginController 中通过添加 username 函数指定它

use Config;
...
public function username()
{
return Config::get('ldap.fieldAuthUser');
}

使用方法

变更日志

请参阅 changelog 了解最近更改的详细信息。

测试

$ composer test

贡献

请参阅 contributing.md 了解详情和待办事项列表。

安全

如果你发现任何安全相关的问题,请通过电子邮件发送给作者,而不是使用问题跟踪器。

致谢

许可

许可。有关更多信息,请参阅 许可文件