前沿
领导:Hi 小王,以前有没有接触过Ldap??
小王:啥?Ldap是啥?没接触过。
领导:那有没有使用过微软的AD?
小王;啥是AD?没有
领导:好吧,我简单说下,我们目前使用AD保存用户的信息,但是AD不是开源的,无法二次开发,使用起来不太方便,所以我们如果能找到一个同样支持Ldap协议的开源软件,那么就能通过对该开源软件进行二次开发,来满足我们的需要。具体让龙哥和你详细聊聊。
龙哥:巴拉巴拉
小王:太多新名词,没太明白,我先自己查查资料,了解下这些新的名词。
龙哥:好,有问题随时沟通。
正文
为了找到一个基于Ldap开源软件,而且还是熟悉的开发语言,进行二次开发,大体思考了下调研思路,先按照以下几个步骤:
1、Ldap协议是啥?
2、目前行业支持Ldap协议的产品有哪些?
3、这些软件是否有满足我们要求的?选择一个合适的软件。
4、下载开源项目及浏览其目录结构,了解子项目的大体功能。
5、找到启动类进行启动。
6、使用客户端登陆认证,根据用户名登陆是否能找到登陆入口?
7、阅读入口源码,并且以此为入口,找到增删改查的相关接口?
8、将登陆实现替换成目前使用的AD验证,也就是说,将内部的登陆验证,透传到正在使用的AD上,我们的开源项目只做入口、参数透传,不做正真验证。
9、部署到测试环境上。
10、暴露IP + 端口,进行验证。
思路明确后,我们只需要按照这个步骤进行调研,在该过程中,如果出现问题,随时做调整
Ldap协议介绍
它是基于X.500标准扽轻量级目录访问协议,是开发的Internet标准,支持跨平台的internet协议。
目录是一个为查询、浏览、搜索而优化的数据库,它成树状结构组织数据,类似文件目录一样。
目录数据库和关系型数据库不同,它有优异的读性能,但写性能差,并且没有事务处理,不适合存储修改频繁的数据。所以目录天生是用来查询的。
上述这段定义是摘抄自别的博客,很好的阐述了Ldap协议的特点,Ldap只是定义了协议,没有具体的实现,所有对其实现的产品都是支持Ldap协议的。
其他产品对其支持:
YAPI对其进行支持,通过配置Ldap的服务,能够通过Ldap进行登陆;
metabase对其进行支持,通过管理员配置Ldap参数,也能够通过Ldap进行登陆;