unholyknight / active-directory-authenticate
LDAP上Active Directory身份验证的CakePHP插件。
Requires
- php: >=5.5.0
- adldap2/adldap2: ~6.0
- cakephp/cakephp: ~3.0
Requires (Dev)
- phpunit/phpunit: ~5.3
This package is not auto-updated.
Last update: 2024-09-14 19:36:41 UTC
README
通过扩展CakePHP的内置身份验证类型,使用Adldap2为Active Directory用户提供基于LDAP的表单身份验证。
使用Composer安装
通过在您的composer.json
文件中添加以下内容安装Active Directory Authentication:
"require": {
"unholyknight/active-directory-authenticate": "master"
}
运行Composer的update命令以下载插件。
加载到CakePHP应用程序中
使用Composer安装后,加载插件
// add to config/bootstrap.php Plugin::load('ActiveDirectoryAuthenticate');
添加Active Directory身份验证
身份验证的处理方式类似于Cake的本地FormAuthenticate。这包括FormAuthenticate的核心配置选项以及一些Active Directory连接和查询数据的扩展选项。
要将Active Directory身份验证组件添加到您的应用程序中,打开您的src/Controller/AppController.php文件,并在initialize()函数中添加以下行。扩展选项将在下面进一步描述。有关CakePHP核心FormAuthenticate和相关选项的更多信息,请参阅Cookbook的身份验证示例。
public function initialize() { //... $this->loadComponent('Auth', [ 'authenticate' => [ 'ActiveDirectoryAuthenticate.Adldap' => [ 'config' => [ 'account_suffix' => '@corp.acme.org', 'base_dn' => 'dc=corp,dc=acme,dc=org', 'domain_controllers' => ['ACME-DC01.corp.acme.org'] ] ] ] ]); //... }
配置选项
'config'
config键必须包含一个数组,该数组描述了您的环境,以便建立连接。在许多情况下,这只需要包括账户后缀、域控制器和基础DN。
'config' => [ 'account_suffix' => '@corp.acme.org', 'base_dn' => 'dc=corp,dc=acme,dc=org', 'domain_controllers' => ['ACME-DC01.corp.acme.org'] ]
扩展选项包括对ssl、tls和非标准端口的支持。有关可用选项的完整列表,请参阅Adldap2的配置文档。
'select'
select键可以是返回的属性数组或null(默认为null)。这些属性将取决于您的Active Directory环境中可用的LDAP属性。
如果设置为null,则将返回用户的所有可用信息。
'select' => [ 'displayName', 'samaccountname', 'telephonenumber', 'mail' ]
Microsoft的Active Directory Schema文档是参考可用的LDAP属性的好资源,但这些属性可能因您的Active Directory环境而异。
'ignored'
ignored键是不希望返回数据的键的数组。默认情况下,ignored数组包含'distinguishedname'、'dn'、'objectcategory'和'objectclass',以便清理返回给Auth组件的数据。如果希望检索所有键,则将ignored设置为null或空数组。
'ignored' => [ 'distinguishedname', 'dn', 'objectcategory', 'objectclass' ]
组成员处理
已验证用户的组总是检索并返回在memberof和groups键中。
memberof包含用户Active Directory组的原始格式数组。
'memberof' => [ 0 => 'CN=Admins,OU=Applications,OU=Groups,DC=acme,DC=org', 1 => 'CN=WordPress Editors,OU=Applications,OU=Groups,DC=acme,DC=org', 2 => 'CN=Google Apps Users,OU=Applications,OU=Groups,DC=acme,DC=org', 3 => 'CN=Members,OU=Security,OU=Groups,DC=acme,DC=org' ]
groups包含仅按名称排列的用户Active Directory组数组。当定义对控制器和操作的细粒度访问时,这可能很有用。
'groups' => [ 0 => 'Admins', 1 => 'WordPress Editors', 2 => 'Google Apps Users', 3 => 'Members' ]
测试
此插件尚未编写测试。一旦可用,将标记并发布版本1.0。