千家信息网

1、LDAP基础知识

发表于:2024-09-22 作者:千家信息网编辑
千家信息网最后更新 2024年09月22日,1、概念:目录服务是一个为查询、浏览和搜索而优化的专业分布式数据库,它呈树状结构组织数据,就好象Linux/Unix系统中的文件目录一样。目录数据库和关系数据库不同,它有优异的读性能,但写性能差,并且
千家信息网最后更新 2024年09月22日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 Stringchen
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安全错误 数据库的锁怎样保障安全 网络安全与技术学院分数线 数据库数据类型的查询向导怎么弄 宝宝巴士网络安全动画片 保证网络安全的五要素 华为将出售x86服务器 实用网络技术教程 数据库管理系统及其发展历史 数据库技术数据备份 c 能对数据库操作吗 重汽软件开发加班 数据库管理及其发展的4个过程 丹麦黑色素瘤数据库 关于网络安全的动漫配音 数据库字段增删改 数据库原理填空与选择 网络安全保险风险评估标准 香港服务器哪家好用 c向数据库添加数据 内蒙古通城网络技术有限责任公司 武汉国家网络安全学院基地地址 中国人寿财险总公司网络安全处 网络平台开发是软件开发吗 网络安全法在哪里可以使用 石狮市软件开发 王牌战争可以登陆别的服务器吗 银行网络安全宣传总结下一步 网络技术运维类专业知识 企业微信登录要求设置服务器 云网络技术方向 php源码不需要数据库文件
0