freefcw / ldap-auth
Laravel 5 Active Directory LDAP 身份验证驱动程序
Requires
- php: >=5.3.0
- adldap/adldap: ~4.0
- illuminate/auth: 5.0.*
- illuminate/config: 5.0.*
- illuminate/support: 5.0.*
Requires (Dev)
- mockery/mockery: dev-master
This package is not auto-updated.
Last update: 2024-09-28 17:17:51 UTC
README
Laravel 5 Active Directory LDAP 身份验证驱动程序。
分支
这是对 strebl 的 l5-ldap-auth 的分支。
这是对 Cody Covey 的 ldap-auth 包的分支。不幸的是,他最近没有开发这个包,并且没有将其更新到 Laravel 4.1+ 或 Laravel 5。因此,我决定分支这个包,以提供最小限度的 Laravel 5 支持。
第一个版本,2.0,测试并不充分。请务必小心!
目前这个包仅供我自己使用。如果有任何问题,请创建一个新的问题或拉取请求,我会尽快进行测试。
贡献
只需在此仓库中发布一个问题或创建一个拉取请求。我会非常感激。
安装
Laravel 5
这将遵循与 Laravel 本身管理发布类似的方式。当 Laravel 移动到 5.1 时,这个包将移动到 2.1,其中次要版本表示错误修复等。要安装此包,请将以下内容添加到您的 composer.json 中
require { "freefcw/ldap-auth": "~2.0", }
然后运行
composer install
或 composer update
,根据需要
一旦您从 Packagist.org 下载完此包,您需要告诉您的应用程序使用 LDAP 服务提供程序。
打开 config/app.php
并找到
Illuminate\Auth\AuthServiceProvider
并将其替换为
Ccovey\LdapAuth\LdapAuthServiceProvider
这告诉 Laravel 4 使用来自 vendor 文件夹的服务提供程序。
您还需要将 Auth 指向使用 ldap 驱动程序而不是 Eloquent 或数据库,编辑 config/auth.php
并将驱动程序更改为 ldap
Laravel 4
该包的 Laravel 4 版本不再开发。
要安装此包,请将以下内容添加到您的 composer.json 中
require { "freefcw/ldap-auth": "~1.0", }
然后运行
composer install
或 composer update
,根据需要
一旦您从 Packagist.org 下载完此包,您需要告诉您的应用程序使用 LDAP 服务提供程序。
打开 config/app.php
并找到
Illuminate\Auth\AuthServiceProvider
并将其替换为
Ccovey\LdapAuth\LdapAuthServiceProvider
这告诉 Laravel 4 使用来自 vendor 文件夹的服务提供程序。
您还需要将 Auth 指向使用 ldap 驱动程序而不是 Eloquent 或数据库,编辑 config/auth.php
并将驱动程序更改为 ldap
配置
要在 app/config/auth.php
中指定要使用的用户名字段,请设置键值对 'username_field' => 'fieldname'
。如果您不提供,则默认为 username
。
要设置您的 adLDAP 连接到您的域控制器,创建一个文件 app/config/adldap.php。这将提供所有连接的配置值。对于所有配置选项,应提供一个类似于以下数组。
请注意,唯一必需的选项是 account_suffix
、base_dn
和 domain_controllers
。其他选项提供安全或更多信息。如果您不想使用其他选项,请简单地删除它们。
return array( 'account_suffix' => "@domain.local", 'domain_controllers' => array("dc1.domain.local", "dc2.domain.local"), // An array of domains may be provided for load balancing. 'base_dn' => 'DC=domain,DC=local', 'admin_username' => 'user', 'admin_password' => 'password', 'real_primary_group' => true, // Returns the primary group (an educated guess). 'use_ssl' => true, // If TLS is true this MUST be false. 'use_tls' => false, // If SSL is true this MUST be false. 'recursive_groups' => true, );
使用
$guarded 现在默认为所有,因此要使用模型,您必须将其更改为 $guarded = array()
。如果您存储角色或类似敏感信息,请确保将其添加到 guarded 数组中。
使用 Auth
的方式与默认服务提供程序相同。
默认情况下,这将包含 username (samaccountname)
、displayname
、primary group
以及用户所属的所有组
要编辑要返回的内容,您可以在 config/auth.php
中的 fields
键下指定。
有关 AD 中可用于您的字段的信息,请访问 http://goo.gl/6jL4V
您还可以通过定义 userList
键并将其设置为 true
来获取特定 OU 的完整用户列表。您还必须设置 group
键,该键定义了要查看的 OU。请注意,在大型 AD 中,这可能会减慢应用程序的速度。
模型使用
您仍然可以使用这个实现中的模型。如果需要,ldap-auth将从ldap获取您的字段并将其附加到模型上,允许您从模型中访问诸如角色/权限等。还请注意,所有的认证都是在模型之外进行的。所有认证都由Active Directory完成,如果它们被从AD中移除但仍然在用户表中,它们将无法登录。
注意
这些特征将覆盖父类方法!