`
darkma
  • 浏览: 526289 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类

Win32 下安装配置OpenLdap

阅读更多

原文出自: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) 设置如下图所示:
LdapBrowserSettings

指定了 Host 为 localhost 之后,可以点击 Fetch DNs 按钮显示出 o=tcl,c=cn 来,如果要能在 LdapBrowser 中对数据能修改就不能用 Anonymous bind, 必须填上 User DN: cn=manager,Passwer: secret。

   2) 看到的效果是:
LdapBrowser

6. Java 连接 openldap

  1. import  java.util.Hashtable;   
  2. import  javax.naming.Context;   
  3. import  javax.naming.NamingException;   
  4. import  javax.naming.directory.DirContext;   
  5. import  javax.naming.directory.InitialDirContext;   
  6.     
  7. public   class  LDAPTest {   
  8.    public   static   void  main(String[] args) {   
  9.     LDAPTest LDAPTest1 =  new  LDAPTest();   
  10.     String root =  "o=tcl,c=cn" //root   
  11.     Hashtable env =  new  Hashtable();   
  12.     env.put(Context.INITIAL_CONTEXT_FACTORY,  "com.sun.jndi.ldap.LdapCtxFactory" );   
  13.     env.put(Context.PROVIDER_URL,  "ldap://localhost/"  + root);       
  14.     env.put(Context.SECURITY_AUTHENTICATION,  "simple" );   
  15.     env.put(Context.SECURITY_PRINCIPAL,  "cn=Manager,o=tcl,c=cn" );   
  16.     env.put(Context.SECURITY_CREDENTIALS,  "secret" );   
  17.     DirContext ctx =  null ;   
  18.      try  {   
  19.       ctx =  new  InitialDirContext(env);   
  20.       System.out.println( "认证成功" );   
  21.     }   
  22.      catch  (javax.naming.AuthenticationException e) {   
  23.       e.printStackTrace();   
  24.       System.out.println( "认证失败" );   
  25.     }   
  26.      catch  (Exception e) {   
  27.       System.out.println( "认证出错:" );   
  28.       e.printStackTrace();   
  29.     }   
  30.     
  31.      if  (ctx !=  null ) {   
  32.        try  {   
  33.         ctx.close();   
  34.       }   
  35.        catch  (NamingException e) {   
  36.          //ignore   
  37.       }   
  38.     }   
  39.   }   
  40. }  

代码中还没有实现用户的查找,读取、修改条目属性的操作

参考资料:1. 如何设置一个基本的OpenLDAP Server
                 2. windows下openldap的安装与java操作测试
                 3. LDAP 入门知识
                 4. OpenLDAP学习笔记

下一步计划是:
    1. 完成 Apache 与 openldap 的集成
    2. 完成 Tomcat 与 openldap 的集成 
    3. 使用 spring-ldap 的 LdapTemplate 操作 openldap

分享到:
评论

相关推荐

    win32 openLdap 2.2.29 安装文件

    4. 配置OpenLDAP服务器的基本设置,如管理员账号(cn=admin,dc=example,dc=com)、目录结构(例如dc=example,dc=com)以及监听端口(默认为389)。 5. 完成安装后,启动OpenLDAP服务。 6. 配置客户端工具,如ldap...

    openldap-2.2.29-db-4.3.29-openssl-0.9.8a-win32_Setup.7z

    OpenLDAP是开源的轻量级目录访问协议(Lightweight Directory Access Protocol)服务器,它提供了对分布式目录服务的支持,广泛应用于企业环境,...正确安装和配置OpenLDAP,能够有效提升企业IT环境的管理和安全性。

    windows下搭建并配置OpenLDAP服务器

    在Windows环境下搭建并配置OpenLDAP服务器是一项常见的任务,特别是在企业级环境中,为了实现用户身份验证、数据共享和服务集成。OpenLDAP(Lightweight Directory Access Protocol)是一个开源的LDAP服务器,广泛...

    windows 下安装和使用OpenLDAP。

    Windows 下安装和使用 OpenLDAP OpenLDAP 是一个开源的 LDAP 服务器实现,它提供了一个轻量级的目录访问协议,基于 X.500 标准,但比 X.500 简洁许多。OpenLDAP 支持 TCP/IP,适合Internet 环境。目录是一个专业的...

    编译windows版本openldap

    - 根据OpenLDAP的配置文件`config.h`,可能需要在项目设置中添加相应的预处理宏定义,比如`_WIN32`和`_MSC_VER`。 8. **编译与调试**: - 编译整个项目,解决可能出现的编译错误和警告。 - 如果需要调试,可以...

    windows版的openldap

    在Windows环境下安装和配置OpenLDAP对于本地开发和测试是非常有用的,因为它允许开发者模拟真实的目录服务环境,进行应用程序的开发和调试。 首先,我们需要了解OpenLDAP的核心概念。OpenLDAP提供了一个分布式...

    openldap安装工具

    安装完成后,你需要配置OpenLDAP的配置文件(通常为slapd.conf或cn=config),定义目录树结构、权限策略以及日志记录选项。同时,使用ldif(LDAP Data Interchange Format)文件导入初始目录数据。管理工具如...

    openldap2.2.29

    在Windows上安装OpenLDAP2.2.29,你需要下载名为`openldap-2.2.29-db-4.3.29-openssl-0.9.8a-win32_Setup.exe`的安装文件。这个文件是一个包含了OpenLDAP、Berkeley DB(用于存储LDAP数据的数据库引擎)和OpenSSL...

    一款实用的用于连接OpenLDAP的工具

    标题中的“一款实用的用于连接OpenLDAP的工具”指的是LdapBrowser-6.10.x-win-x86,这是一款专为Windows x86平台设计的软件,它提供了与OpenLDAP服务器进行交互的能力。OpenLDAP是一款开源的轻量级目录访问协议...

    基于windows的openldap

    在安装和配置OpenLDAP时,你需要: 1. 运行安装程序:双击"openldap-2.2.19-db-4.3.21-openssl-0.9.7e-win32.exe",按照向导指示完成安装。 2. 配置 slapd.conf:这是OpenLDAP的主要配置文件,需要定义服务器的基本...

    openldap 2.4.35

    本文将详细介绍如何在Windows上安装和配置OpenLDAP 2.4.35版本。 1. **下载与准备**: - 首先,你需要从官方或可信源下载OpenLDAP 2.4.35的Windows版本。通常,这将是一个名为"openldap-2.4.35"的压缩包,其中包含...

    IPv6协议在各操作系统下的安装与配置

    本篇文章将探讨在不同操作系统环境下如何安装和配置IPv6。 在Redhat Linux 9操作系统中,IPv6是内建支持的。首先,可以通过`insmod ipv6`或`modprobe ipv6`命令加载ipv6模块。确认模块是否加载成功,可以使用`lsmod...

    ApacheDirectoryStudio安装

    另一个是`ApacheDirectoryStudio-2.0.0.v20180908-M14-win32.win32.x86_64.exe`,这是Apache Directory Studio的Windows安装程序。以下是安装和配置的基本步骤: 1. **下载与安装**: - 双击`...

    OpenLDAPforWindows_x64

    7. **配置服务器**:在安装过程中,你可能有机会配置OpenLDAP服务器的基本设置,如管理员用户名、密码和数据库路径。这些设置将影响OpenLDAP服务器的运行和管理。 8. **完成安装**:点击“安装”后,安装程序会处理...

    OpenLDAPforWindows+LdapBrowser_282+OpenLdap使用手册

    OpenLDAP for Windows与LdapBrowser 282是开源LDAP(轻量级目录访问协议)在Windows环境下的实现和管理工具。OpenLDAP是一款强大的目录服务软件,它允许组织存储和检索用户、组、网络设备等对象的信息。LdapBrowser...

    LDAP安装说明-配合博客使用

    本篇文章详细介绍了如何在Linux环境下安装和配置OpenLDAP服务器,并提供了基本的客户端配置指南。此外,还针对Windows Server 2008环境下指定端口启动LDAP服务时可能遇到的问题进行了分析。通过上述步骤,可以帮助...

    Python库 | lmdb-0.97-cp34-cp34m-win32.whl

    1. 安装库:首先,你需要将`lmdb-0.97-cp34-cp34m-win32.whl`文件移动到Python的安装目录下的`Scripts`文件夹,然后通过`pip`来安装: ``` pip install lmdb-0.97-cp34-cp34m-win32.whl ``` 2. 导入库: ```...

Global site tag (gtag.js) - Google Analytics