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数据库信息的一种文本格式,用于数据的导入导出,每行都是“属性: 值”对
评论前必须登录!
注册