Windows下安装使用OpenLDAP
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" ; //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
- }
- }
- }
- }
代码中还没有实现用户的查找,读取、修改条目属性的操作
Windows下安装使用OpenLDAP相关推荐
- Windows下安装使用openldap(zz)
openldap 比起其他商业目录服务器(比如 IBM Directory Server),特别的轻巧,十分适合于本地开发测试用,在产品环境中的表现也很优秀. openldap 软件在它的官方网站 h ...
- Win32 下安装配置OpenLdap
原文出自:http://www.blogjava.net/Unmi/archive/2007/07/27/132669.html openldap 比起其他商业目录服务器(比如 IBM Directo ...
- 基于svnserve的SVN服务器(windows下安装与配置)
基于svnserve的SVN服务器(windows下安装与配置) 关键字: svn 安装SVNserve 从http://subversion.tigris.org/servlets/ProjectD ...
- Windows下安装Z3的Python3版
文章目录 Windows下安装Z3的Python3版 pip 安装(不推荐,很慢) 使用微软官方构建好的DLL(推荐,快速) Windows下安装Z3的Python3版 GitHub官方仓库地址:Z3 ...
- 在windows下安装concurrentlua
concurrentlua的makefile只提供了unix下的版本,如果直接按make里面得拷贝路径安排文件 在windows下是无法凑效的.这里我把我在windows下安装concurrentlu ...
- linux/windows下安装scala
为什么80%的码农都做不了架构师?>>> 一.linux下安装scala 1.保证jdk安装成功,版本在1.5或者更改版本,java和javac均可用. 2.官网下载scala ...
- windows下安装cygwin及配置
windows下安装cygwin及配置 对于使用Windows操作系统作为开发平台同时又喜欢类unix环境的朋友(Windows不是最方便的开发环境),这里是在Cygwin环境下安装Rails的步骤 ...
- Redis第一集:Windows下安装Redis和测试
Redis第一集:Windows下安装Redis和测试 一.资源 Windows下的Redis的下载地址 点击这里即可下载,如果进不去GitHub的话,可以上网搜一下怎么进GitHub,搭个梯子(●ˇ ...
- 如何在windows下安装cygwin
如何在windows下安装cygwin 转载于:https://www.cnblogs.com/zhujiabin/p/5747580.html
最新文章
- No resource identifier found for attribute 'showAsAction' in package 'android'
- 自己实现的字符串处理函数
- C#单例模式的懒汉与饿汉
- POJ1358 Agri-Net
- 吃豆豆游戏的C语言程序码,C++实现基于控制台界面的吃豆子游戏
- Codeforces Round #507 (Div. 1) D. You Are Given a Tree 根号分治 + dp
- 转-Apache kafka 工作原理介绍
- python最强脚本工具_8种常用的Python工具
- Asp.Net高级知识回顾_HttpModule及应用程序生命周期_1
- 计算机原理与接口专科,春福师计算机原理与接口关键技术在线作业二.doc
- 硅谷Spring项目组专家教你利用Spring Cloud构建微服务
- 计算机集成技术的研究和应用,信息系统集成技术研究
- WPS EXCEL 处理字符串转换为日期格式
- 如何使用Xposed+JustTrustMe来突破SSL Pinning
- 计算机思维在英语专业的应用,英语专业在计算机科学中的重要性
- 荒神罪蜀山传 服务器未响应,《DOTA2》荒神罪蜀山传新手攻略
- FaWave(发微)-Chrome上的多微博全能插件
- Ubuntu18.04装录屏软件OBS-Studio 21.1
- 使用Java统计英文文章的单词频率。
- mysql-删除语句汇总
热门文章
- netflix什么来很_如何使用Netflix的屏幕锁定来禁用播放控件
- js判断0==‘‘,判断1==true
- avue中crue表单的属性
- kivy 028 读取excel 文件
- 结构力学程序算法理论基础(一)————虚功原理
- 如何学习HTML5?
- FISHER控制阀的使用和维修
- 《操作系统真象还原》——0.28 MBR、EBR、DBR和OBR各是什么
- 数据结构---平均查找长度ASL的相关计算技巧
- 共享打印机出现0x00000709错误