portal89/cakephp-ad-auth

CakePHP插件,用于通过LDAP进行Active Directory认证。

安装: 0

依赖项: 0

建议者: 0

安全性: 0

星星: 0

关注者: 1

分支: 0

类型:cakephp-plugin

dev-main 2023-07-31 16:21 UTC

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版本将被标记并发布。