mindoc-org / mindoc

Golang实现的基于beego框架的接口在线文档管理系统
https://mindoc.com.cn/docs/mindochelp
Apache License 2.0
7.29k stars 1.9k forks source link

mindoc配置LDAP认证失败 #366

Closed skymyyang closed 5 years ago

skymyyang commented 5 years ago

请按照一下格式提交issue,谢谢!

  1. 你当前使用的是哪个版本的 MinDoc(godoc_linux_amd64 version)?

mindoc的版本是V1.0.1

  1. 你当前使用的是什么操作系统? Centos 7

  2. 你是如何操作的? 关于LDAP的配置如下:

    是否启用ldap

    ldap_enable=true

    ldap主机名

    ldap_host=172.16.18.246

    ldap端口

    ldap_port=389

    ldap内哪个属性作为用户名

    ldap_attribute=sAMAccountName

    搜索范围

    ldap_base=OU=mofangge,DC=mofangge,DC=cc

    第一次绑定ldap用户dn

    ldap_user=CN=mindocadmin,OU=Users,DC=mofangge,DC=cc

    第一次绑定ldap用户密码

    ldap_password=AAbbcc11..

    自动注册用户角色:0 超级管理员 /1 管理员/ 2 普通用户

    ldap_user_role=0

    ldap搜索filter规则,AD服务器: objectClass=User, openldap服务器: objectClass=posixAccount ,也可以定义为其他属性,如: title=mindoc

    ldap_filter=objectClass=User

  3. 你期望得到什么结果? 期望使用ldap的用户能够登录。

  4. 当前遇到的是什么结果? 当前看到的输出提示是: 2018/10/10 21:21:41.391 [I] [AccountController.go:67] 转入LDAP登陆 2018/10/10 21:21:41.393 [E] [AccountController.go:93] 用户登录 -> 第一次LDAP绑定失败

lifei6671 commented 5 years ago

请检查ldap是否可以正常连接,配置的信息是否正确。

skymyyang commented 5 years ago

ldap是可以正常连接的,已经集成到gitlab 和Jenkins,不知为何mindoc无法集成。如果你有时间的话,可以帮忙看一下。此配置也是参照gitlab进行配置的,我们用的是Windows的域控,是否有需要特别注意的点呢?

lifei6671 commented 5 years ago

我不懂ldap,代码是网友提供的,很多网友都连接成功了。但是不知道连接Windows的域控是否可以。

skymyyang commented 5 years ago

谢谢你的帮助,我找到原因了,具体配置如下:

是否启用ldap

ldap_enable=true

ldap主机名

ldap_host=172.16.18.245

ldap端口

ldap_port=389

ldap内哪个属性作为用户名

ldap_attribute=sAMAccountName

搜索范围

ldap_base=OU=mofangge,DC=mofangge,DC=cc

第一次绑定ldap用户dn

ldap_user=CN=docadmin,CN=Users,DC=mofangge,DC=cc

第一次绑定ldap用户密码

ldap_password=ling4022@163.com

自动注册用户角色:0 超级管理员 /1 管理员/ 2 普通用户

ldap_user_role=2

ldap搜索filter规则,AD服务器: objectClass=User, openldap服务器: objectClass=posixAccount ,也可以定义为其他属性,如: title=mindoc

ldap_filter=objectClass=User

Windows Active Directory必须添加用户名的邮箱才能完成注册。

aixj1984 commented 5 years ago

谢谢你的帮助,我找到原因了,具体配置如下:

是否启用ldap

ldap_enable=true

ldap主机名

ldap_host=172.16.18.245

ldap端口

ldap_port=389

ldap内哪个属性作为用户名

ldap_attribute=sAMAccountName

搜索范围

ldap_base=OU=mofangge,DC=mofangge,DC=cc

第一次绑定ldap用户dn

ldap_user=CN=docadmin,CN=Users,DC=mofangge,DC=cc

第一次绑定ldap用户密码

ldap_password=ling4022@163.com

自动注册用户角色:0 超级管理员 /1 管理员/ 2 普通用户

ldap_user_role=2

ldap搜索filter规则,AD服务器: objectClass=User, openldap服务器: objectClass=posixAccount ,也可以定义为其他属性,如: title=mindoc

ldap_filter=objectClass=User

Windows Active Directory必须添加用户名的邮箱才能完成注册。

我补充一下,我测试发现,必须配置域账户的管理员采用,普通用户哪怕具有管理员权限的,也不行

karlxu11 commented 5 years ago

谢谢你的帮助,我找到原因了,具体配置如下:

是否启用ldap

ldap_enable=true

ldap主机名

ldap_host=172.16.18.245

ldap端口

ldap_port=389

ldap内哪个属性作为用户名

ldap_attribute=sAMAccountName

搜索范围

ldap_base=OU=mofangge,DC=mofangge,DC=cc

第一次绑定ldap用户dn

ldap_user=CN=docadmin,CN=Users,DC=mofangge,DC=cc

第一次绑定ldap用户密码

ldap_password=ling4022@163.com

自动注册用户角色:0 超级管理员 /1 管理员/ 2 普通用户

ldap_user_role=2

ldap搜索filter规则,AD服务器: objectClass=User, openldap服务器: objectClass=posixAccount ,也可以定义为其他属性,如: title=mindoc

ldap_filter=objectClass=User

Windows Active Directory必须添加用户名的邮箱才能完成注册。

你好,请问最后的‘必须添加用户名的邮箱才能完成注册’是什么意思?我也是一直没配置成功,提示如下: 2019/07/09 14:19:10.037 [E] [Member.go:109] 绑定 LDAP 用户失败 -> LDAP Result Code 49 "Invalid Credentials": 80090308: LdapErr: DSID-0C0903C8, comment: AcceptSecurityContext error, data 52e, v2580

lifei6671 commented 5 years ago

@karlxu11 他的那个是因为ldap中的用户没有配置邮箱导致的,你这个感觉像是通信中认证失败了。

karlxu11 commented 5 years ago

@karlxu11 他的那个是因为ldap中的用户没有配置邮箱导致的,你这个感觉像是通信中认证失败了。

好的,我看了下我的用户是administrator,配置了邮箱的。请问项目中有没有调式模式?可以多打印点log

lifei6671 commented 5 years ago

@karlxu11 你配置发下。

karlxu11 commented 5 years ago

@karlxu11 你配置发下。

################Active Directory/LDAP################

是否启用ldap

ldap_enable=true

ldap主机名

ldap_host=172.253.40.78

ldap端口

ldap_port=389

ldap内哪个属性作为用户名

ldap_attribute=sAMAccountName

搜索范围

ldap_base=DC=cmstest,DC=com

第一次绑定ldap用户dn

ldap_user=CN=administrator,OU=Users,DC=CMSTest,DC=com

第一次绑定ldap用户密码

ldap_password=CMS@adtest01!

自动注册用户角色:0 超级管理员 /1 管理员/ 2 普通用户

ldap_user_role=2

ldap搜索filter规则,AD服务器: objectClass=User, openldap服务器: objectClass=posixAccount ,也可以定义为其他属性,如: title=mindoc

ldap_filter=objectClass=posixAccount

报错如下: image

lifei6671 commented 5 years ago

@karlxu11 应该是你的账户或密码错误。你可以参考下这个 https://blog.csdn.net/chaijunkun/article/details/23695001 具体的我也没搞过。

karlxu11 commented 5 years ago

这个文章我之前也搜到过,确认不是密码的问题。 我还试过新建一个用户,账号密码也是我重新设置的,也是不行。