`
darklipeng
  • 浏览: 126152 次
  • 性别: Icon_minigender_1
  • 来自: 西安
社区版块
存档分类
最新评论

LDAP 入门知识

阅读更多

如果你刚接触ldap,你一定看了很多ldap相关的教程,看过很多教程。都不是很好,唯独这一份写得最好。
dn:一条记录的位置
dc:一条记录所属区域
ou:一条记录所属组织
cn/uid:一条记录的名字/ID

实际上更多时候我只把它看成数据库。我把它和我非常熟悉的MYSQL数据库做比较,通常会得到更好的理解:

MYSQL用“表”储存数据,LDAP用“树”
MYSQL指定一条记录要3个条件:DB、TABLE、ROW。
LDAP却更自由,为什么呢?因为LDAP数据是“树”状的,而且这棵树是可以无限延伸的,假设你要树上的一个苹果(一条记录),你怎么告诉园丁它的位置 呢?当然首先要说明是哪一棵树(dc,相当于MYSQL的DB),然后是从树根到那个苹果所经过的所有“分叉”(ou,呵呵MYSQL里面好象没有这 DD),最后就是这个苹果的名字(uid,记得我们设计MYSQL或其它数据库表时,通常为了方便管理而加上一个‘id’字段吗?)。好了!这时我们可以 清晰的指明这个苹果的位置了,就是那棵“歪脖树”的东边那个分叉上的靠西边那个分叉的再靠北边的分叉上的半红半绿的……,晕了!你直接爬上去吧!我还是说 说LDAP里要怎么定义一个字段的位置吧,树(dc=waibo,dc=com),分叉(ou=bei,ou=xi,ou=dong),苹果 (cn=honglv),好了!位置出来了:
dn:cn=honglv,ou=bei,ou=xi,ou=dong,dc=waibo,dc=com

一个有名的画家说过:“世上没有相同的2个鸡蛋”。当然也没有相同的2个苹果……,同样,在LDAP里也不可能存在2个相同的dn。

LDAP数据填充原理
一棵树的生长,要循序渐进,如果还没有长出某个分叉,就不可能在那个分叉里长出苹果(问:FT!苹果是长在分叉上的吗?答:为了便于理解,你就当它是 吧),同样,LDAP数据库也要一步步的充实,举一个学校数据库的例子,我们将要把一个庞大的学生档案放到LDAP里,大致需要这么做:
---------------------------------------------
1、建立“树根”,这是通过修改“slapd.conf”来实现的,由于现在的目的是理解,所以具体步骤就不说了,反正就是在这一步建立了一个 “dc=ourschool,dc=org”这样一个“树根”。注意:我把它理解成“目录”,或者“容器”,甚至它本身也是文件(苹果)的特殊形式,熟悉 LINUX文件系统的朋友会更容易理解。
2、建立18个系,分别是“dn:ou=computer,dc=ourschool,dc=org”、“dn:ou=film,dc=ourschool,dc=org”……
3、当然是在每个系里面建立专业,比如“dn:ou=linux,ou=computer,dc=ourschool,dc=org”……
4、(开始长苹果吧!)加学生喽——“dn:cn=stan,ou=linux,ou=computer,dc=ourschool,dc=org”……
5、已经完成了吗?对了!学生的详细信息还没有呐!不过先这样吧,反正记录是可以编辑的。

LDAP记录的详细信息
dn:cn=stan,ou=linux,ou=computer,dc=ourschool,dc=org
objectClass:organizationalPerson
cn:stan
cn:小刀
sn:小刀
description:agoodboy
(以上是一条记录的信息,如果把他保存成LDIF文件,可以导入到LDAP数据库中)
上面不是说没有学生详细信息吗?怕你着急,就马上写出来了,只是还没有导入到LDAP里,那是以后的事。这里我先就你可能会产生的疑问做回答。
---------------------------------------------
Q1:“cn”不是在“dn”里定义了吗,怎么又在后面重新定义了?答:你要把“cn=stan,ou=linux,ou=computer,dc=ourschool,dc=org”看成是一个整体,它只是属性dn的值。
Q2:怎么后面有2个“cn”,我以哪个为准?答:区别于普通数据库,LDAP每个属性一般可以具有多个值,这样不好吗?你在学校数据库里找我的时候,只要记得我的一个cn就可以了,用“cn=stan”或“cn=小刀”都可以找到我!
Q3:就这些属性了吗?我都不知道你是男是女。答:先声明,偶是男地。LDAP对记录的属性做了严格的限制(这一点我不太喜欢),也就是说,你可以用哪些 属性,哪些属性不能为空,哪些属性最多只能有一个值等,他们都给你规定好了。幸好你有选择的权利,比如这次我们是储存学生信息,那么我们就定义一个 “objectClass:organizationalPerson”,这样“organizationalPerson”这个类所规定的所有属性我们 都可以用了,而且确实很适合我们。虽然这个类中没有“sex”这个属性,不过你完全可以用一个“空闲”的属性来顶替。

分享到:
评论

相关推荐

    LDAP入门知识

    "LDAP入门知识" LDAP(Lightweight Directory Access Protocol)是基于X.500标准的,但是简单多了并且可以根据需要定制。LDAP支持TCP/IP,这对访问Internet是必须的。LDAP的核心规范在RFC中都有定义,所有与LDAP...

    Ldap入门文档

    ### LDAP入门知识点详解 #### 一、LDAP简介 **LDAP**(Lightweight Directory Access Protocol,轻量级目录访问协议)是一种用于访问和管理分布式目录信息的服务协议。它源自于X.500标准,但相较于X.500更加简化且...

    LDAP入门资料 刚开始学

    LDAP入门资料 刚开始学 这篇文章是 LDAP 入门资料的第一篇,主要是让读者熟悉 LDAP 的基本概念。下面是文章的知识点: 1. 什么是 LDAP? LDAP 的英文全称是 Lightweight Directory Access Protocol,一般都简称为...

    LDAP详解--IBM Tivoli Directory Server从入门到精通 源码

    在深入理解IBM Tivoli Directory Server之前,我们需要先了解LDAP的基础知识。LDAP使用树状结构来组织数据,每个节点称为条目(Entry),包含一个唯一的对象类(Object Class)和一组属性(Attributes)。属性由键值...

    LDAP详解,初学习者可以看看

    "LDAP详解从入门到精通.pdf"这本书可能包含以下内容: 1. LDAP基础概念和术语介绍。 2. LDAP服务器的安装与配置,如OpenLDAP、Active Directory等。 3. LDAP目录结构的设计与管理。 4. LDAP查询语法和过滤器的使用。...

    027-JNDI之初探 LDAP.pdf

    本文档提供了一个关于JNDI和LDAP的入门指南,涵盖了JNDI References的基础知识,LDAP协议的核心概念,包括命名模型、功能模型和安全模型,以及如何搭建和配置LDAP服务器。文档中的实例代码展示了如何利用Java技术栈...

    ldap 相关LIB & Samples

    本压缩包包含与LDAP相关的Java库和示例代码,帮助开发者快速入门LDAP的开发。 ### LDAP基础知识 1. **目录服务**: LDAP是一种目录服务协议,不同于数据库系统,它专注于高效地查找和检索数据,而不是存储大量事务...

    PHP从入门到精通.pdf-入门教程.CHM

    所有知识都结合具体实例进行介绍,涉及的程序代码给出了详细的注释,可以使读者轻松领会PHP程序开发的精髓,快速提高开发技能。《PHP从入门到精通》所配DVD光盘含有全程语音视频讲解教学录像以及实例的全部源代码,...

    Open LDAP Admin Guide

    #### 二、快速入门指南 这部分内容将指导读者快速安装和配置OpenLDAP环境,以便进行初步的测试与验证。 #### 三、整体配置选择 **3.1 本地目录服务** 指在一个单一的位置部署一个完整的LDAP服务器,适用于小型...

    ArcGIS Server轻松入门(详细中文教程)

    **ArcGIS Server轻松入门——...通过阅读《ArcGIS Server轻松入门》教程,你将获得关于ArcGIS Server的全面知识,无论你是GIS新手还是经验丰富的专业人士,都能从中受益,快速上手并发挥出ArcGIS Server的强大功能。

    spring security 入门经典教程

    本入门经典教程旨在为读者提供Spring Security的入门知识,帮助读者建立基础,进而更好地学习后续的高级内容。 【标题】: "Spring Security 入门经典教程" 指出了这是一本以Spring Security为核心主题的教程书籍。...

    DB2个人版快速入门

    根据提供的标题、描述以及部分文档内容,我们可以提炼出与“DB2个人版快速入门”相关的多个知识点。下面将详细介绍这些知识点: ### 1. DB2Connect 版本介绍 DB2Connect 是 IBM 提供的一款软件产品,用于实现不同...

    db2客户机入门db2的常用客户机的知识和简介

    ### DB2客户机入门:DB2的常用客户机的知识和简介 #### DB2客户机概述 DB2(Database 2)是IBM开发的一款关系型数据库管理系统。它支持多种操作系统平台,如Linux、UNIX和Windows等,并且具有强大的数据管理功能。...

    Liferay 6 入门教程

    通过学习这些教程,开发者不仅可以掌握Liferay 6的基础知识,还能深入了解其插件开发、MVC架构、Struts2、Spring、Hibernate以及LDAP集成等高级技术,从而在Liferay平台上构建出强大且灵活的企业级应用。

Global site tag (gtag.js) - Google Analytics