con4gis / ldap
认证包,包含用于Contao后端和前端使用外部认证所需的功能
Requires
- php: ^7.4 || ^8.0
- contao/core-bundle: ^4.9
- doctrine/orm: ^2.8.1
- menatwork/contao-multicolumnwizard-bundle: ^3.5.2
- symfony/ldap: ^4.4 || ^5.4
Suggests
- con4gis/core: For integration with other con4gis applications
Conflicts
- contao/core: *
- contao/manager-plugin: <2.0 || >=3.0
README
此包为Contao后端和前端用户/组添加了LDAP功能。
要求
要使一切正常工作,您需要安装并激活PHP扩展"php-ldap"。没有它,您无法安装和使用此包。除此之外,您至少需要Contao版本4.9。
安装
步骤 1: 安装包
您可以使用composer或contao管理器安装包。对于composer,使用以下命令
$ composer require con4gis/ldap
在contao管理器中,您可以在"con4gis/ldap"下找到该包。
步骤 2: 配置包
安装后,您需要将文件"security.yml"和"services.yml"添加到您的安装根目录中的config文件夹中。如果不存在"config.yml"文件,则创建它。然后,您需要将这些配置添加到这些文件中
services.yml
services: Symfony\Component\Ldap\Ldap: arguments: ['@Symfony\Component\Ldap\Adapter\ExtLdap\Adapter'] Symfony\Component\Ldap\Adapter\ExtLdap\Adapter: arguments: - host: ad.yourldapserver.com port: 389 encryption: tls options: protocol_version: 3 referrals: false
在services.yml中,您需要更改主机为您的LDAP服务器可用的位置。如果您不使用标准端口,请在此处更改它(SSL通常是端口636)。对于加密,您可以选择"none"(不推荐)、"ssl"和"tls"。
security.yml
security: providers: con4gis_ldap: ldap: service: Symfony\Component\Ldap\Ldap base_dn: 'dc=ad,dc=yourldapserver,dc=com' search_dn: 'cn=Administrator,cn=Users,dc=ad,dc=yourldapserver,dc=com' search_password: '*Password*' default_roles: ROLE_USER uid_key: uid filter: '(objectClass=user)' chain_provider_backend: chain: provider: [contao.security.backend_user_provider, con4gis_ldap] chain_provider_frontend: chain: provider: [contao.security.frontend_user_provider, con4gis_ldap] firewalls: contao_backend: provider: chain_provider_backend form_login_ldap: service: Symfony\Component\Ldap\Ldap dn_string: 'uid={username},ou=Users,dc=ad,dc=yourldapserver,dc=com' contao_frontend: provider: chain_provider_frontend form_login_ldap: service: Symfony\Component\Ldap\Ldap dn_string: 'uid={username},ou=Users,dc=ad,dc=yourldapserver,dc=com'
在此配置文件中,您需要更改一些内容。这些包括"base_dn"、"search_dn"、"search_password"、"uid_key"、"filter"以及"contao_backend"和"contao_frontend"中的两个"dn_string"。
uid_key需要包含包含用户名的属性。通常它是"uid"或"sAMAccountName"(对于Windows AD)。您可以使用"filter"过滤可以登录的用户。这是完全可选的。如果您不希望这样做,请删除该行。
dn_string可以包含两个占位符:"{"username}"和"{uid_key}"。这些占位符将被登录请求的用户名以及您之前设置的uid_key所替换。
config.yml
imports: - { resource: security.yml } - { resource: services.yml }
在此处,您需要导入新创建的文件。
在这些更改之后,您需要清除Symfony缓存以使一切正常工作。
步骤 3: 配置组
现在您可以通过登录到后端来配置其他一切。您可以从您的LDAP服务器导入用户和成员组,并选择一个管理员组。