openldap 比起其他商业目录服务器(比如 IBM Directory Server),特别的轻巧,十分适合于本地开发测试用,在产品环境中的表现也很优秀。

openldap 软件在它的官方网站 http://www.openldap.org, 不过下载过来是源代码,并没有包含 win32 下的 Makefile 文件,只提供了在 Unix/Linux 下编译用的 Makefile。所以相应的在网上介绍在 windows 下安装使用 openldap 的资料比较少,而在 Unix/Linux 下应用文档却很丰富。

本文实践了在 Windows 下安装配 openldap,并添加一个条目,LdapBrowser 浏览,及 Java 程序连接 openldap 的全过程。

1. 下载安装 openldap for windows,当前版本2.2.29
下载地址:http://www.userbooster.de/en/download/openldap-for-windows.aspx
安装很简单,一路 next 即可,假设我们安装在 c:\openldap

2. 配置 openldap,编辑 sldap.conf 文件
1) 打开 c:\openldap\sldap.conf,找到
include C:/openldap/etc/schema/core.schema,在它后面添加
include C:/openldap/etc/schema/cosine.schema
include C:/openldap/etc/schema/inetorgperson.schema

接下来的例子只需要用到以上三个 schema,当然,如果你觉得需要的话,你可以把其他的 schema 全部添加进来
include C:/openldap/etc/schema/corba.schema
include C:/openldap/etc/schema/dyngroup.schema
include C:/openldap/etc/schema/java.schema
include C:/openldap/etc/schema/misc.schema
include C:/openldap/etc/schema/nis.schema
include C:/openldap/etc/schema/openldap.schema
2) 还是在 sldap.conf 文件中,找到
suffix "dc=my-domain,dc=com"
rootdn "cn=Manager,dc=my-domain,dc=com"
把这两行改为
suffix "dc=ibm,dc=com"
rootdn "cn=manager,dc=ibm,dc=com"

suffix 就是看自己如何定义了,后面步骤的 ldif 文件就必须与它定义了。还要注意到这个配置文件中有一个 rootpw secret,这个 secret 是 cn=Manager 的密码,以后会用到,不过这里是明文密码,你可以用命令: slappasswd -h {MD5} -s secret 算出加密的密码 {MD5}Xr4ilOzQ4PCOq3aQ0qbuaQ== 取代配置中的 secret。
3. 启动 openldap
CMD 进入到 c:\openldap 下,运行命令 slapd -d 1
用可以看到控制台下打印一片信息,openldap 默认是用的 Berkeley DB 数据库存储目录数据的。
4. 建立条目,编辑导入 ldif 文件
1) 新建一个 ldif(LDAP Data Interchanged Format) 文件(纯文本格式),例如 test.ldif,文件内容如下:

dn: dc=ibm,dc=com 

dc: ibm 

objectClass: dcObject 

objectClass: organization 

o: IBM, Inc. 


dn: ou=Groups,dc=ibm,dc=com 

ou: Groups 

description: group description 

objectclass: organizationalunit 


dn: ou=People,dc=ibm,dc=com 

ou: People 

description: All people 

objectclass: organizationalunit 


dn: ou=Permissions,dc=ibm,dc=com 

ou: Permissions 

description: All Permissions 

objectclass: organizationalunit 


或 

dn: dc=ibm,dc=com 

dc: ibm 

objectClass: dcObject 

objectClass: organization 

o: IBM, Inc. 


dn: ou=dev,dc=ibm,dc=com 

ou: dev 

description: All people in dev team 

objectclass: organizationalunit 



dn: ou=qa,dc=ibm,dc=com 

ou: qa 

description: All people in qa team 

objectclass: organizationalunit 


dn: cn=Robert_Smith, ou=dev,dc=ibm,dc=com 

objectClass: inetOrgPerson 

cn: Robert_Smith 

sn: smith 

uid: rsmith 

userpassword: smith 

mail: robert@ibm.com 

description: Robert Smith information 

ou: dev 


dn: cn=Jason, ou=qa,dc=ibm,dc=com 

objectClass: inetOrgPerson 

cn: Jason 

sn: Jason 

uid: rjason 

userpassword: jason 

mail: jason@ibm.com 

description: Jason personal information 

ou: qa



2) 执行命令:ldapadd -x -D "cn=manager,dc=ibm,dc=com" -w secret -f test.ldif
导入以上内容进入LDAP数据库。
5. 删除导入的数据
清空OpenLDAP\data目录下面的所有内容。
6. 浏览LDAP信息
可以下载JXplorer浏览。
JXplorer下载地址(Windows):
http://prdownloads.sourceforge.net/jxplorer/JXv3.2_install_windows.exe?download