文章目录

  • 前言
  • 一、LDAP基础概念
  • 什么是LDAP?
  • 什么是目录服务?

  • LDAP特点
  • 二、LDAP基本模型
  • 目录树概念
  • DC、UID、OU、CN、SN、DN、RDN
  • LDAP四种基本模型



前言

对于公司中有多个IT系统,每个系统都需要账号密码时,工作起来就是很麻烦的问题。应用用户统一身份认证就可以很好的解决这个问题,使用LDAP就是目前一个很好的处理办法。

一、LDAP基础概念

什么是LDAP?

LDAP(Light Directory Access Portocol) 是基于TCP/IP协议的轻量目录访问协议,是Internet上目录服务的通用访问协议。LDAP的出现简化了X.500目录的复杂度,降低了开发成本,是X.500标准的目录访问协议DAP的子集,同时也作为IETF的一个正式标准。LDAP的核心规范在RFC中都有定义,所有与LDAP相关的RFC都可以在LDAPman RFC网页中找到。与LDAP一样提供类似的目录服务软件还有ApacheDS、Active Directory、Red Hat Directory Service 。

什么是目录服务?

从上文中可以看出,LDAP其实是一种目录服务。那目录是什么呢?目录服务又是什么呢?

  • 目录
    是一个为查询、浏览和搜索而优化的专业分布式数据库,它呈树状结构组织数据,就好象Linux/Unix系统中的文件目录一样。可以用来保存描述性的、基于属性的详细信息,支持过滤功能。目录数据库和关系数据库不同,它有优异的读性能,但写性能差,并且没有事务处理、回滚等复杂功能,不适于存储修改频繁的数据。目录通常只提供一些基本的数据更新操作,而且更新通常都是指全量更新。
  • 目录服务
    目录服务是由目录数据库一套访问协议组成的系统。 是动态的,灵活的,易扩展的。类似以下的信息适合储存在目录中:
  • 企业员工信息,如姓名、电话、邮箱等;
  • 公用证书和安全密钥;
  • 公司的物理设备信息,如服务器,它的IP地址、存放位置、厂商、购买时间等;

LDAP特点

LDAP是开放的Internet标准,支持跨平台的Internet协议,在业界中得到广泛认可的,并且市场上或者开源社区上的大多产品都加入了对LDAP的支持,因此对于这类系统,不需单独定制,只需要通过LDAP做简单的配置就可以与服务器做认证交互。“简单粗暴”,可以大大降低重复开发和对接的成本。

  • LDAP的结构用树来表示,而不是用表格。正因为这样,就不能用SQL语句了
  • LDAP可以很快地得到查询结果,不过在写方面,就慢得多
  • LDAP提供了静态数据的快速查询方式 Client/server模型,Server 用于存储数据,Client提供操作目录信息树的工具这些工具可以将数据库的内容以文本格式(LDAP 数据交换格式,LDIF)呈现在您的面前
  • LDAP服务器可以用“推”或“拉”的方法复制部分或全部数据
  • LDAP允许你根据需要使用ACI(一般都称为ACL或者访问控制列表)控制对数据读和写的权限。

二、LDAP基本模型

每一个系统、协议都会有属于自己的模型,LDAP也不例外,在了解LDAP的基本模型之前我们需要先了解几个LDAP的目录树概念:

目录树概念

  1. 目录树:在一个目录服务系统中,整个目录信息集可以表示为一个目录信息树,树中的每个节点是一个条目。
  2. 条目(Entry):每个条目就是一条记录项,每个条目有自己的唯一可区别的名称(Distinguished Name ,DN)。
    dn:每一个条目都有一个唯一的标识名(distinguished Name ,DN),通过DN的层次型语法结构,可以方便地表示出条目在LDAP树中的位置,通常用于检索。

在LDAP中每个条目均有自己的DN和RDN。DN是该条目在整个树中的唯一名称标识,RDN是条目在父节点下的唯一名称标识,如同文件系统中,带路径的文件名就是DN,文件名就是RDN

  1. 属性(Attribute):描述条目的某个方面的信息,每个条目都可以有很多属性。一个属性由一个属性类型和一个或多个属性值组成,属性有必须属性和非必须属性。
  2. 对象类:与某个实体类型对应的一组属性,对象类是可以继承的,这样父类的必须属性也会被继承下来。

DC、UID、OU、CN、SN、DN、RDN

关键字

属性全称

含义

dn

Distinguished Name

“uid=songtao.xu,ou=oa组,dc=example,dc=com”,一条记录的位置(唯一)

rdn

Relative dn

相对辨别名,类似于文件系统中的相对路径,它是与目录树结构无关的部分,如“uid=tom”或“cn= Thomas Johansson”

dc

Domain Component

域名的部分,其格式是将完整的域名分成几部分,如域名为example.com变成dc=example,dc=com(一条记录的所属位置)

ou

Organization Unit

组织单位,组织单位可以包含其他各种对象(包括其他组织单元),如“oa组”(一条记录的所属组织)

cn

Common Name

公共名称,如“Thomas Johansson”(一条记录的名称)

uid

User Id

用户ID songtao.xu(一条记录的ID)

sn

Surname

姓,如“许”

总结一下LDAP树形数据库如下:

1. dn :一条记录的详细位置 dc :一条记录所属区域(哪一颗树)
2. ou :一条记录所属组织(哪一个分支)
3. cn/uid:一条记录的名字/ID(哪一个果实)
4. LDAP目录树的最顶部就是根,也就是所谓的“基准DN"。

LDAP四种基本模型

模型

描述

信息模型

在LDAP中信息以树桩方式组织,在树状信息中的基本数据单元是条目,而每个条目由属性构成,属性中存储有属性值

命名模型

定义了如何在目录系统中组织数据以及如何从目录系统中查找数据

功能模型

描述了LDAP 协议可以采用的相关操作(四类10种:查询类/更新类/认证类/放弃和扩展类),来访问存储在目录树中的数据

安全模型

提供一个框架,保护目录中的信息不被非法访问,主要通过 身份认证、安全通道和访问控制来实现

  • 信息模型主要包括三部分:条目Entries,属性Attributes和属性值Values。
  • 对于安全模型的三种实现方法:

ldap 服务器 需要多少台 ldap服务器提供什么服务_ldap