分享

LDAP 概念

 bylele 2020-11-19

一、LDAP是什么?

  LDAP:Light Direcctory Access Protocol 轻量级目录访问协议,ldap是一种目录数据库存储方式,所谓的目录结构形式就是存储方式类似于linux下的目录结构.

  DN 是LDAP数据的id

    其实linux下的一个个路径就是一个文件的id,而LDAP中数据的唯一标识就是DN,想要存储一条信息,首先就得有一个基准DN,例如:DN:dc=某公司,dc=com;就是一个根节点,根节点下就是具体的公司的信息了。DN: ou=研发部,dn=某公司,dn=com ;表示研发部属于这个DN。在表示研发部下的某个人:DN uid=某个人,ou=研发部,dc=某公司,dc=com,;

    上边的DN里

      Base Dn(root Dn) : DN :dc=某公司,dc=com;

      研发部的DN  :DN:ou=研发部,dc=某公司,dc=com;

      某员工的DN  :DN :uid=某个人,ou=研发部,dc=某公司,dc=com;   其中dc,ou,uid,都是DN的属性

    DN的属性:

      CN---》常用名称

      L-----》地名

      ST---》州或者省的名称

      O----》组织名称

      OU---》组织单位

      C------》国家名称

      DC----》域名成分

      uid---》用户标识

  对象类和属性

    LDAP存储各种类型的数据对象,这些对象可以用属性来表示,LDAP目录用对象类(objectClass)的概念来定义运行哪一类的对象使用什么属性,所有对象都从其父对象类继承。

    LDAP中一个条目必须包含一个objectClass属性,且需要赋予至少一个值。每一个值将用作一条LDAP条目进行数据存储模板,模板中包含了一个条目必须被赋值的属性和可选属性,objectClass有着严格的等级之分,最顶层是top和alias。

    objectClass可以分为以下3类:

      结构型(Structural):eg:person和organizationUnit

      辅助型(Auxiliary):eg:extensibeObject;

      抽象性(abstract):eg:top,抽象型的objectClass不可以直接使用。

  Attribute

    Attribute属性类似于程序设计中的变量,可以被赋值,用户可以自定义Attribute。最常见的attribute 含义如下

      c---国家

      cn---指对象的名字

      dc---常用来指一个域名的一部分

      givenName---指一个人的名

      mail---电子邮箱地址

      o---一个组织的名字

      ou---组织单位

      sn---一个人的姓

      telephoneNumber:电话号码

      注:objectClass是以中特殊的Attribute 

 

 ObjectClass是LDAP对象类:是LDAP内置的数据模型。每种objectClass有自己的数据结构。比如我们有一种叫“电话薄”的objectClass,肯定会内置很多属性(attributes),如姓名(uid),身份证号(uidNumber),单位名称(gid),家庭地址(homeDirectory)等,同时,还有一种叫“同学录”的objectClass,具备“电话薄”里的一些attributes(如uid、homeDirectory),还会具有“电话薄”没有的attributes(如description等)。

   entry可以被称作条目,一个entry就是一条记录,是LDAP中的一个基本存储单元,也可以被看作一个DN和一组属性的集合。注意一条entry可以包含多个objectClass,eg:李四可以存在电话簿中也可以存在同学录中。

 

LDAP是轻量目录访问协议,

  目录服务:

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

    目录服务室友目录数据库和一套访问协议组成的系统。

    LDAP提供了静态数据的快速查询方式

  Entry

    条目:也就记录项,是LDAP中最基本的颗粒。

    dn:每一个条目都有一个唯一的标识名,dn:"cn=baby,ou=marketing,ou=people,dc=mydomain,dc=org".通过DN的层次型语法结构,可以方便地表示出条目的LADP树中位置,通常用于检索。

    rdn:一般指dn逗号最左边的部分,如cn=bady。

    Base DN:LDAP目录树的最顶部的就是根,也就是所谓的“Base DN” ,如“dc=mydomain,dc=com”.

   attribute:

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

  objectClass

       对象类是属性的集合,LDAP预想了很多人员组织机构中常见的对象,并将其封装成对  

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

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

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

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

 

 

 

 

 

 

    

  

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多