searchusermenu
  • 发布文章
  • 消息中心
点赞
收藏
评论
分享
原创

LDAP轻量级目录协议之数据模型介绍

2024-05-27 01:59:18
1
0

每一个系统、协议都会有属于自己的模型,了解LDAP的基本模型之前需要先了解一些基本概念。

一、 目录树概念简介

  1. 目录树:在一个目录服务系统中,整个目录信息集可以表示为一个目录信息树,树中的每个节点是一个条目(Entry)。
  2. 条目:每个条目就是一条记录,每个条目有自己的唯一可区别的名称(DN)。
  3. 对象类:与某个实体类型对应的一组属性,对象类是可以继承的,这样父类的必须属性也会被继承下来(ObjectClass)。
  4. 属性:描述条目的某个方面的信息,一个属性由一个属性类型和一个或多个属性值组成,属性有必须属性和非必须属性(Attribute)。

二 、概念说明

条目 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”。

属性 Attribute

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

属性不是随便定义的,需要符合一定的规则,而这个规则可以通过schema制定。比如,如果一个entry没有包含在 inetorgperson 这个 schema 中的 objectClass: inetOrgPerson ,那么就不能为它指定employeeNumber属性,因为employeeNumber是在inetOrgPerson中定义的。

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

属性 语法 描述 值(举例)
cn Directory String 姓名 sean
sn Directory String Chow
ou Directory String 单位(部门)名称 IT_SECTION
o Directory String 组织(公司)名称 example
telephoneNumber Telephone Number 电话号码 110
objectClass   内置属性 organizationalPerson

对象类 ObjectClass

对象类是属性的集合,LDAP预想了很多人员组织机构中常见的对象,并将其封装成对象类。比如人员(person)含有姓(sn)、名(cn)、电话(telephoneNumber)、密码(userPassword)等属性,单位职工(organizationalPerson)是人员(person)的继承类,除了上述属性之外还含有职务(title)、邮政编码(postalCode)、通信地址(postalAddress)等属性。

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

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

  • 结构类型是最基本的类型,它规定了对象实体的基本属性,每个条目属于且仅属于一个结构型对象类。
  • 抽象类型可以是结构类型或其他抽象类型父类,它将对象属性中共性的部分组织在一起,称为其他类的模板,条目不能直接集成抽象型对象类。
  • 辅助类型规定了对象实体的扩展属性。每个条目至少有一个结构性对象类。

Schema

对象类(ObjectClass)、属性类型(AttributeType)、语法(Syntax)分别约定了条目、属性、值。 所以这些构成了模式(Schema)——对象类的集合。 条目数据在导入时通常需要接受模式检查,它确保了目录中所有的条目数据结构都是一致的。

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

过滤器和语法
LDAP 是以查询为主的目录结构,无论何种查询方式,最终都由过滤器确定查询的条件。过滤器相当于 SQL 中的 WHERE 子句。LDAP 的类过滤和字符串都必须放在括号内,比如 "(objectclass=*)"。
可使用 =、>=、<=、~=(约等于)进行比较,比如"(number<=100)"。合并条件必须把操作符放在两个操作对象的前面,单一操作对象用括号括起来。比如:
  • (&(A)(B)) 表示 A 与 B
  • 或使用"|"标识
  • 非使用 "!" 表示

0条评论
作者已关闭评论
Coding
19文章数
1粉丝数
Coding
19 文章 | 1 粉丝
原创

LDAP轻量级目录协议之数据模型介绍

2024-05-27 01:59:18
1
0

每一个系统、协议都会有属于自己的模型,了解LDAP的基本模型之前需要先了解一些基本概念。

一、 目录树概念简介

  1. 目录树:在一个目录服务系统中,整个目录信息集可以表示为一个目录信息树,树中的每个节点是一个条目(Entry)。
  2. 条目:每个条目就是一条记录,每个条目有自己的唯一可区别的名称(DN)。
  3. 对象类:与某个实体类型对应的一组属性,对象类是可以继承的,这样父类的必须属性也会被继承下来(ObjectClass)。
  4. 属性:描述条目的某个方面的信息,一个属性由一个属性类型和一个或多个属性值组成,属性有必须属性和非必须属性(Attribute)。

二 、概念说明

条目 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”。

属性 Attribute

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

属性不是随便定义的,需要符合一定的规则,而这个规则可以通过schema制定。比如,如果一个entry没有包含在 inetorgperson 这个 schema 中的 objectClass: inetOrgPerson ,那么就不能为它指定employeeNumber属性,因为employeeNumber是在inetOrgPerson中定义的。

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

属性 语法 描述 值(举例)
cn Directory String 姓名 sean
sn Directory String Chow
ou Directory String 单位(部门)名称 IT_SECTION
o Directory String 组织(公司)名称 example
telephoneNumber Telephone Number 电话号码 110
objectClass   内置属性 organizationalPerson

对象类 ObjectClass

对象类是属性的集合,LDAP预想了很多人员组织机构中常见的对象,并将其封装成对象类。比如人员(person)含有姓(sn)、名(cn)、电话(telephoneNumber)、密码(userPassword)等属性,单位职工(organizationalPerson)是人员(person)的继承类,除了上述属性之外还含有职务(title)、邮政编码(postalCode)、通信地址(postalAddress)等属性。

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

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

  • 结构类型是最基本的类型,它规定了对象实体的基本属性,每个条目属于且仅属于一个结构型对象类。
  • 抽象类型可以是结构类型或其他抽象类型父类,它将对象属性中共性的部分组织在一起,称为其他类的模板,条目不能直接集成抽象型对象类。
  • 辅助类型规定了对象实体的扩展属性。每个条目至少有一个结构性对象类。

Schema

对象类(ObjectClass)、属性类型(AttributeType)、语法(Syntax)分别约定了条目、属性、值。 所以这些构成了模式(Schema)——对象类的集合。 条目数据在导入时通常需要接受模式检查,它确保了目录中所有的条目数据结构都是一致的。

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

过滤器和语法
LDAP 是以查询为主的目录结构,无论何种查询方式,最终都由过滤器确定查询的条件。过滤器相当于 SQL 中的 WHERE 子句。LDAP 的类过滤和字符串都必须放在括号内,比如 "(objectclass=*)"。
可使用 =、>=、<=、~=(约等于)进行比较,比如"(number<=100)"。合并条件必须把操作符放在两个操作对象的前面,单一操作对象用括号括起来。比如:
  • (&(A)(B)) 表示 A 与 B
  • 或使用"|"标识
  • 非使用 "!" 表示

文章来自个人专栏
开发感悟
19 文章 | 1 订阅
0条评论
作者已关闭评论
作者已关闭评论
0
0