syardumi / my-eloquent-ldap

这是一个Laravel包,首先尝试在内部数据库中登录用户,如果失败,则尝试配置的LDAP/AD服务器。

0.1.4 2015-10-14 18:28 UTC

This package is not auto-updated.

Last update: 2024-09-28 16:41:33 UTC


README

Latest Version on Packagist Software License

这是一个Laravel包,首先尝试在内部数据库中登录用户,如果失败,则尝试配置的LDAP/AD服务器。可选地,它将在LDAP用户的首次登录时创建本地用户记录,并授予该用户对具有与LDAP组相同名称的本地组的权限。

安装

通过Composer

$ composer require syardumi/my-eloquent-ldap

发布资产

要发布资产、配置文件和迁移脚本,请运行以下命令

$ php artisan vendor:publish --provider="Syardumi\EloquentLDAP\Providers\EloquentLDAPServiceProvider"

这将发布一个配置文件和一个迁移文件。

迁移

迁移脚本将向'users'表的架构中添加一个新列'auth_type',以及向'groups'表中添加一个列'resync_on_login'。你应该已经拥有了这两个表,但如果你没有或者你想要为这些目的使用不同的表,提供的迁移脚本将创建这些表作为示例,但被注释掉了。你需要审查迁移脚本并根据你的场景进行调整。

一旦准备就绪,请使用以下命令运行迁移脚本

$ php artisan migrate

配置

建议通过在'.env'文件中定义以下变量并调整其值来配置此包。有关每个设置的详细说明,请参阅上面发布的配置文件。

LDAP_ENABLED=false
LDAP_CREATE_ACCOUNTS=true
LDAP_REPLICATE_GROUP_MEMBERSHIP=true
LDAP_RESYNC_ON_LOGIN=true
LDAP_GROUP_MODEL=App\Models\Group
LDAP_LABEL_INTERNAL=internal
LDAP_LABEL_LDAP=ldap
LDAP_ACCOUNT_SUFFIX=@company.com
LDAP_BASE_DN=DC=department,DC=company,DC=com
LDAP_SERVER=ldapsrv01.company.com
LDAP_PORT=389
LDAP_USER_NAME=ldap_reader
LDAP_PASSWORD=PaSsWoRd
LDAP_RETURN_REAL_PRIMARY_GROUP=true
LDAP_SECURED=false
LDAP_SECURED_PORT=636
LDAP_RECURSIVE_GROUPS=true
LDAP_SSO=false
LDAP_USERNAME_FIELD=samaccountname
LDAP_EMAIL_FIELD=userprincipalname
LDAP_FIRST_NAME_FIELD=givenname
LDAP_LAST_NAME_FIELD=sn
LDAP_USER_FILTER=(&(objectcategory=person)(samaccountname=%username))

使用

'users'表/模型必须有以下列/属性命名为'username'、'first_name'、'last_name'和'email'。此包提供的迁移脚本有一个如何创建此类表的示例,但被注释掉了。

用户模型必须将'auth-type'属性添加到其'fillable'数组中,以便在数据库中设置该列。

此外,你的登录视图和'AuthController'必须接受用户名和密码。如果需要,它们可以接受其他字段,例如电子邮件、安全令牌等。但是,当新用户第一次尝试登录时,由于他在本地数据库中找不到,该包将需要用户名以对LDAP服务器进行认证。

示例

有关此包在活动项目中使用的具体示例,请参阅sroutier/laravel-5.1-enterprise-starter-kit。请注意,在那个项目中,此包与Zizaco/entrust结合使用以提供基于角色的授权,因此没有组模型,而是有一个角色模型。

变更日志

请参阅CHANGELOG了解最近的变化。

贡献

请参阅CONTRIBUTING了解详细信息。

安全

如果你发现任何安全相关的问题,请通过电子邮件sroutier@gmail.com报告,而不是使用问题跟踪器。

鸣谢

许可证

GNU通用公共许可证版本3 (GPLv3)。请参阅许可证文件了解详细信息。