fabien44300 / openldap
: openldap for laravel 5
README
这里应该放置你的描述。查看 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 了解详情和待办事项列表。
安全
如果你发现任何安全相关的问题,请通过电子邮件发送给作者,而不是使用问题跟踪器。
致谢
许可
许可。有关更多信息,请参阅 许可文件。