在安装配置一些软件产品时,或者在做软件产品集成时,技术人员可能会碰到需要使用LDAP的时候。LDAP通常用于组织机构及员工等层次性信息的存取。LDAP的字面意思是轻量级目录访问协议。作为一种协议,LDAP主要约定了信息组织方式:信息模型,命名模型,及安全模型等。
乍一眼看去,LDAP最让人觉得陌生的也许是它的命名模型以及其中一些常用的简写属性名称。
一个例子:假设csdn使用ldap来存放账号信息 uid=developer6,ou=member, dc=csdn, dc=net 记录表示csdn网站的会员developer6.
作为初学者,我们很容易被cn, ou, dc等简写搞晕。这些简写是ldap中很常见的属性名称。
- dc是domain component的简写,即域(名)组件(组成部件)
- ou是organization unit; cn是common name
- uid 是user id的简写
LDAP的记录条目除了识别用的DN之外,还可以包含很多属性,这些属性为条目提供了更多的信息。条目的属性并不是无组织的,而是以objectClass的形式进行定义。objectClass有点像面向对象的类的概念,可以继承,可以指定哪些属性是必须的,哪些是可选的。
一个例子:
dn: uid=robinfan,ou=staff,dc=csdn,dc=net
objectClass: person
objectClass: inetOrgPerson
objectClass: organizationalPerson
uid:robinfan
userPassword: passw0rb
cn: Fan Kai
sn: Fan
homeDirectory: /home/robinfan
ou:staff
其中的objectclass属性指定这个条目使用三个objectclass的属性。person类要求必须包括cn (common name)和sn (surname)这两个属性有值。对于某objectclass定义了哪些属性;以及属性的值类型等信息,则构成了ldap schema的内容,属于更深入的LDAP知识。
实际动手操作是学习的必要步骤。对于LDAP,不管你的项目所使用的是哪家的复杂的商业LDAP产品,你都可以在本地搭建一个开源免费的LDAP来试手。比如apache directory就是一款不错的开源ldap项目,包括服务器和客户端。其项目地址是:http://directory.apache.org/
附:常见的LDAP缩写及简写属性名称:
- uid: user id
- dn: distinguished name
- dc: domain component
- o:organization
- ou:organization unit
- c:country, 2 char
- l:location
- cn:common name