portal89 / cakephp-ad-auth
CakePHP插件,用于通过LDAP进行Active Directory认证。
Requires
- php: >=7.4
- adldap2/adldap2: v10.5.0
- cakephp/cakephp: 4.4.*
Requires (Dev)
- phpunit/phpunit: ~8.5.0 || ^9.3
This package is auto-updated.
Last update: 2024-09-09 14:56:42 UTC
README
扩展了CakePHP内置的认证类型,通过使用Adldap2,在LDAP上为Active Directory用户提供表单认证。
使用Composer安装
通过CLI安装Active Directory认证
composer require Portal89/cakephp-ad-auth
通过在您的composer.json
文件中添加以下内容来安装Active Directory认证
"require": {
"Portal89/cakephp-ad-auth"
}
运行composer的update命令来下载插件。
加载到CakePHP应用程序中
使用Composer安装后,手动加载插件
// add to src\Application.php Plugin::load('ActiveDirectoryAuthenticate');
使用Composer安装后,通过CLI加载插件
bin/cake 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键必须包含一个数组,该数组描述了您的环境,以便可以建立连接。在许多情况下,这只需要包括帐户后缀、域控制器和base 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。
'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版本将被标记并发布。