Pimcore 的 Ldap 扩展包

1.5.3 2024-01-25 09:02 UTC

This package is auto-updated.

Last update: 2024-09-25 10:41:16 UTC


README

CircleCI License Total Downloads Latest Stable Version Latest Unstable Version

Pimcore 的 Ldap 扩展包

启用对 Pimcore 管理界面的 LDAP 认证。

如果用户已经在 Pimcore 中存在(且不在排除用户列表中),则将自动使用来自 LDAP 的信息进行更新。如果没有,则将自动创建一个新用户。

要求

Pimcore >= 5.1.0

安装

  1. 使用 composer 安装扩展包:composer require blackbit_digital_commerce/pimcore-ldap
  2. 打开 Pimcore 管理界面,导航到 工具 > 扩展 并激活扩展包。

配置

  1. 配置 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
  1. 配置 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)。
  • 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项目需求