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" ; //root
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) {
//ignore
}
}
}
}
代码中还没有实现用户的查找,读取、修改条目属性的操作
6.错误及原因
adding new entry "uid=Unmi, o=tcl,c=cn"
ldap_add: Invalid syntax (21)
additional info: cn: value #0 invalid per syntax
出现了这个错误是因为ldif中有中文,将中文转换一下就ok
ldap_bind: Invalid credentials (49)
出现这个错误,就表示你要么给出了错误的"cn="条目,要么给出了错误的密码。
下一步计划是:
1. 完成 Apache 与 openldap 的集成
2. 完成 Tomcat 与 openldap 的集成
3. 使用 spring-ldap 的 LdapTemplate 操作 openldap
分享到:
相关推荐
本文将详细介绍OpenLDAP 2.4.30版本的关键知识点,以及如何在Windows环境下搭建和使用。 一、OpenLDAP简介 OpenLDAP是Lightweight Directory Access Protocol(轻量级目录访问协议)的开源实现,它提供了一个灵活...
1. 打开 D:/openldap/slapd.conf,找到 ucdata-path ./ucdatainclude ./schema/core.schema,在它后面添加: include ./schema/cosine.schema include ./schema/inetorgperson.schema 这三个 schema 是我们后续...
配置OpenLDAP使用TLS通讯,内容丰富,总结全面
1. **添加用户和组**: 使用OpenLDAP的管理工具,如`ldapadd`或图形化的管理界面,可以方便地添加、删除和修改用户和组信息。 2. **权限控制**: OpenLDAP支持细粒度的权限控制。通过修改`access control ...
### OpenLDAP 使用手册知识点解析 #### 一、文档概述 - **目的**: 该文档旨在为用户提供关于OpenLDAP的基础知识及使用指南,帮助用户了解如何安装、配置并使用OpenLDAP来构建目录服务。 #### 二、LDAP简介 ##### ...
1. **获取源代码**:根据提供的 "openldap" 文件,这可能是OpenLDAP的源代码包。解压后,通常会有一个名为 `openldap-x.x.x` 的目录,其中 x.x.x 表示版本号。 2. **编译和安装**:进入源代码目录,执行 `./...
安装 OpenLDAP 服务器需要使用 BerkeleyDB,首先,需要下载 OpenLDAP 的源代码,解压缩后,进入 OpenLDAP 目录,执行 configure、make 和 make install 命令。configure 命令需要指定 BerkeleyDB 的 include 和 lib ...
windows下OpenLdap安装及使用
1. OpenLDAP 2.4版本概述: OpenLDAP 2.4自2006年发布以来,经历了多次更新,提供了增强的安全性、性能优化和新特性。这个版本引入了新的配置语法,支持SSL/TLS加密,以及更灵活的权限控制。此外,它还增强了日志...
openldap 开启TLS全步骤
1. **下载OpenLDAP**: 你需要从OpenLDAP官方网站或第三方镜像站点获取适用于Windows的OpenLDAP版本,如`openldap-win32-x86_64.zip`。 2. **解压并安装**: 解压缩下载的文件到一个适当的目录,例如`C:\OpenLDAP`。 3...
在测试时,尝试使用OpenLDAP中的用户登录CAS,如果一切配置正确,用户应当能够成功登录。 需要注意的是,CAS与OpenLDAP的整合并非一蹴而就,可能需要对日志进行分析,调试可能出现的问题。例如,认证失败可能是由于...
OpenLDAP 使用 LMDB 数据库软件,LMDB 是基于 Btree-based 的高性能 mmap key-value 数据库,是在 BerkeleyDB 的基础上改进来的,支持事务操作,支持多进程访问。只产生两个文件 data.mdb 与lock.mdb。 OpenLDAP ...
1. **环境准备**: 在开始源码安装前,确保系统已经安装了必要的编译工具和库,如GCC、Make、OpenSSL、Berkeley DB等。对于Red Hat系列的系统,可以使用`yum install`或`dnf install`命令,对于Debian/Ubuntu系列,...
使用以下命令查看 OpenLDAP 的版本信息: ```bash slapd -VV ``` 查看 ldap 启动状态 使用以下命令查看 ldap 服务的启动状态: ```bash systemctl status slapd ``` 开放 389 端口 OpenLDAP 的默认监听端口为 389...
1. 下载并运行"openldap-2.2.29-db-4.3.29-openssl-0.9.8a-win32_Setup.exe",遵循安装向导的提示进行安装。 2. 在安装过程中,你需要配置OpenLDAP的基本设置,如服务器的主机名、端口、管理员密码以及数据库的位置...
配置OpenLDAP使用Kerberos验证 Kerberos是一种基于共享密钥的安全机制,由MIT发明,现在已经被标准化,最新是版本5,简称krb5。Kerberos特别适合局域网络,Windows2k及以上系统的安全机制即基于Kerberos。 在配置...
1. slapd:这是OpenLDAP的主要服务器进程,负责处理LDAP连接和请求。 2. Libraries:包括libldap、liblber等,为开发人员提供API来构建LDAP客户端应用程序。 3. Configurables:通过配置文件(如slapd.conf或...
1. 下载并解压压缩包,找到"openldap-2.2.29-db-4.3.29-openssl-0.9.8a-win32_Setup.exe"。 2. 双击运行安装程序,按照向导提示进行操作。 3. 在配置阶段,选择合适的安装路径,根据需求定制安装选项(如是否安装...