docs/docs/cn/users-permissions/sync/sources/ldap.md
<PluginInfo commercial="true" name="auth-ldap"></PluginInfo>
认证:LDAP 插件可以将已有的 LDAP 认证器作为用户数据同步来源。同步来源会复用认证器的 LDAP 连接、Bind DN、Search DN、搜索范围和属性映射,并将获取到的用户及可选的部门层级写入 NocoBase。
进入 用户和权限 > 同步,点击 添加,类型选择 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}} 推断,例如 uid、sAMAccountName 或 mail。缺少该属性的用户会被跳过。 |
属性映射到 username | 用户名。 |
属性映射到 nickname | 用户昵称。 |
属性映射到 email | 用户邮箱。 |
属性映射到 phone | 用户手机号。 |
distinguishedName,为空时使用条目 DN | 查找 DN 路径中最近的一个已同步部门,并将其设置为用户的主部门。仅在启用部门同步时生效。 |
对于多值 LDAP 属性,当前只同步第一个值。未在认证器属性映射中配置的其他用户属性不会同步。
| LDAP 属性或结构 | NocoBase 字段或用途 |
|---|---|
objectGUID | 部门的来源唯一标识。缺少该属性的组织单元会被跳过。 |
ou、cn、name | 按顺序使用第一个非空值作为部门名称。缺少名称的组织单元会被跳过。 |
distinguishedName,为空时使用条目 DN | 识别当前部门及其上级部门,用于建立部门层级。 |
部门同步默认搜索 organizationalUnit 和 container 对象。目前不会从 memberOf 等属性同步用户的多个部门,也不会同步部门负责人。