Back to Nocobase

从 LDAP 同步用户数据

docs/docs/cn/users-permissions/sync/sources/ldap.md

2.1.434.4 KB
Original Source

从 LDAP 同步用户数据

<PluginInfo commercial="true" name="auth-ldap"></PluginInfo>

介绍

认证:LDAP 插件可以将已有的 LDAP 认证器作为用户数据同步来源。同步来源会复用认证器的 LDAP 连接、Bind DN、Search DN、搜索范围和属性映射,并将获取到的用户及可选的部门层级写入 NocoBase。

准备工作

  1. 安装并启用 认证:LDAP用户数据同步 插件。
  2. 创建并验证一个 LDAP 认证器,参考认证:LDAP
  3. 确认认证器的属性映射包含 NocoBase 所需字段,例如用户名或邮箱、昵称和手机号。

添加 LDAP 同步来源

进入 用户和权限 > 同步,点击 添加,类型选择 LDAP

配置以下字段:

字段说明
来源名称当前同步来源的唯一名称。
启用启用后可以执行手动同步和 LDAP 同步任务。
LDAP 认证器选择已有的 LDAP 认证器,复用其连接和属性映射。
同步过滤条件同步用户时使用的 LDAP 过滤条件,默认为 (&(objectCategory=person)(objectClass=user)),请根据实际目录结构调整。
数量限制单次 LDAP 搜索可返回的最大记录数。留空时使用 LDAP 服务端的默认限制。
分页大小LDAP 分页搜索的每页记录数。当目录记录数超过单次查询限制时使用。
同步部门同时将 LDAP 组织层级同步为 NocoBase 部门。
部门搜索 DN启用部门同步后必填。填写包含待同步组织单元的 DN,例如 ou=departments,dc=example,dc=com

:::info 同步来源使用所选认证器的 Bind DN 和 Bind password 搜索 LDAP,不会另外保存一份 LDAP 连接凭据。 :::

同步用户

保存并启用来源后,点击 同步 执行一次全量同步。可以通过 任务 查看同步结果,并重试失败的任务。

用户匹配方式由 LDAP 认证器中的 用于绑定用户的字段 决定。首次同步后应保持该设置和认证器属性映射稳定,避免产生重复用户。

同步部门

LDAP 目录中存在需要同步到 NocoBase 的组织层级时,启用 同步部门 并填写 部门搜索 DN

插件会搜索该 DN 下的组织单元,保留上下级关系,并根据用户的 distinguished name 建立用户与部门的关联。部门搜索 DN 应覆盖待同步用户所关联的组织单元。

同步字段

用户字段

用户字段复用所选 LDAP 认证器的 属性映射

LDAP 属性或配置NocoBase 字段或用途
登录账号属性作为用户的来源唯一标识,并写入认证器 用于绑定用户的字段 所选择的用户名或邮箱。该属性通常从认证器搜索过滤条件中的 {{account}} 推断,例如 uidsAMAccountNamemail。缺少该属性的用户会被跳过。
属性映射到 username用户名。
属性映射到 nickname用户昵称。
属性映射到 email用户邮箱。
属性映射到 phone用户手机号。
distinguishedName,为空时使用条目 DN查找 DN 路径中最近的一个已同步部门,并将其设置为用户的主部门。仅在启用部门同步时生效。

对于多值 LDAP 属性,当前只同步第一个值。未在认证器属性映射中配置的其他用户属性不会同步。

部门字段

LDAP 属性或结构NocoBase 字段或用途
objectGUID部门的来源唯一标识。缺少该属性的组织单元会被跳过。
oucnname按顺序使用第一个非空值作为部门名称。缺少名称的组织单元会被跳过。
distinguishedName,为空时使用条目 DN识别当前部门及其上级部门,用于建立部门层级。

部门同步默认搜索 organizationalUnitcontainer 对象。目前不会从 memberOf 等属性同步用户的多个部门,也不会同步部门负责人。

故障排查

  • 没有返回用户时,检查认证器的 Search DN、搜索范围、Bind DN 权限和同步过滤条件。
  • 同步结果被截断时,配置分页大小,并检查 LDAP 服务端的数量限制。
  • 部门缺失时,确认已启用部门同步,并检查部门搜索 DN 是否覆盖目标组织单元。
  • 在同步任务详情和应用日志中查看 LDAP 连接、绑定及搜索错误。