unholyknight/active-directory-authenticate

LDAP上Active Directory身份验证的CakePHP插件。

dev-master 2017-11-27 08:15 UTC

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。