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:
[email protected]
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:
[email protected]
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