开源版禅道ZenTao集成LDAP
注:
本文仅针对开源版。 禅道ZenTao专业版,默认集成有LDAP插件,直接配置即可。
Docker安装禅道ZenTao
如果未安装禅道的,可使用Docker快速安装,如果已经安装的,可跳过。
Docker Hub地址:https://hub.docker.com/r/idoop/zentao
Docker安装命令:
docker run -d -p 80:80 -p 3306:3306 \
-e BIND_ADDRESS="false" \
-v /data/zentao/:/opt/zbox/ \
--name myzentao idoop/zentao:latest
# 单行
# docker run -d -p 80:80 -p 3306:3306 -e BIND_ADDRESS="false" -v /data/zentao/:/opt/zbox/ --name myzentao idoop/zentao:latest
安装完成后,访问http://localhost
即可。
默认用户名及密码为:
admin/123456
安装LDAP插件
管理员登录禅道,进入 后台
–插件
,搜索 ldap
选择禅道开源版LDAP插件(1.2)
下载
再从 本地安装
进行安装。
windows 进入 \xampp\zentao\
目录,docker 进入/opt/zbox/app/zentao/
目录,修改以下文件:
1. 修改module/user/ext/model/identify.php 文件
- 删除
$account = $this->config->ldap->uid.'='.$account.','.$this->config->ldap->baseDN;
增加 $dn = $ldap->getUserDn($this->config->ldap, $account);
- 将
$pass...
一行修改为
$pass = $ldap->identify($this->config->ldap->host, $dn, $password);
2. 修改module/ldap/model.php 文件
在大括号内,增加如下函数:
public function getUserDn($config, $account){
$ret = null;
$ds = ldap_connect($config->host);
if ($ds) {
ldap_set_option($ds,LDAP_OPT_PROTOCOL_VERSION,3);
ldap_bind($ds, $config->bindDN, $config->bindPWD);
$filter = "(uid=$account)";
$rlt = ldap_search($ds, $config->baseDN, $filter);
$count=ldap_count_entries($ds, $rlt);
if($count > 0){
$data = ldap_get_entries($ds, $rlt);
$ret = $data[0]['dn'];
$str = serialize($data);
}
ldap_unbind($ds);
ldap_close($ds);
}
return $ret;
}
3. 修改 config/my.php 文件
添加 $config->notMd5Pwd = true;
以关闭md5加密,否则认证不能通过
配置LDAP
管理员登录禅道,进入 后台
- LDAP
,配置如下参数:
(参数仅供参考,填写实际LDAP配置)
选项 | 值 |
---|---|
LDAP服务器 | ldap://192.168.32.203:389 |
协议版本 | 3 |
BindDN | cn=admin,dc=mylitboy,dc=com |
BindDN 密码 | ldap123 |
BaseDN | ou=users,dc=mylitboy,dc=com |
Search filter | (objectClass=person) |
账号字段 | uid |
EMail 字段 | |
姓名字段 | uid |
最后,保存设置,并手动同步用户即可。
登录使用
非LDAP用户登录,使用"$"+用户名登录
,如:$admin
LDAP的用户直接登录使用即可。
注意:(经测试,ldap用户无法在禅道内修改密码,会提示原密码不正确)