轻型目录访问协议(英文:Lightweight Directory Access Protocol
,缩写:LDAP
)是一个开放的,中立的,工业标准的应用协议,通过IP协议提供访问控制和维护分布式信息的目录信息。
OpenLDAP
是轻型目录访问协议(Lightweight Directory Access Protocol
,LDAP
)的自由和开源的实现,在其OpenLDAP
许可证下发行,并已经被包含在众多流行的Linux
发行版中。可以这样讲:市面上只要你能够想像得到的所有工具软件,全部都支持
LDAP
协议。比如说你公司要安装一个项目管理工具,那么这个工具几乎必然支持LDAP
协议,你公司要安装一个bug
管理工具,这工具必然也支持LDAP
协议,你公司要安装一套软件版本管理工具,这工具也必然支持LDAP
协议。LDAP
协议的好处就是你公司的所有员工在所有这些工具里共享同一套用户名和密码,来人的时候新增一个用户就能自动访问所有系统,走人的时候一键删除就取消了他对所有系统的访问权限,这就是LDAP
。
有些领域并不像前端世界那么潮那么性感,但是缺了这个环节又总觉得很别扭。如果深入到运维的世界,你会发现大部分工具还活在上个世纪,产品设计完全反人类,比如cn
, dc
, dn
, ou
这样的命名方式,如果不钻研个一天两天,鬼知道它在说什么,比如说dns
,dns
是什么鬼?域名吗?不是,它只是某个懒惰的工程师起了dn
这么一个缩写,再加一个复数,就成了dns
,和域名服务器没有任何关系;cn
是什么?中国的缩写?你想多了,这和中国没有任何关系。经过一系列这样疯狂的洗脑之后,你才能逐渐明白LDAP
到底想干什么。抛弃你所有的认知,把自己当成一个什么都不懂的幼儿园孩子,然后我们从头学起LDAP
。
如果你搜索OpenLDAP
的安装指南,很不幸地告诉你,网上不管中文的英文的,90%
都是错的,它们都还活在上个世纪,它们会告诉你要去修改一个叫做slapd.conf
的文件,基本上看到这里,你就不用往下看了,这个文件早就被抛弃,新版的OpenLDAP
里根本就没有这个文件!取而代之的是slapd.d
的文件夹,然后另一部分教程会告诉你,让你修改这个文件夹下的某一个ldif
文件,看到这里,你也不用往下看了,你又看到了伪教程,因为这个文件夹下的所有文件的第一行都明确地写着:『这是一个自动生成的文件,不要修改它!
』你修改了它之后,它的md5
校验值会匹配不上,造成更多的问题。你应该用ldapmodify
来修改这个文件,而关于ldapmodify
的教程,可以说几乎就没有!我一开始不知道面临这样荒谬的处境,很多运维人员是怎么活下来的,不过等我自己配通了以后,真的是累到连写教程的精力都没有了,好吧,我已经配通了,你们各人自求多福吧。
架构
实际上,我的操作步骤很多都是反的,架构这部分是最后才意识到的,但实际上从最一开始就应该先想到。实际上整个OpenLDAP
的架构大致包含3
个部分,而网上没有教材提到这块。