LDAP服务部署
笔者最近在centos上部署了ldap服务用以测试,在部署期间遇到查阅了很多前辈的方法。在此总结一下。链接都是百度上搜索的,大家也可以自己去搜索。建议在虚拟机里先尝试,做好快照。
以下文章参考顺序
建议先看 参考1,对LDAP有个初步的认识,然后看 参考7 ,对一些常见的问题以及注意事项有所了解。最后按照 参考5 部署服务,按照 参考6 部署web管理界面。
相关概念和操作文章
关于LDAP概念以及一些关键词解释:
参考1:https://www.cnblogs.com/wilburxu/p/9174353.htmlLDAP调研,主要关于现有的LDAP实现,现有工具、docker地址整理
参考2:https://www.cnblogs.com/ZHUYIN/p/10966315.htmlLDAP命令相关:https://www.zhukun.net/archives/7980
LDAP协议相关
LDAP 官方协议
参考3:https://ldap.com/?s=protocolLDAP RFC
参考4:https://docs.ldap.com/specs/rfc4511.txt
LDAP部署
按照以下文章里的命令, 修改下对应的参数(不要盲目copy),是成功的
参考5:https://www.cyberithub.com/best-steps-to-install-and-configure-openldap-server-on-rhel-centos-7-这里笔者贴出自己的内核及系统版本仅供参考
3.10.0-1160.31.1.el7.x86_64
CentOS Linux release 7.9.2009 (Core)
LDAP 版本
openldap-clients-2.4.44-23.el7_9.x86_64
openldap-2.4.44-23.el7_9.x86_64
openldap-servers-2.4.44-23.el7_9.x86_64
这篇文章部署LDAP的方式现今不适用了(直接修改的数据库文件),但是PHPldapadmin的安装可以参考
参考6:https://blog.51cto.com/u_11555417/2065747这篇文章作为Centos7部署不成功,Centos6部署是可以的(评论区得出的结果)。但是讲解部署中的注意事项以及原理非常详尽!
参考7:https://segmentfault.com/a/1190000014683418
参考5链接中可能会遇到的问题
看到 vi ldapdomain.ldif 这里要注意下
ldapmodify -Y EXTERNAL -H ldapi:/// -f ldapdomain.ldif
1:原帖中olcAccess原文的内容换行了,应该是一行才对。因此复制到centos中的内容要改为一行,否则执行会报错。
ldapdomain文件中 包含 olcAccess 内容都要调整下。2:olcRootPW: {SSHA}PASSWORD改为最开始得到的密码。
既:
如果你没换密码,并且命令(ldapmodify -Y EXTERNAL -H ldapi:/// -f ldapdomain.ldif)执行成功了,那么后续要输入密码的时候会出问题。
此时可以把 ldapdomain.ldif 文件里的操作add改为replace(并非所有的add,而是只操作 add: olcRootPW 这里的add),然后其余 dn 的操作全部删除掉。再执行一次。3:看到原贴中的 {SSHA},记得把密码替换为自己生成的密码。
这个地方的add
dn: olcDatabase={2}hdb,cn=config
changetype: modify
add: olcRootPW
olcRootPW: 你的密码
使用phpLDAPadmin登录
访问 http://yourhost/phpldapadmin
这个管理后台有年代感啊?输入DN和密码。我们用ldapuser.ldif 文件里的dn尝试下登录。
登录成功!
第三方LDAP登录
笔者本地刚好部署了一个Yapi,是支持LDAP登录的。
那我们修改下yapi的config.json文件,增加一个 ldapLogin,配置信息可以用phpLdapadmin查看下。
输入我们的uid,我上面配置的是 jianshu-tao,密码也是之前配置LDAP 用户对应的密码
登录成功!
查看http请求,是看不到Ldap相关的内容,因为LDAP也是应用层协议,和Http协议其实没有什么关系。
这里可以用WireShark抓取TCP报文段来查看LDAP协议的认证过程。
OK ,好了~
作者:jailbreakTao
原文链接:https://www.jianshu.com/p/c70ff80dcf98