同步操作:OpenLDAP 是一种典型的分布式结构,提供复制同步,可将主服务器上的数据通过推或拉的机制实现在从服务器上更新,完成数据的同步,从而避免OpenLDAP 服务器出现单点故障,影响用户验证。
认证和管理操作:允许客户端在目录中识别自己,并且能够控制一个会话的性质。
六、OpenLDAP 目录架构介绍
目前OpenLDAP 目录架构分为两种:一种为互联网命名组织架构;另一种为企业级命名组织架构。本节分别为介绍两种架构的用途,但本书主要以企业级命名组织架构为核心进行阐述OpenLDAP 内部逻辑结构、工作原理以及企业实践等相关知识。
1、互联网命名组织架构
LDAP 的目录信息是以树形结构进行存储的,在树根一般定义国家(c=CN)或者域名(dc=com),其次往往定义一个或多个组织(organization,o)或组织单元(organization unit,ou)。一个组织单元可以包含员工、设备信息(计算机/打印机等)相关信息。例如uid=babs,ou=People,dc=example,dc=com。
备注:图片来源#What is LDAP
2、企业级命名组织架构
企业级命名(传统命名)组织架构的示例
七、OpenLDAP schema 概念
1、schema 介绍及用途
schema 是OpenLDAP 软件的重要组成部分,主要用于控制目录树中各种条目所拥有的对象类以及各种属性的定义,并通过自身内部规范机制限定目录树条目所遵循的逻辑结构以及定义规范,保证整个目录树没有非法条目数据,避免不合法的条目存在目录树中,从而保障整个目录树信息的完整性、唯一性。
在OpenLDAP 目录树中,schema 用来指定一个条目所包含的对象类(objectClass)以及每一个对象类所包含的属性值(attribute value)。其属性又分为必要属性和可选属性两种,一般必要属性是指添加条目时必须指定的属性,可选属性是可以选择或不选择的。schema 定义对象类,对象类��含属性的定义,对象类和属性组合成条目。
目录树中条目可理解为是一个具体的对象,它们均是通过schema 创建的,并符合schema 的标准规范,如对你所添加的数据条目中所包含的对象类级属性进行检测,检测通过完成添加,否则打印错误信息。因此,schema 是一个数据模型,数据模型可以理解为关系数据库的存储引擎,如MyISAM、InnoDB,主要用来决定数据按照什么方式进行存储,并定义存储在目录树不同条目中数据类型之间的关系。
schema 是一个标准,定义了OpenLDAP 目录树对象和属性存取方式,这也是OpenLDAP 能够存储什么数据类型的取决因素。因此数据有什么属性等均根据schema 来实现。OpenLDAP 默认的schema 文件一般存放在/etc/openldap/schema/目录下,此目录下每个文件定义了不同的对象类和属性。如果想引用额外的schema,只需要在配置文件中通过include 包含所指定的schema 即可。
以下代码可用于获取当前系统OpenLDAP 所使用的schema 规范,了解当前所使用的schema文件,这有助于添加目录树中的条目信息,如对象类以及包含哪些属性及值,减少添加条目提示的各种语法错误。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
[root@test schema]# cat /etc/openldap/slapd.conf | grep '^incl*' include /etc/openldap/schema/corba.schema include /etc/openldap/schema/core.schema include /etc/openldap/schema/cosine.schema include /etc/openldap/schema/duaconf.schema include /etc/openldap/schema/dyngroup.schema include /etc/openldap/schema/inetorgperson.schema include /etc/openldap/schema/Java.schema include /etc/openldap/schema/misc.schema include /etc/openldap/schema/nis.schema #定义网络信息服务 include /etc/openldap/schema/openldap.schema include /etc/openldap/schema/ppolicy.schema #定义用户密码规则 include /etc/openldap/schema/collective.schema include /etc/openldap/schema/sudo.schema #自己添加提权的 include /etc/openldap/schema/openssh-lpk-openldap.schema
2、获取schema 的途径