什么是openldap

openldap是一款轻量级目录访问协议(Lightweight Directory Access Protocol,LDAP),属于开源集中账号管理架构的实现,支持众多系统版本。

ldap具有两个国家标准,x.500和LDAP。openldap是基于x.500标准的,而且去除了x.500复杂的功能并且可以根据自我需求定制额外扩展功能,可以理解为x.500的简化版本。openldap支持tcp/ip协议。

LDAP提供并实现目录服务的信息服务,目录服务是一种特殊的数据库系统,对于数据的读取、浏览、搜索有很好的效果。目录服务一般用来包含基于属性的描述性信息并支持精细复杂的过滤功能,对搜索有很好的效果。目录服务不支持通用数据库的大量更新操作所需要的复杂的事物管理或回滚策略。

openldap默认以Berkeley DB作为后端数据库,Berkeley DB数据库主要以三列的数据类型进行数据存储,如以键值对的方式进行存储。Berkeley DB是一类特殊的数据库,主要用于搜索、浏览、更新查询操作,一般对于一次写入数据、多次查询和搜索有很好的效果。Berkeley DB数据库是面向查询进行优化,面向读取进行优化的数据库。不支持事务性数据库所支持的高并发的吞吐量以及复杂的事务操作.

openldap目录服务优点

是一个跨平台的标准互联网协议,基于X.500协议

提供静态数据查询搜索,不需要像关系数据库中那样通过SQL语句维护数据库信息

基于推和拉的机制实现节点间数据同步,简称复制(replication)并提供基于TLS/SASL的安全认证机制,实现数据加密传输以及Kerberos密码验证功能。

可以实现用户的集中认证管理,所有关于账号的变更,只需在openldap服务器端直接操作,无需到每个客户端进行操作,影响范围为全局

默认使用TCP/IP协议传输数据

支持各种应用平台:nginx/http/vsftpd/samba/svn/postfix/openstack/hadoop等都可以实现统一用户管理

openldap具有费用低、配置简单、功能强大、管理容易、开源等特点

openldap适用场景

openldap可实现账号集中式管理:不同的发行版UNIX系统、Windows系统以及各种平台,如Apache、Nginx、Zabbix、Postfix、Samaba、Git、Openvpn、OpenStack都可以接入。

OpenLdap目录架构

目前 OpenLDAP 目录架构分为两种:一种为互联网命名组织架构;另一种为企业级命名组织架构。

互联网命名组织架构

LDAP 的目录信息是以树形结构进行存储的,在树根一般定义国家(c=CN)或者域名(dc=com),其次往往定义一个或多个组织(organization,o)或组织单元(organization unit,ou)。一个组织单元可以包含员工、设备信息(计算机/打印机等)相关信息。例如 uid=babs,ou=People,dc=example,dc=com,如下图:

企业级命名组织架构

企业级命名组织架构的示意图:

OpenLDAP 的系统架构

OpenLDAP 目前是一款开源账号集中管理软件,且属于 C/S 架构。通过配置服务器和客户端,实现账号的管理,并通过与第三方应用相结合,实现客户端所有账号均可通过服务端进行验证,例如 Samba、Apache、Zabbix、FTP、Postfix、EMC 存储及其系统登录验证并授权。