admin 管理员组文章数量: 887836
2024年2月23日发(作者:softreference做缓存)
本教程是在笔者学习JNDI过程中,由于没有合适的免费服务器做为实验,给Sun的JNDI教程的LDAP服务器使用的又是Sun的服务器,OpenLDAP又没有找到Windows的版本,所以就决定使用Apache的开源LDAP服务器---Apache Directory Server。下面是Apache网站对Apache Directory Project的介绍:
The Apache Directory Project provides directory solutions entirely written in Java. These
include a directory server, which has been certified as LDAP v3 compliant by the Open
Group (Apache Directory Server), and Eclipse-based directory tools (Apache Directory
Studio).
Apache Directory项目提供了用纯Java编写的目录解决方案,其中包含ApacheDS,即Apache Directory Server,它是一个被授权的LDAP v3的服务器。同时还包含基于Eclipse的目录工具,即Apache Directory Studio。
ApacheDS基本用户参考指南,主要介绍了如何安装ApacheDS 1.0,通过不同的图形化客户端连接服务器,当然主要还是需要通过JNDI编程来实现服务器的连接,这部分内容在JNDI教程中进行介绍。同时介绍了如何操作目录服务中的数据以及将ApacheDS和其它软件进行集成。
Apache Directory Server简介
ApacheDS 1.0是一个由纯Java语言编写的开源LDAP服务器。ApacheDS具有可嵌入、可扩展、标准的遵守LDAP协议等特性,同时支持其他的网络协议,例如NTP和Kerberos。但是ApacheDS是一个LDAP服务器是最基本的。各个特性介绍如下:
Embeddable means that it is possible to configure, start and stop ApacheDS from other
Java components, especially application servers, and the server runs within the same VM.
The solution has already been successfully embedded in Apache Geronimo, JBoss, and
others. The fact that the server is embeddable is quite interesting, nevertheless you also
have the deployment option to run the server standalone, for instance as a Windows
service. Perhaps you know this situation from other LDAP servers
open source (like OpenLDAP) as well as commercial ones (like Sun Java System
Directory Server). This guide is dedicated to people that are new to ApacheDS. The guide
concentrates on installing, configuring and running ApacheDS in a standalone
configuration.
Extendable means that the modern architecture of the solution provides many extension
points. Write your own partitions to store directory data, interceptors to add
functionality,(通过编写自定义分区来存储目录数据,编写自定义拦截器来增加功能。这些都
是通过使用Spring来实现特定的接口来完成的。) etc. by implementing certain interfaces
and plugging them in using Spring.
Standard compliant means that ApacheDS 1.0 adheres to all RFCs relevant to LDAPv3.
Please note that the server has been successfully certified by the Open Group in
September 2006 ("LDAP certified"). Thus LDAP clients may rightly expect that ApacheDS
behaves like they expect.
Modern means that ApacheDS aims modernize the LDAP territory, as well as it favors
standards compliance. New rich integration tier constructs like LDAP Stored Procedures
and Triggers are being built on top of existing standards.
Entirely written in Java means that the software compiles and runs on a huge number of
hardware and software platforms. Native installers are available for Windows, MacOS and
Solaris (both SPARC and intel platform), but in fact the set of possible targets is by far
more extensive.(用Java写的有点就是可移植性好)
整体架构一览:
其中JNDI作为一个通用的接口来访问目录服务。
基本概念
目录:一般来说,目录就是数据的集合或者清单。现实世界中的例子有电话薄,教堂登记簿等。这些例子的一个共同目的就是保存信息并且在需要的时候可以使用。在信息技术中,directory这个概念用来表示一种特殊的数据存储。它使用结构化存储和高效化获取对象,这些对象来自现实世界。
实体:所有的数据以实体为单位进行存储。实体的集合组成一棵树。
目录服务:提供访问存储在目录中的信息的解决方案就叫做目录服务。目录服务通过一个定义好的接口提供对目录内容的访问,如果使用网络的话,那么就需要一个合适的协议,LDAP协议应运而生。乍一看,目录服务作为数据存储工具与关系数据库存在竞争,但是实际上大多数大型企业或者组织同时使用目录服务和关系数据库。
LDAP发展历史:如下图所示:
信息模型
在LDAP的信息模型中,数据是以实体进行存储的,从而建立了一个层次化树状的结构。每个实体都有唯一的名字,即DN,Distinguished Name,DN描述了实体在树中的具体位置。实体由属性构成,属性是键值对key/value pairs。一些属性可能在一个实体中不止出现一次(单值或者多值,例如一个人可能有不止一个电话号码)。所谓的object class定义了一个实体可以有的属性以及哪些属性是必须的。
这些classes同样建立了一个层次结构,top作为这个层次的根。这和面向对象相似。top只有objectclass属性,用来指派实体的object classes。shcema由object classes和属性类型组成,因此它定义了哪种实体可以存储在目录中。目录服务器管理schema,这些schema多数是由RFC标准进行定义的。另外,大多数目录服务器允许用户定义object
classes和属性。
基于LDAP目录的常见操作
LDAP操作包括实体的创建,修改,删除以及查询。
上图展示了作为LDAP客户端的不同类型的软件产品。
ApacheDS的下载、安装和使用
安装需求:
Java 5.0(通过使用java –version命令进行查看)
另外需要给JVM分配384MB的内存,这是默认的设置,笔者的RAM是2G的,所以无所谓了,如果内存较小的机器,可以通过控制台进行修改。稍后介绍修改办法。
Apache网站提供了很多平台的本地安装包
MacOS (jar)
Solaris SPARC (jar)
Solaris i386 (jar)
Windows (exe)
Debian package
RPM package
Linux (jar)
可以从这里进行下载特定平台的安装文件。如果是使用Linux系统的话,需要使用图形化用户界面进行安装,即X11图形用户界面。
笔者使用的系统是Windows,所以下载了Windows平台的安装文件,文件名为,其中Apache网站还提供升级版本的安装文件,版本为1.5.1,这个版本是对应Java 5.0的版本,还不是稳定的版本。
下载后就可以进行安装了,注意安装的时候需要以管理员身份进行安装。在安装过程中可以选择是否作为windows系统服务进行安装,这样就可以随windows系统启动的时候启动,笔者习惯自己启动所需的服务,所以不选择这个选项。安装完成后,在开始菜单中具有程序菜单,主要有三个选项,分别为:
其中第一个用于进行服务的设定,第二个用于测试服务运行是否出现错误,第三个用于打开任务监视器。执行服务器设定,则打开下图的程序,在这里可以设置服务名、描述、启动类型(手动,自动,禁止)、启动、停止、暂停、重启程序,以及登录、日志记录位置、Java设定以及启动和停止的一些选项,下图是一个基本的选项。
下图是Java选项的tab,可以在这里设置使用的JVM,Apache建议使用Sun的JDK,但是也支持其他的JDK,同时可以设置服务器的java类路径以及系统属性(Java Options),可以在这个界面修改服务器运行所需的内存。
在执行测试服务的时候,由于很多服务器设置都使用的是默认的设置,所以会报出很多警告,暂且搁置。
执行任务栏监视器后,会在任务栏出现类似tomcat,apache的图标,可以通过鼠标右键进行启动、停止、配置服务器。现在启动服务器。
为了继续后面的内容,这里首先介绍安装并使用Apache Directory Studio这个工具,下载地址为
/directory/studio/stable/1.0.1/Apache_Directory_Studio_1.0.1_
安装要求如下:
Windows XP or Windows Vista
Java Runtime Environment
5 or later.
下载完成后,执行安装文件,按照安装指南进行安装结束,在开始菜单,执行Apache Directory Studio程序,启动后关闭欢迎页面,如下图所示。
双击左下角的连接视图中的Example,如下图所示:
在上图中,左上角的视图名称为LDAP Browser,主要以树状结构查看LDAP实体内容,中间为Entry
Editor,可以对实体属性进行编辑。右侧是一个大纲视图。左下角是Connections视图,可以建立到多个LDAP服务器的连接。中间是一些修改的日志,右下角是一个操作进度视图。
Apache Directory Studio和Eclipse很像,实际上它是基于Eclipse进行开发的一个更简洁的工具而已。同时Apache Directory Studio提供了Eclipse插件,插件的安装方式是常见的Eclipse安装插件的方式,即安装插件--->添加远程地址--->下载--->安装的顺序。安装过程不在本文讲解范围内。
/studio/">/studio/
由于笔者写此文的主要目的是在学习JNDI的过程中使用这个服务器,开发JNDI程序时,还需要使用Eclipse,所以笔者使用安装Eclispe插件的方式使用Apache Directory Studio工具。安装完插件口,打开试图浏览器,如下图所示,增加了LDAP Browser和Schema Editor视图:
创建到服务器的连接如下图:
Apache Directory Server默认情况下已经建立了一个DN,ou=system和dc=example,ou=system,我们可以连接到两个中的任意一个,管理员用户名为uid=admin,ou=system,密码默认为secret。端口为10389(LDAP服务的通用端口为389,SSL端口为636)
服务器主机为本机(localhost)。
基本配置
配置ApacheDS有很多方法,例如,可以通过编程的方式来进行所有配置的设定,当你把ApacheDS嵌入到你的应用程序的时候。在本教程中,我们假设ApacheDS按照标准方式进行安装,并独立运行,那么默认的配置方法就是修改文件,这个文件位于ApacheDS安装目录下的conf目录中。这个文件由bean定义组成,这是由于ApacheDS的配置是通过Spring Framework的帮助完成的。
尽管文件内容有些多,但是通过Spring IDE的帮助,可以看出结构还是非常简单的:
很多配置任务可以通过修改既存bean定义的属性来完成,或者通过添加新的特定类型的
beans来完成
注意上图中并没有列出配置文件中的所有的属性,只是那些默认的中包含值得一些属性,还有一些如果没有值就是用缺省值的属性没有被列出。一些属性及其说明被注释了,可以通过说明来了解属性的作用及意义。
修改端口:默认情况下,ApacheDS监听10389端口,更为普遍的是LDAP应该监听389端口,这是通用的LDAP协议端口。当然一些其他值也是可以使用的,修改LDAP端口是一个很好的例子,这样可以适应既存的Spring配置。
下面是有关端口的配置部分:
......
......
可以将端口的值修改为任意自定义的值。重启后修改生效。
修改管理员密码:修改管理员密码有些麻烦,ApacheDS声明将在下一次发布新的版本时进行改善,因为修改密码不是简单的通过修改配置文件就可以实现的,Apache官方网站对这部分的修改使用了JXplorer这个工具修改LDAP的admin用户的密码,同时再修改文件中的密码,才可以起作用。JXplorer是一个LDAP客户端是使用Java编写的工具,但是笔者在使用时,总是由于后台的的运行点击关闭窗口的时候程序就死掉了,还有一些其他的java工具也是如此,所以笔者没有使用这个工具,后面将介绍两种其他的工具。
版权声明:本文标题:Apache Directory Server使用指南 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.freenas.com.cn/jishu/1708641753h528498.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论