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://download.bergmans.us/openldap/openldap-2.2.29/openldap-2.2.29-db-4.3.29-openssl-0.9.8a-win32_Setup.exe
相关链接:http://lucas.bergmans.us/hacks/openldap/
安装很简单,一路 next 即可,假设我们安装在 c:\openldap
2. 配置 openldap,编辑 slapd.conf 文件
1) 打开 c:\openldap\slapd.conf,找到
include ./schema/core.schema,在它后面添加
include ./schema/cosine.schema
include ./schema/inetorgperson.schema
接下来的例子只需要用到以上三个 schema,当然,如果你觉得需要的话,你可以把其他的 schema 全部添加进来
include ./schema/corba.schema
include ./schema/dyngroup.schema
include ./schema/java.schema
include ./schema/misc.schema
include ./schema/nis.schema
include ./schema/openldap.schema
2) 还是在 slapd.conf 文件中,找到
suffix "dc=my-domain,dc=com"
rootdn "cn=Manager,dc=my-domain,dc=com"
把这两行改为
suffix "o=tcl,c=cn"
rootdn "cn=Manager,o=tcl,c=cn"
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 数据库存储目录数据的。
如果你安装时选择了安装 install OpenLDAP-slapd as NT service 服务,你可以在系统服务中启动 OpenLDAP Directory Service。
4. 建立条目,编辑导入 ldif 文件
1) 新建一个 ldif(LDAP Data Interchanged Format) 文件(纯文本格式),例如 test.ldif,文件内容如下:
dn: o=tcl,c=cn
objectClass: dcObject
objectClass: organization
o: tcl
dc: com
dn: uid=Unmi, o=tcl,c=cn
uid: Unmi
objectClass: inetOrgPerson
mail: fantasia@sina.com
userPassword:: MTIzNDU2
labeledURI: http://unmi.blogcn.com
sn: Qiu
cn:: 6ZqU5Y+26buE6I66
2) 执行命令:ldapadd -x -D "cn=manager,o=tcl,c=cn" -w secret -f test.ldif
导入组织信息和一个用户 uid=Unmi
你可以用 LdapBrower 来导入这个 ldif 文件。
5. LdapBrowser 浏览
可点击链接 http://www.blogjava.net/Files/Unmi/LdapBrowser282.rar 下载,其中已配置好了 OpenLdap_Localhost
1) 设置如下图所示:
指定了 Host 为 localhost 之后,可以点击 Fetch DNs 按钮显示出 o=tcl,c=cn 来,如果要能在 LdapBrowser 中对数据能修改就不能用 Anonymous bind, 必须填上 User DN: cn=manager,Passwer: secret。
2) 看到的效果是:
6. Java 连接 openldap
- import java.util.Hashtable;
- import javax.naming.Context;
- import javax.naming.NamingException;
- import javax.naming.directory.DirContext;
- import javax.naming.directory.InitialDirContext;
-
- public class LDAPTest {
- public static void main(String[] args) {
- LDAPTest LDAPTest1 = new LDAPTest();
- String root = "o=tcl,c=cn" ;
- Hashtable env = new Hashtable();
- env.put(Context.INITIAL_CONTEXT_FACTORY, "com.sun.jndi.ldap.LdapCtxFactory" );
- env.put(Context.PROVIDER_URL, "ldap://localhost/" + root);
- env.put(Context.SECURITY_AUTHENTICATION, "simple" );
- env.put(Context.SECURITY_PRINCIPAL, "cn=Manager,o=tcl,c=cn" );
- env.put(Context.SECURITY_CREDENTIALS, "secret" );
- DirContext ctx = null ;
- try {
- ctx = new InitialDirContext(env);
- System.out.println( "认证成功" );
- }
- catch (javax.naming.AuthenticationException e) {
- e.printStackTrace();
- System.out.println( "认证失败" );
- }
- catch (Exception e) {
- System.out.println( "认证出错:" );
- e.printStackTrace();
- }
-
- if (ctx != null ) {
- try {
- ctx.close();
- }
- catch (NamingException e) {
-
- }
- }
- }
- }
代码中还没有实现用户的查找,读取、修改条目属性的操作
参考资料:1. 如何设置一个基本的OpenLDAP Server
2. windows下openldap的安装与java操作测试
3. LDAP 入门知识
4. OpenLDAP学习笔记
下一步计划是:
1. 完成 Apache 与 openldap 的集成
2. 完成 Tomcat 与 openldap 的集成
3. 使用 spring-ldap 的 LdapTemplate 操作 openldap
分享到:
相关推荐
该文档详细描述了在windows环境下OPENLDAP的安装和使用方法。
windows下OpenLdap安装及使用
主要描述了在Windows环境下安装OpenLDAP的步骤,以及简单的使用方法。同时,给出了一个与Tomcate配置的例子,具体操作了不同用户下的访问权限问题。
NULL 博文链接:https://cjb-666888.iteye.com/blog/1967770
windows下openldap的安装与java操作测试 windows下openldap的安装与java操作测试
openldap在windows安装配置.pdf
openldap-for-windows2.4.23 windows版本
openLDAP for windows 服务器端和客户端安装文件,包含openLDAP windows 安装配置方法链接
附近为整理好的openldap工程,可以直接在VC9上编译openldap
OpenLDAP for Windows2.4.34
windows版的openldap,适合于本地开发测试用
windows x64位 OpenLDAP服务
openldap for windows 32位及64位安装包,要在windows环境进行安装
win32 openLdap 2.2.29 安装文件,亲测可用,不用注册码。
openldap for windows.msi file format
openldap安装包,亲测可用,傻瓜式下一步安装
openldap2.2.29 用于windows环境下搭建ldap服务
openldap-for-windows安装包 LdapBrowser282 辅助工具 RFC2256LDAPv3使用X500用户schema总结 文档
NULL 博文链接:https://ln-ydc.iteye.com/blog/1328829