alep / ldap-bundle
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
)。 - 角色:要排除从LDAP身份验证中匹配的角色名称或正则表达式的列表(例如:
['ROLE_PIMCORE_ADMIN', '/^ROLE_NOLDAP.*/i']
,以排除具有ROLE_PIMCORE_ADMIN
角色的用户以及所有以ROLE_NOLDAP
开头的用户,如ROLE_NOLDAP_USERS
)。
- users: 要从 LDAP 认证中排除的用户名或与用户名匹配的正则表达式列表(或用户全路径,如果用户已存在)(例如:
- 默认角色:您希望将来自LDAP服务器的用户分配给Pimcore的角色列表(例如:
['ROLE_LDAP_USERS']
)。所有配置的默认角色都需要已经在Pimcore中存在。 - 映射器:用于将ldap用户数据映射到Pimcore用户的映射器服务(必需,默认:
Alep\LdapBundle\DataMapper\DefaultLdapUserMapper
)。有关自定义数据映射器的信息,请参阅自定义数据映射器。 - 日志记录器:由组件使用的日志记录器服务(例如:
monolog.logger
)。
自定义数据映射器
要构建自己的自定义数据映射器,您只需创建一个实现了LdapUserMapperInterface接口的类。您可以使用DefaultLdapUserMapper作为示例。默认数据映射器是组件使用的默认数据映射器,它将以下ldap属性映射到Pimcore用户
- username -> 用户名
- password -> 密码(使用Pimcore的内部函数编码)
- givenName -> 名字
- sn -> 姓氏
- mail -> 邮箱
关于Blackbit
除了这个Pimcore插件,Blackbit还提供其他组件、个性化开发、咨询和托管服务,以支持您的Pimcore项目。