千家信息网

1、LDAP基础知识

发表于:2026-10-31 作者:千家信息网编辑
千家信息网最后更新 2026年10月31日,1、概念:目录服务是一个为查询、浏览和搜索而优化的专业分布式数据库,它呈树状结构组织数据,就好象Linux/Unix系统中的文件目录一样。目录数据库和关系数据库不同,它有优异的读性能,但写性能差,并且
千家信息网最后更新 2026年10月31日1、LDAP基础知识

1、概念:

目录服务是一个为查询、浏览和搜索而优化的专业分布式数据库,它呈树状结构组织数据,就好象Linux/Unix系统中的文件目录一样。目录数据库和关系数据库不同,它有优异的读性能,但写性能差,并且没有事务处理、回滚等复杂功能,不适于存储修改频繁的数据。

LDAP是轻量目录访问协议(Lightweight Directory Access Protocol)的缩写;


2、特点:

1.LDAP采用树结构来表示数据;

2.LDAP是C/S模型,Server 用于存储数据,Client提供操作目录信息树的工具;

3.LDAP具有优异的读性能,不过在写方面,就比较差;

4.LDAP是跨平台的Interent标准,可以在任何计算机平台上,使用客户端程序访问LDAP目录;


3、作用:

1.LDAP目录服务可以有效地解决众多网络服务的用户账户问题。

2.LDAP目录服务规定了统一的身份信息数据库、身份认证机制和接口,实现了资源和信息的统一管理,保证了数据的一致性和完整性。

3.LDAP目录服务是以树状的层次结构来描述数据信息的,此种模型适应了众多行业应用的业务组织结构。


4、常用术语:

(1)条目(Entry):

Entry就是目录管理的对象,是LDAP中最基本的操作对象。通常对LDAP进行的增删改查都是以条目为基本对象的。

每一个条目都有一个唯一的标识名(DN),

DN:每一个条目都有一个唯一的标识名(distinguished Name,DN),比如下图中的:cn=员工1,ou=部门1,dc=公司1,dc=com,就是一个条目;通过DN的层次型语法结构,可以方便地表示出条目在LDAP树中的位置,通常用于检索。

RDN:一般指dn逗号最左边的部分,如cn=员工1。

Base DN:LDAP目录树的最顶部就是根,也就是所谓的"Base DN",如"dc=公司1,dc=org"。


(2)属性(Attribute):

每个条目都可以有很多属性,比如常见的人都有姓名、地址、电话等属性。每个属性都有名称及对应的值,属性值可以有单个、多个,比如你有多个邮箱。

属性不是随便定义的,需要符合一定的规则,而这个规则可以通过schema制定。这个文件包含在ldap的配置文件中;

比如说:如果配置文件中没有 inetorgperson.schema这个schema,那么就不能为它指定employeeNumber属性,因为employeeNumber是在inetorgperson.schema中定义的。

LDAP为人员组织机构中常见的对象都设计了属性(比如commonName,surname)。下面有一些常用的别名:

属性别名语法描述值(举例)
commonNamecnDirectory String姓名test
surnamesnDirectory String姓chen
organizationalUnitNameouDirectory String部门名称IT
organization oDirectory String公司名称org
telephoneNumber
Telephone Number电话号码110
objectClass

内置属性organizationalPerson


(3)对象类 ObjectClass:

对象类是属性的集合。比如人员(person)含有姓(sn)、名(cn)、电话(telephoneNumber)、密码(userPassword)等属性,单位职工(organizationalPerson)是人员(person)的继承类,除了上述属性之外还含有职务(title)、邮政编码(postalCode)、通信地址(postalAddress)等属性。



通过对象类可以方便的定义条目类型。每个条目可以直接继承多个对象类,这样就继承了各种属性。如果2个对象类中有相同的属性,则条目继承后只会保留1个属性。对象类同时也规定了哪些属性是基本信息,必须含有(Must 或Required,必要属性):哪些属性是扩展信息,可以含有(May或Optional,可选属性)。

对象类有三种类型:结构类型(Structural)、抽象类型(Abstract)和辅助类型(Auxiliary)。

对象类本身是可以相互继承的,所以对象类的根类是top抽象型对象类。以常用的人员类型为例,他们的继承关系:

注意,对象类继承的时候会把属性是必须(Must)还是可选(May)的特性也一并继承。也就是说person有cn和sn两个Must属性,organizationalPerson和inetOrgPerson由于直接或间接继承了person,也会有这两个Must属性。

下面是inetOrgPerson对象类的在schema中的定义,可以清楚的看到它的父类SUB和可选属性MAY、必要属性MUST(继承自organizationalPerson),关于各属性的语法则在schema中的attributetype定义。


(4)Schema

对象类(ObjectClass)、属性类型(AttributeType)、语法(Syntax)分别约定了条目、属性、值,他们之间的关系如下图所示。

所有这些构成了模式(Schema)--对象类的集合。条目数据在导入时通常需要接受模式检查,它确保了目录中所有的条目数据结构都是一致的。

schema(一般在/etc/ldap/schema/目录)在导入时要注意前后顺序。


4、TLS & SASL

分布式LDAP 是以明文的格式通过网络来发送信息的,包括client访问ldap的密码(当然一般密码已然是二进制的),SSL/TLS 的加密协议就是来保证数据传送的保密性和完整性。

SASL (Simple Authenticaion and Security Layer)简单身份验证安全框架,它能够实现openldap客户端到服务端的用户验证,也是ldapsearch、ldapmodify这些标准客户端工具默认尝试与LDAP服务端认证用户的方式(前提是已经安装好 Cyrus SASL)。

SASL有几大工业实现标准:Kerveros V5、DIGEST-MD5、EXTERNAL、PLAIN、LOGIN。

Kerveros V5是里面最复杂的一种,使用GSSAPI机制,必须配置完整的Kerberos V5安全系统,密码不再存放在目录服务器中,每一个dn与Kerberos数据库的主体对应。DIGEST-MD5稍微简单一点,密码通过saslpasswd2生成放在sasldb数据库中,或者将明文hash存到LDAP dn的userPassword中,每一个authid映射成目录服务器的dn,常和SSL配合使用。参考将 LDAP 客户端配置为使用安全性

#rpm -ql cyrus-sasl.x86_64(检查是否安装Cyrus SASL)



本文参考:

https://segmentfault.com/a/1190000002607140

http://407711169.blog.51cto.com/6616996/1439623


属性 对象 数据 目录 条目 服务 信息 类型 结构 数据库 密码 客户 客户端 就是 文件 配置 安全 人员 公司 名称 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 咖啡豆 互联网科技工作委员会主任 重庆互联网络科技 港股互联网科技股 互联网科技集团 亿策互联网科技 上海致骋互联网科技 滨湖区互联网智能科技产品供应 河南猎农互联网科技有限公司 赶超互联网科技 微信多开 中国科技创新与世界互联网大会 广州新华互联网科技学校电竞方面 深圳市罗太互联网科技有限公司 互联网领先科技宣传片 工业互联网科技创业 互联网科技新闻 马化腾互联网科技教学 互联网科技对化妆品行业 科技互联网专业工作会议发言稿 北京品多多互联网科技有限公司 互联网科技 互联网科技英文 科技大学互联网专业好不好 深圳育鹏互联网科技有限公司招聘 国大互联网教育科技有限公司薪资 南通创西澳互联网科技有限公司 北京市互联网新科技 扫呗互联网科技有限公司 求路客互联网科技电话 恒生科技互联网指数十大成分股
0