﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>BlogJava-每日一得-随笔分类-ldap目录服务</title><link>http://www.blogjava.net/alex/category/17908.html</link><description>不求多得,只求一得
about java,hibernate,spring,design,database,linux,etc.
&lt;br/&gt;&lt;br/&gt;
最近关心的内容关键字:web快速开发方案，建模,workshop studio,Ajax
</description><language>zh-cn</language><lastBuildDate>Tue, 27 Feb 2007 14:36:55 GMT</lastBuildDate><pubDate>Tue, 27 Feb 2007 14:36:55 GMT</pubDate><ttl>60</ttl><item><title>[zt]ldap介绍</title><link>http://www.blogjava.net/alex/archive/2006/11/30/84651.html</link><dc:creator>Alex</dc:creator><author>Alex</author><pubDate>Thu, 30 Nov 2006 12:45:00 GMT</pubDate><guid>http://www.blogjava.net/alex/archive/2006/11/30/84651.html</guid><description><![CDATA[
		<font color="#000099">
											LDAPChina序言：</font>这篇文章是互联网上最流行的一篇介绍LDAP基础知识的文章，本文作者<a class="a04" href="mailto:donnelly@ldapman.org">Michael Donnelly</a>是<a class="a04" href="http://www.ldapman.org/">LDAPMAN.org</a>的站长。由于本文译文较长，我们将其分为两部分，第一部分介绍LDAP概论，第二部分介绍LDAP基础知识。感谢网友<a class="a04" href="mailto:brimmer@linuxaid.com.cn">Brimmer</a>翻译此文。
											<p>如
