原文出自:http://www.blogjava.net/Unmi/archive/2007/07/27/132669.html
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
分享到:
相关推荐
OpenLDAP安装配置文档 配置OpenLDAP服务器 关闭防火墙或清空防火墙规则 一、 安装 二、 配置 三、 迁移密码和shadow信息 配置OpenLDAP客户端 OpenLDAP客户端sudo提权设定
Centos7 安装配置OpenLdap服务端及OpenLdap管理工具 CA认证配置 PHPLdapadmin
win32 openLdap 2.2.29 安装文件,亲测可用,不用注册码。
Windows下安装使用openldap Windows下安装使用openldap Windows下安装使用openldap
openldap在windows安装配置.pdf
主讲OpenLdap安装及配置,OpenLdap是配置ldap的服务器。
db-4.7.25.tar.gz freetype-2.3.5.tar.gz ft254.zip gd-2.0.35.tar.gz gettext-0.16.1.tar.gz httpd-2.4.10.tar.gz jpegsrc.v6b.tar.gz ...包含上述安装包,都是源码包,通过编译安装,在CentOs5.0下运行通过
centos环境 openldap环境搭建与配置
在CentOS8类似系统中,通过YUM方式安装OpenLDAP2.4。
linux 下openldap 安装说明文档 linux 下openldap 安装说明文档
配置OpenLDAP使用TLS通讯,内容丰富,总结全面
openldap-2.2.29 windows安装包(免密钥),openldap-2.2.29-db-4.3.29-openssl-0.9.8a-win32_Setup.exe
主要描述了在Windows环境下安装OpenLDAP的步骤,以及简单的使用方法。同时,给出了一个与Tomcate配置的例子,具体操作了不同用户下的访问权限问题。
openldap 资料大全,安装配置等等
配置OpenLDAP使用Kerberos验证[参考].pdf
该文档详细描述了在windows环境下OPENLDAP的安装和使用方法。
在AIX安装完成openldap后,需要五个步骤就可以完成配置。
Cestos6.4快速配置openldap服务器Cestos6.4快速配置openldap服务器Cestos6.4快速配置openldap服务器
CentOS6.5下openldap安装源码
描述openldap源码安装配置过程,包括配置主从服务,这里还有根据自己经验设置的开机启动脚本及安装配置脚本文件。