LDAP 简介

为啥用LDAP,固然是为了统一认证啦。为啥要用统一认证?话说你家里有十台八台机器的时候,你能够手动去建立帐号,维护帐号,有人来了,咱们开心快乐的去开帐号,有人走了咱们在缅怀一下去关帐号,科学一点你可使用ansible或者saltstack 等自动化工具来干这事,but 当你的机器成千上万的时候呢?或者你的人头成千上万的时候呢?那个时候就不是开心快乐的去开了吧?这个时候统一的帐号认证系统就是你的利器了!另外从长远考虑,不管你管理的机器规模有多大,最好有这样的统一认证体系,打好基础万一哪天大家公司业务量暴增了,你就能少抄不少心,少干不少活,就能够用这个时间泡泡妞,聊聊M的不是挺好!认证系统能够用微软的AD,不过要花银子,花银子老板就不高兴,加上咱们运维人员都是Linux派,对windows 。。。!因此OpenLdap就是咱们减预算,哄老板开心,开通统一认证平台的居家旅行必备利器了!
一,LDAP 协议简介
工欲善其事,必先利其器,仍是要先来了解一下LDAP协议的相关内容:
LDAP是一款轻量级目录访问协议(Lightweight Directory Access Protocol,简称LDAP),属于开源集中帐号管理架构的实现,且支持众多系统版本,被广大互联网公司所采用。
LDAP提供并实现目录服务的信息服务,目录服务是一种特殊的数据库系统,对于数据的读取、浏览、搜索有很好的效果。目录服务通常用来包含基于属性的描述性信息并支持精细复杂的过滤功能,但OpenLDAP目录服务不支持通用数据库的大量更新操做所须要的复杂的事务管理或回滚策略等。
LDAP具备两个标准,分别是X.500和LDAP。OpenLDAP是基于X.500标准的,并且去除了X.500复杂的功能而且能够根据自我需求定制额外扩展功能,但与X.500也有不一样之处,例如OpenLDAP支持TCP/IP协议等,目前TCP/IP是Internet上访问互联网的协议。
OpenLDAP能够直接运行在更简单和更通用的TCP/IP或其余可靠的传输协议层上,避免了在OSI会话层和表示层的开销,使链接的创建和包的处理更简单、更快,对于互联网和企业网应用更理想。
OpenLDAP目录中的信息是以树状的层次结构来存储数据(这很类同于DNS),最顶层即根部称做“基准DN”,形如“dc=mydomain,dc=org”或者“o=mydomain.org”,前一种方式更为灵活也是Windows AD中使用的方式。在根目录的下面有不少的文件和目录,为了把这些大量的数据从逻辑上分开,OpenLDAP像其它的目录服务协议同样使用OU(Organization Unit,组织单元),能够用来表示公司内部机构,如部门等,也能够用来表示设备、人员等。同时OU还能够有子OU,用来表示更为细致的分类。
OpenLDAP中每一条记录都有一个惟一的区别于其它记录的名字DN(Distinguished Name),其处在“叶子”位置的部分称做RDN(用户条目的相对标识名)。如dn:cn=tom,ou=ops,dc=company,dc=com中cn即为RDN,而RDN在一个OU中必须是惟一的。
OpenLDAP默认以Berkeley DB做为后端数据库,BerkeleyDB数据库主要以散列的数据类型进行数据存储,如以键值对的方式进行存储。
BerkeleyDB是一类特殊的面向查询进行优化、面向读取进行优化的数据库,主要用于搜索、浏览、更新查询操做,通常对于一次写入数据、屡次查询和搜索有很好的效果。BerkeleyDB不支持事务型数据库(MySQL、MariDB、Oracle等)所支持的高并发的吞吐量以及复杂的事务操做。
LDAP 先关的名称介绍:
Attribute type Attribute value
c 国家
dc domain component,经常使用来指一个域名的一部分
cn common name,一个对象的名字,若是指人,使用全名
ou 一个组织单元的名字
sn Surname,一我的的姓
uid Userid,某个用户的登陆名,与Linux系统中用户的uid不一样
o 组织的名字数据库

(4)DN: Distinguished Name,每一个叶子结点到根的路径就是DN
如: cn=test, ou=ou1, o=zhangyang.com
(5)RDN: Relative Distinguished Name,叶子结点自己的名字是RDN
如:test就是RDN
(6)Base DN: 基准DN,指定LDAP search的起始DN,即从哪一个DN下开始搜索
搜索组织单元为ou1,则base DN为 ou=ou1,o=Owindows

ou=ou1,o=zhangyang.com 或 ou=ou1,dc=zhangyang, dc=com
x.500 协议名词
DSA directory system agent 目录系统代理
DIT Directory information tree 目录信息树
DUA directory user agent 目录用户代理
DSP directory system protocol 目录系统协议后端