heimrichhannot/contao-ldap-bundle

此插件提供有关 Contao CMS 的 LDAP 服务器功能。

0.1.1 2021-07-12 07:18 UTC

This package is auto-updated.

Last update: 2024-09-13 10:15:38 UTC


README

此插件提供有关 Contao CMS 的 LDAP 服务器功能。

功能

  • 从 LDAP 服务器同步用户及其组(适用于前端成员和后端用户)
  • 通过命令和/或按需同步(前端和后端登录 -> 无需自定义登录模块)

安装和配置

  1. 运行 composer require heimrichhannot/contao-ldap-bundle
  2. 更新数据库。
  3. 重要:为安全起见,请先备份您的表 tl_usertl_user_grouptl_membertl_member_group
  4. 根据“配置”部分所述创建您的配置。
  5. 如果您的系统不在开发环境中,请清除缓存。

配置

运行 vendor/bin/contao-console config:dump-reference huh_ldap 以查看完整的配置引用。

以下是一个同步后端用户的示例配置(成员配置几乎相同)

huh_ldap:
  user:
    connection: # here you can pass in all options allowed in symfony/ldap connections
      host: localhost
      encryption: ssl
    bind_dn: cn=admin,dc=example,dc=com
    bind_password: some_password
    person_username_ldap_field: uid # this field is used to match the username in contao login forms with the ldap representation
    person: # config for persons
      admin_gid_number: 5002
      base_dn: ou=People,dc=example,dc=com
    group: # config for groups
      base_dn: ou=Groups,dc=example,dc=com

技术细节

同步是如何工作的?

基本上,通过运行命令 vendor/bin/contao-console huh_ldap:sync_persons,将用户和组导入到您在 config.yml 配置中指定的位置。您可以使用此操作来检索所有用户/成员。

此外,在登录(后端和前端)时,从 ldap 获取给定用户名的数据并将其同步到本地实体(您可以在 person_username_ldap_field 配置中指定要使用的字段)。

在大多数情况下,您不一定需要每天晚上作为 cronjob 调用该命令,因为数据是在登录时按需检索的。不过,如果您需要最新数据,可以随时调用此命令 ;-)

如果用户/成员已经在本地和 ldap 目录中存在怎么办?

如果用户或成员通过用户名在本地系统中和 ldap 目录中已存在,但尚未“迁移”,即数据库中设置了 ldapUidNumber,怎么办?

在这种情况下,匹配是通过 contao 和 ldap 中的用户名值(由您的配置中的 person_username_ldap_field 指定的字段)来完成的。然后设置相应的 ldapUidNumber,并将 ldap 目录中的数据存储到本地用户对象中,以确保一切同步。

此外,默认情况下,以下字段从 ldap 同步到本地用户/成员

  • 用户名
  • 电子邮件
  • 名、姓(成员)
  • 名称(用户)

如果组已经在本地和 ldap 目录中存在怎么办?

由于组没有像用户那样唯一的字段,如果想要避免在 ldap 和本地中都已存在的组再次在本地添加,需要在导入之前手动设置相应的 tl_member/tl_user 数据库记录中的 ldapGidNumber

命令

事件