分享

LDAP的概念-objectclass 等

 iversion 2007-11-23
2006-08-19 17:32:56
.3 LDAP Security
  
LDAP是轻量级目录服务(Lightweight Directory Access Protocol)。越来越多的应用开始采用LDAP作为后端用户存储。在安全上,LDAP Security是基于ACL(Access Control List)的,它通过给一个用户组分配LDAP 操作资源(比如对一个子树的查询,修改等)来最终完成权限的控制。因此在LDAP中,授权工作是以用户组为单位进行的。一个用户组一般来说是拥有如下一组属性的LDAP Entry:


图1-3-1

  其中objectclass可以为groupOfUniqueNames或者groupOfNames,它们对应的组成员属性分别是uniquemember和member。如果是动态组,objectclass为groupOfURLs。动态组一般应用在成员可以通过某种业务逻辑运算来决定的情况下。比如,经理为ZHANGSAN的全部员工。下面是一个典型的动态组,memberURL属性定义了哪些entry属于该组:


图1-3-2

  从图1-3-1中我们可以看出,用户WANTXIAOMING,ZHANGSAN,LISI属于组HR Managers。这种组和成员的关系是通过属性uniquemember来决定的。同时LADP Group 支持嵌套,即一个组可以是另外一个组的成员,比如我们将Accounting Managers组分配给HR Managers组作为其成员:


图1-3-3

  这样将表示Accounting Managers中的成员,同时也是组HR Managers的成员。通过这种层级关系可以使权限分配变的更加灵活。

  下面是一些名词的解释,希望大家对LDAP有更好的理解:
  a) Objectclass —— LDAP对象类,抽象上的概念类似与一般我们理解的class。根据不同的objectclass,我们可以判断这个entry是否属于某一个类型。比如我们需要找出LDAP中的全部用户:(objectclass=person)再比如我们需要查询全部的LDAP组:(objectclass=groupOfUniqueNames)

  b) Entry —— entry可以被称为条目,或者节点,是LDAP中一个基本的存储单元;可以被看作是一个DN和一组属性的集合。属性可以定义为多值或者单值。

  c) DN —— Distinguished Name,LDAP中entry的唯一辨别名,一般有如下的形式:uid=ZHANGSAN, ou=staff, ou=people, o=examples。LDAP中的entry只有DN是由LDAP Server来保证唯一的。

  d) LDAP Search filter ——使用filter对LDAP进行搜索。 Filter一般由 (attribute=value) 这样的单元组成,比如:(&(uid=ZHANGSAN)(objectclass=person)) 表示搜索用户中,uid为ZHANGSAN的LDAP Entry.再比如:(&(|(uid= ZHANGSAN)(uid=LISI))(objectclass=person)),表示搜索uid为ZHANGSAN, 或者LISI的用户;也可以使用*来表示任意一个值,比如(uid=ZHANG*SAN),搜索uid值以 ZHANG开头SAN结尾的Entry。更进一步,根据不同的LDAP属性匹配规则,可以有如下的Filter: (&(createtimestamp>=20050301000000)(createtimestamp<=20050302000000)),表示搜索创建时间在20050301000000和20050302000000之间的entry。
  Filter中 “&” 表示“与”;“!”表示“非”;“|”表示“或”。根据不同的匹配规则,我们可以使用“=”,“~=”,“>=”以及“<=”,更多关于LDAP Filter读者可以参考LDAP相关协议:http://www./rfc/rfc2254.txt

  e) Base DN —— 执行LDAP Search时一般要指定basedn,由于LDAP是树状数据结构,指定basedn后,搜索将从BaseDN开始,我们可以指定Search Scope为:只搜索basedn(base),basedn直接下级(one level),和basedn全部下级(sub tree level)。

  下面是一个典型的LDAP Tree结构,右侧显示Entry uid=ZHANGSAN, ou=staff, ou=people, o=examples的属性,该entry代表了一个名字叫张三的用户:


图1-3-4

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

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多