LDAP服务器的概念和原理简单介绍
LDAP服务器的概念和原理简单介绍
1. 目录服务
目录是一个为查询、浏览和搜索而优化的专业分布式数据库,它呈树状结构组织数据,就好象Linux/Unix系统中的文件目录一样
LDAP是轻量目录访问协议(Lightweight Directory Access Protocol)的缩写,LDAP是从X.500目录访问协议的基础上发展过来的。
2. LDAP特点
LDAP的结构用树来表示,而不是用表格
LDAP是一种开放Internet标准,LDAP协议是跨平台的Interent协议
3. LDAP组织数据的方式
4. 基本概念
在浏览LDAP相关文档时经常会遇见一些概念
4.1 Entry
条目,也叫记录项,是LDAP中最基本的颗粒,就像字典中的词条,或者是数据库中的记录
通常对LDAP的添加、删除、更改、检索都是以条目为基本对象的。
dn:每一个条目都有一个唯一的标识名(distinguished Name ,DN),如上图中一个 dn:”cn=baby,ou=marketing,ou=people,dc=mydomain,dc=org” 。通过DN的层次型语法结构,可以方便地表示出条目在LDAP树中的位置,通常用于检索。
rdn:一般指dn逗号最左边的部分,如cn=baby。它与RootDN不同,RootDN通常与RootPW同时出现,特指管理LDAP中信息的最高权限用户。
Base DN:LDAP目录树的最顶部就是根,也就是所谓的“Base DN”,如”dc=mydomain,dc=org”。
4.2 Attribute
每个条目都可以有很多属性(Attribute),比如常见的人都有姓名、地址、电话等属性
LDAP为人员组织机构中常见的对象都设计了属性(比如commonName,surname)
属性 | 别名 | 语法 | 描述 | 值(举例) |
commonName | cn | Directory String | 姓名 | sean |
surname | sn | Directory String | 姓 | Chow |
organizationalUnitName | ou | Directory String | 单位(部门)名称 | IT_SECTION |
organization | o | Directory String | 组织(公司)名称 | example |
telephoneNumber | Telephone Number | 电话号码 | 110 | |
objectClass | 内置属性 | organizationalPerson |
4.3 ObjectClass
对象类是属性的集合,LDAP预想了很多人员组织机构中常见的对象,并将其封装成对象类
4.4 Schema
对象类(ObjectClass)、属性类型(AttributeType)、语法(Syntax)分别约定了条目、属性、值,他们之间的关系如下 图所示
4.5 backend
dap的后台进程slapd接收、响应请求
一个 backend 可以有多个 database instance,但每个 database 的 suffix 和 rootdn 不一样
4.6 database
实际存储数据、获取数据的操作是由Backends做的,而数据是存放在database中
bdb是一个高性能的支持事务和故障恢复的数据库后端,可以满足绝大部分需求
4.7 TLS & SASL
分布式LDAP 是以明文的格式通过网络来发送信息的,包括client访问ldap的密码(当然一般密码已然是二进制的),SSL/TLS 的加密协议就是来保证数据传送的保密性和完整性
SASL (Simple Authenticaion and Security Layer)简单身份验证安全框架,它能够实现openldap客户端到服务端的用户验证,也是ldapsearch、ldapmodify这些标准客户端工具默认尝试与LDAP服务端认证用户的方式(前提是已经安装好 Cyrus SASL)
4.8 LDIF
LDIF(LDAP Data Interchange Format,数据交换格式)是LDAP数据库信息的一种文本格式,用于数据的导入导出,每行都是“属性: 值”对