跳到主内容

LDAP 配置与同步

LDAP 按组织配置,同步过来的用户创建在该组织中。用全局管理员在组织页面编辑 LDAP 设置。

ldap_table

连接 LDAP 服务器​

ldap_edit

字段描述
LDAP服务器这台服务器的显示名称(例如 Example LDAP Server)。
域名LDAP 服务器的主机名或 IP(例如 example.com)。
端口端口号,只能是数字(例如 389)。
基础 DN搜索用的基础 DN。 Casdoor 使用子树搜索,返回这个 DN 下的所有用户。管理员账号至少要对这个基础 DN 有读权限(例如 ou=Example,dc=example,dc=com)。
搜索过滤器用户搜索的 LDAP 过滤器(例如 (objectClass=posixAccount))。如果过滤器中包含 {}(部分 LDAP 配置使用的占位符,例如 (uid={})),Casdoor 列出用户时会把它替换成 *,当作通配符。
过滤字段用来识别用户的 LDAP 属性(例如 uid、mail、mobile)。 Casdoor 登录时输入的值会与这些属性匹配;通常用 uid 作为登录名。
管理员LDAP 管理员的绑定 DN 或 ID(取决于服务器,例如 cn=manager,dc=example,dc=com)。
管理员密码管理员账号的密码。
自动同步0 = 关闭。其他值 = 同步间隔(分钟)。
启用群组开启后,Casdoor 会把 LDAP 群组和 OU 同步为 Casdoor 群组,并把用户分配进去。

LDAP_field

同步用户​

同步表列出配置的基础 DN 下的用户。已经同步过的用户复选框为禁用状态。勾选用户并同步,即可导入到组织中。

同步并不限于全局管理员:组织管理员也可以列出并同步本组织的 LDAP 用户。编辑上面的 LDAP 服务器设置仍然需要全局管理员。

ldap_sync

群组与 OU 同步​

开启 Enable groups 后,Casdoor 会在同步用户之前先查询 LDAP 目录中的群组对象。它会在基础 DN 下搜索具有以下任一对象类的条目:groupOfNames、groupOfUniqueNames、posixGroup,以及(Active Directory 的)group。每个匹配的条目都会创建为一个 Casdoor 群组。然后按用户的 memberOf 属性把用户分配到对应群组。

每轮自动同步中,群组同步都在用户同步之前运行,这样在计算用户归属时群组已经存在。如果某个群组查询失败,会记录错误,同步继续进行。

同步用户时,会把用户加入其 LDAP 群组,但不会移除用户已加入的、不由 LDAP 管理的群组,所以手动分配的群组会保留。

LDAP 服务器属性过滤​

默认情况下,Casdoor 内置的 LDAP 服务器会为每个用户条目返回所有标准属性。可以在组织编辑页设置 LDAP attributes 来限制返回哪些属性。

列表非空时,搜索结果条目中只包含选中的属性。可选的属性有:

uid, cn, mail, email, mobile, displayName, givenName, sn, uidNumber, gidNumber, homeDirectory, loginShell, gecos, sshPublicKey, memberOf, title, userPassword, c, co

列表留空则返回所有属性(默认行为)。

默认群组​

同步后分配给用户的一个或多个群组。可以选择多个默认群组,每个同步过来的用户都会加入所有这些群组。

注意事项

如果某个 LDAP 用户的 uid 与组织中已有用户的 name 相同,Casdoor 会创建一个修改了 name 的新用户(uid + 随机后缀)。这个用户可能无法通过 LDAP 登录,因为 LDAP 服务器上没有这样的 uid。避免把已有的 Casdoor 用户名用作 LDAP uid。

手机号规范化​

从 LDAP 同步用户时,Casdoor 会用 libphonenumber 规范化导入的手机号。如果 LDAP 条目带有国家代码(CountryCode 属性),会把它作为地区提示来解析号码。 "China" 这样的国家名会自动转换成两位 ISO 代码("CN");不是有效 ISO 代码的值会被忽略。

解析后,手机号只保存国内格式的数字(不带国家前缀和格式字符)。解析失败或无效的号码按原样保存。