mirror of
https://github.com/kuaifan/dootask.git
synced 2026-07-31 18:35:56 +00:00
2.6 KiB
2.6 KiB
id, title, type, feature, scope, locale, aliases, related_tools, related_pages, prerequisites, negative, last_verified
| id | title | type | feature | scope | locale | aliases | related_tools | related_pages | prerequisites | negative | last_verified | |||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ldap.concept | LDAP 集成是什么 | concept | ldap | admin | zh |
|
|
|
v1.7.90 |
LDAP 集成是什么
定义
LDAP(Lightweight Directory Access Protocol)集成让 DooTask 用企业已有的 LDAP / Active Directory 账号体系做认证。开启后用户在登录页输入企业域账号 + 密码,DooTask 通过 LDAP 协议向目录服务器认证,认证成功后在本地自动创建或合并账号。
实现位于 app/Ldap/LdapUser.php,依赖 directorytree/ldaprecord 库。设置存在 setting 表的 thirdAccessSetting 分组。
关键属性
- ldap_open — 总开关;非
open时所有 LDAP 调用直接 short-circuit 返回 - ldap_host / ldap_port — 目录服务器地址(端口默认 389)
- ldap_user_dn / ldap_password — 管理员 Bind DN 与密码,用于搜索用户
- ldap_base_dn — 搜索基准 DN,限定查找范围
- ldap_login_attr — 登录属性,可选
cn/uid/mail/sAMAccountName/userPrincipalName,默认cn - ldap_sync_local — 本地账号反向写入 LDAP 的开关
工作流程
- 用户在 DooTask 登录页输入企业账号 + 密码
- 后端用管理员 Bind 搜索
loginAttr=用户名的 entry - 拿到该 entry 的真实 DN,用「DN + 用户输入的密码」二次 Bind
- Bind 成功 → 从 entry 中提取邮箱(按
mail / cn / uid / userPrincipalName顺序) - 本地按 email 查找用户:找不到则注册(本地密码随机),找到则合并
- 同步昵称、头像(
jpegPhoto字段)到本地账号
与其他概念的关系
- 本地账号:本地账号若没
ldapidentity,被 LDAP 用户合并时会打上ldap标 - 同步本地(
ldap_sync_local=open):本地用户登录或注册时反向把账号写到 LDAP,便于统一管控 - Swoole 协程:连接在容器中共享,认证成功后会立刻还原成管理员绑定,避免污染下一个请求
配置入口见 system-setting.third-access.howto 或 ldap.config.howto。