果你在计算机行业工作，那么对LDAP可能早有耳闻了。想深入地了解LDAP吗？那么可以好好地读一下这篇文章。这篇介绍性的文章是一系列介绍如何在企业
中设计、实现和集成LDAP环境的文章的头一篇。主要是先让你熟悉一下LDAP的基本概念，那些比较困难的细节问题将放到以后讨论。在这篇文章中我们将要
介绍：</p><p><a class="a06" href="http://www.ldapchina.com/beginning/B010001.html#what">什么是LDAP?</a><br /><a class="a06" href="http://www.ldapchina.com/beginning/B010001.html#when">什么时候该用LDAP存储数据？</a></p><p>现
在LDAP技术不仅发展得很快而且也是激动人心的。在企业范围内实现LDAP可以让运行在几乎所有计算机平台上的所有的应用程序从LDAP目录中获取信
息。LDAP目录中可以存储各种类型的数据：电子邮件地址、邮件路由信息、人力资源数据、公用密匙、联系人列表，等等。通过把LDAP目录作为系统集成中
的一个重要环节，可以简化员工在企业内部查询信息的步骤，甚至连主要的数据源都可以放在任何地方。如果Oracle、Sybase、Informix或
Microsoft SQL数据库中已经存储了类似的数据，那么LDAP和这些数据库到底有什么不同呢？是什么让它更具优势？请继续读下去吧！</p><br /><p><a name="what"></a></p><h1><font color="#336699" size="3">什么是LDAP?</font></h1><p>LDAP
的英文全称是Lightweight Directory Access
Protocol，一般都简称为LDAP。它是基于X.500标准的，但是简单多了并且可以根据需要定制。与X.500不同，LDAP支持TCP/IP，
这对访问Internet是必须的。LDAP的核心规范在RFC中都有定义，所有与LDAP相关的RFC都可以在<a class="a02" href="http://www.ldapchina.com/rfc.html">LDAPChina.com RFC专栏</a>中找到。</p><h2><font size="2">怎么使用LDAP这个术语呢？</font></h2><p>在
日常交谈中，你可能会听到有些人这么说：“我们要把那些东西存在LDAP中吗？”，或者“从LDAP数据库中取出那些数据！”，又或者“我们怎么把
LDAP和关系型数据库集成在一起？”。严格地说，LDAP根本不是数据库而是用来访问存储在信息目录（也就是LDAP目录）中的信息的<strong>协议</strong>。更为确切和正式的说法应该是象这样的：“通过使用LDAP，可以在信息目录的正确位置读取（或存储）数据”。但是，也没有必要吹毛求疵，尽管表达得不够准确，我们也都知道对方在说什么。</p><h2><font size="2">LDAP目录是数据库吗？</font></h2><p>就
象Sybase、Oracle、Informix或Microsoft的数据库管理系统（DBMS）是用于处理查询和更新关系型数据库那样，LDAP服务
器也是用来处理查询和更新LDAP目录的。换句话来说LDAP目录也是一种类型的数据库，但是不是关系型数据库。不象被设计成每分钟需要处理成百上千条数
据变化的数据库，例如：在电子商务中经常用到的在线交易处理（OLTP）系统，LDAP主要是优化数据读取的性能。</p><h2><font size="2">LDAP目录的优势</font></h2><p>现在该说说LDAP目录到底有些什么优势了。现在LDAP的流行是很多因素共同作用的结果。我在这里说的不过是一些基本的原因，请你注意一下这不过是一小部分原因。</p><p>可能LDAP最大的优势是：可以在任何计算机平台上，用很容易获得的而且数目不断增加的LDAP的客户端程序访问LDAP目录。而且也很容易定制应用程序为它加上LDAP的支持。</p><p>LDAP
协议是跨平台的和标准的协议，因此应用程序就不用为LDAP目录放在什么样的服务器上操心了。实际上，LDAP得到了业界的广泛认可，因为它是
Internet的标准。产商都很愿意在产品中加入对LDAP的支持，因为他们根本不用考虑另一端（客户端或服务端）是怎么样的。LDAP服务器可以是任
何一个开发源代码或商用的LDAP目录服务器（或者还可能是具有LDAP界面的关系型数据库），因为可以用同样的协议、客户端连接软件包和查询命令与
LDAP服务器进行交互。与LDAP不同的是，如果软件产商想在软件产品中集成对DBMS的支持，那么通常都要对每一个数据库服务器单独定制。</p><p>不象很多商用的关系型数据库，你不必为LDAP的每一个客户端连接或许可协议付费。</p><p>大多数的LDAP服务器安装起来很简单，也容易维护和优化。</p><p>LDAP服务器可以用“推”或“拉”的方法复制部分或全部数据，例如：可以把数据“推”到远程的办公室，以增加数据的安全性。复制技术是内置在LDAP服务器中的而且很容易配置。如果要在DBMS中使用相同的复制功能，数据库产商就会要你支付额外的费用，而且也很难管理。</p><p>LDAP
允许你根据需要使用ACI（一般都称为ACL或者访问控制列表）控制对数据读和写的权限。例如，设备管理员可以有权改变员工的工作地点和办公室号码，但是
不允许改变记录中其它的域。ACI可以根据谁访问数据、访问什么数据、数据存在什么地方以及其它对数据进行访问控制。因为这些都是由LDAP目录服务器完
成的，所以不用担心在客户端的应用程序上是否要进行安全检查。</p><p>LDAP对于存储下面这样的信息最为有用，也就是数据需要从不同的地点读取，但是不需要经常更新。例如，这些信息存储在LDAP目录中是十分有效的：</p><ul><li>公司员工的电话号码簿和组织结构图</li><li>客户的联系信息</li><li>计算机管理需要的信息，包括NIS映射、email假名，等等</li><li>软件包的配置信息</li><li>公用证书和安全密匙</li></ul><p><a name="when"></a></p><h1><font color="#336699" size="3">什么时候该用LDAP存储数据？</font></h1><p>大
多数的LDAP服务器都为读密集型的操作进行专门的优化。因此，当从LDAP服务器中读取数据的时候会比从专门为OLTP优化的关系型数据库中读取数据快
一个数量级。也是因为专门为读的性能进行优化，大多数的LDAP目录服务器并不适合存储需要经常改变的数据。例如，用LDAP服务器来存储电话号码是一个
很好的选择，但是它不能作为电子商务站点的数据库服务器。</p><p>如果下面每一个问题的答案都是“是”，那么把数据存在LDAP中就是一个好主意。</p><ul><li>需要在任何平台上都能读取数据吗？</li><li>每一个单独的记录项是不是每一天都只有很少的改变？</li><li>可以把数据保存在平面数据库（flat database）而不是关系型数据库中吗？换句话来说，也就是不管什么范式不范式的，把所有东西都存在一个记录中（差不多只要满足第一范式）。</li></ul><p>最
后一个问题可能会唬住一些人，其实用平面数据库去存储一些关系型的数据也是很一般的。例如，一条公司员工的记录就可以包含经理的登录名。用LDAP来存储
这类信息是很方便的。一个简单的判断方法：如果可以把数据保存在一张张的卡片里，就可以很容易地把它存在LDAP目录里。</p><br /><p>接上文</p><p><a class="a06" href="http://www.ldapchina.com/beginning/B010002.html#tree">LDAP目录树的结构</a><br /><a class="a06" href="http://www.ldapchina.com/beginning/B010002.html#record">单条LDAP记录</a><br /><a class="a06" href="http://www.ldapchina.com/beginning/B010002.html#class">定制目录的对象类</a><br /><a class="a06" href="http://www.ldapchina.com/beginning/B010002.html#sample">一个LDAP单个条目的例子</a><br /><a class="a06" href="http://www.ldapchina.com/beginning/B010002.html#replication">LDAP复制</a><br /><a class="a06" href="http://www.ldapchina.com/beginning/B010002.html#aci">安全和访问控制</a></p><p><a name="tree"></a></p><h1><font color="#336699" size="3">LDAP目录树的结构</font></h1><p>LDAP
目录以树状的层次结构来存储数据。如果你对自顶向下的DNS树或UNIX文件的目录树比较熟悉，也就很容易掌握LDAP目录树这个概念了。就象DNS的主
机名那样，LDAP目录记录的分辨名（Distinguished Name，简称DN）是用来读取单条记录，以及回溯到树的顶部。后面会做详细地介绍。</p><p>为什么要用层次结构来组织数据呢？原因是多方面的。下面是可能遇到的一些情况：</p><ul><li>如果你想把所有的美国客户的联系信息都“推”到位于到西雅图办公室（负责营销）的LDAP服务器上，	但是你不想把公司的资产管理信息“推”到那里。</li><li>你可能想根据目录树的结构给予不同的员工组不同的权限。在下面的例子里，资产管理组对“asset-mgmt”部分有完全的访问权限，但是不能访问其它地方。</li><li>把LDAP存储和复制功能结合起来，可以定制目录树的结构以降低对WAN带宽的要求。位于西雅图的营销办公室需要每分钟更新的美国销售状况的信息，但是欧洲的销售情况就只要每小时更新一次就行了。</li></ul><h2><font size="2">刨根问底：基准DN</font></h2><p>LDAP目录树的最顶部就是根，也就是所谓的“基准DN”。基准DN通常使用下面列出的三种格式之一。假定我在名为FooBar的电子商务公司工作，这家公司在Internet上的名字是foobar.com。</p><p><strong>o="FooBar, Inc.", c=US</strong></p><p><i>（以X.500格式表示的基准DN）</i></p><p>在
这个例子中，o=FooBar, Inc. 表示组织名，在这里就是公司名的同义词。c=US
表示公司的总部在美国。以前，一般都用这种方式来表示基准DN。但是事物总是在不断变化的，现在所有的公司都已经（或计划）上Internet上。随着
Internet的全球化，在基准DN中使用国家代码很容易让人产生混淆。现在，X.500格式发展成下面列出的两种格式。</p><p><strong>o=foobar.com</strong></p><p><i>（用公司的Internet地址表示的基准DN）</i></p><p>这种格式很直观，用公司的域名作为基准DN。这也是现在最常用的格式。</p><p><strong>dc=foobar, dc=com</strong></p><p><i>（用DNS域名的不同部分组成的基准DN）</i></p><p>就
象上面那一种格式，这种格式也是以DNS域名为基础的，但是上面那种格式不改变域名（也就更易读），而这种格式把域名：foobar.com分成两部分
dc=foobar,
dc=com。在理论上，这种格式可能会更灵活一点，但是对于最终用户来说也更难记忆一点。考虑一下foobar.com这个例子。当
foobar.com和gizmo.com合并之后，可以简单的把“dc=com”当作基准DN。把新的记录放到已经存在的dc=gizmo,
dc=com目录下，这样就简化了很多工作（当然，如果foobar.com和wocket.edu合并，这个方法就不能用了）。如果LDAP服务器是新
安装的，我建议你使用这种格式。再请注意一下，如果你打算使用活动目录（Actrive
Directory），Microsoft已经限制你必须使用这种格式。</p><h2><font size="2">更上一层楼：在目录树中怎么组织数据</font></h2><p>在UNIX文件系统中，最顶层是根目录（root）。在根目录的下面有很多的文件和目录。象上面介绍的那样，LDAP目录也是用                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      </p><img src ="http://www.blogjava.net/alex/aggbug/84651.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/alex/" target="_blank">Alex</a> 2006-11-30 20:45 <a href="http://www.blogjava.net/alex/archive/2006/11/30/84651.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>