blackbit_digital_commerce / pimcore-ldap
Pimcore 的 Ldap 扩展包
1.5.3
2024-01-25 09:02 UTC
Requires
- php: >=8.0
- ext-ldap: *
- pimcore/pimcore: >=11
- symfony/ldap: >=6.3
README
Pimcore 的 Ldap 扩展包
启用对 Pimcore 管理界面的 LDAP 认证。
如果用户已经在 Pimcore 中存在(且不在排除用户列表中),则将自动使用来自 LDAP 的信息进行更新。如果没有,则将自动创建一个新用户。
要求
Pimcore >= 5.1.0
安装
- 使用 composer 安装扩展包:
composer require blackbit_digital_commerce/pimcore-ldap
。 - 打开 Pimcore 管理界面,导航到
工具
>扩展
并激活扩展包。
配置
- 配置 Symfony LDAP 客户端(请参阅 https://symfony.com.cn/doc/current/security/ldap.html#configuring-the-ldap-client)。
# config/services.yaml services: Symfony\Component\Ldap\Ldap: arguments: ['@Symfony\Component\Ldap\Adapter\ExtLdap\Adapter'] Symfony\Component\Ldap\Adapter\ExtLdap\Adapter: arguments: - host: my-server port: 389 encryption: tls options: protocol_version: 3 referrals: false
- 配置 LDAP 扩展包。
# config/config.yaml alep_ldap: enabled: true base_dn: "dc=example,dc=com"
支持选项
- enabled: 启用 LDAP 认证(默认:
false
)。 - service: 要使用的 LDAP 客户端(必需,默认:
Symfony\Component\Ldap\Ldap
)。 - base_dn: 目录的基本 DN(必需,例如:
dc=example,dc=com
)。 - search_dn: 只读用户的 DN,它将用于对 LDAP 服务器进行身份验证以获取用户信息(例如:
cn=your_search_dn_user,ou=users,dc=example,dc=com
)。 - search_password: 只读用户的密码,它将用于对 LDAP 服务器进行身份验证以获取用户信息(例如:
your_search_dn_user_password
)。 - uid_key: 用于其 UID 的条目键。取决于您的 LDAP 服务器实现(必需,默认:
sAMAccountName
)。 - filter: 允许您配置要使用的 LDAP 查询。{uid_key} 字符串将被 uid_key 配置值的值替换(默认为 sAMAccountName),而 {username} 字符串将被您尝试加载的用户名替换(必需,默认:
({uid_key}={username})
)。 - exclude: [已弃用] 要从 LDAP 认证中排除的 Pimcore 用户名列表(例如:
['admin']
)。如果已配置,则值将合并到exclude_rules.users
配置中。 - exclude_rules: 确定是否需要从 LDAP 认证中排除用户的规则列表(它支持正则表达式,请参阅下面)。
- users: 要从 LDAP 认证中排除的用户名或与用户名匹配的正则表达式列表(或用户完整路径,如果用户已存在)(例如:
['admin', '/^noldap.*/i']
以排除用户admin
和所有以noldap
开头的用户,例如noldap_alep
)。 - roles: 要从 LDAP 认证中排除的角色的列表或与角色名称匹配的正则表达式列表(例如:
['ROLE_PIMCORE_ADMIN', '/^ROLE_NOLDAP.*/i']
以排除分配了ROLE_PIMCORE_ADMIN
的用户以及所有以ROLE_NOLDAP
开头的用户,例如ROLE_NOLDAP_USERS
)。
- users: 要从 LDAP 认证中排除的用户名或与用户名匹配的正则表达式列表(或用户完整路径,如果用户已存在)(例如:
- default_roles: 您希望分配给从 LDAP 服务器获取的用户 Pimcore 的角色列表(例如:
['ROLE_LDAP_USERS']
)。所有配置的默认角色必须在 Pimcore 中已存在。 - mapper: 用于将 ldap 用户数据映射到 Pimcore 用户的数据库映射器服务(必需,默认:
Alep\LdapBundle\DataMapper\DefaultLdapUserMapper
)。有关构建自己的数据映射器的信息,请参阅 自定义数据映射器。 - logger: 扩展包使用的记录器服务(例如:
monolog.logger
)。
自定义数据映射器
要构建自己的自定义数据映射器,您只需创建一个实现了LdapUserMapperInterface接口的类。您可以使用DefaultLdapUserMapper作为示例。DefaultLdapUserMapper是该组件默认使用的数据映射器,它将以下LDAP属性映射到Pimcore用户
- username -> 用户名
- password -> 密码(使用Pimcore内部函数进行编码)
- givenName -> 名字
- sn -> 姓氏
- mail -> 邮箱
关于Blackbit
除了这个Pimcore插件,Blackbit还提供其他组件、个性化开发、咨询和托管服务,以满足您的Pimcore项目需求。