開源版禪道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用戶無法在禪道內修改密碼,會提示原密碼不正確)