`

Windows下安装使用openldap

    博客分类:
  • ldap
阅读更多

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

分享到:
评论

相关推荐

    windows 下安装和使用OpenLDAP。

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

    Windows下OpenLDAP的安装及使用

    总结来说,Windows下安装OpenLDAP涉及下载安装、配置、启动服务等多个步骤,而使用OpenLDAP则包括管理用户和权限控制。与Web应用如Tomcat的集成,需要在Tomcat和Jaas中进行适当的配置,实现基于OpenLDAP的身份验证和...

    windows下OpenLdap安装及使用

    windows下OpenLdap安装及使用

    windows下搭建并配置OpenLDAP服务器

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

    openldap在windows安装配置.pdf

    OpenLDAP 在 Windows 平台下的安装配置 OpenLDAP 是一个基于 Lightweight Directory Access Protocol (LDAP) 的目录服务软件,常用于身份验证、授权和目录服务。下面将介绍 OpenLDAP 在 Windows 平台下的安装配置...

    openLDAP for windows.7z

    标签“openLDAP”、“ldap”、“windows”和“openLDAP安装”、“openLDAP客户端”进一步强调了这个压缩包的内容,涵盖了OpenLDAP的基本概念,其与LDAP协议的关系,以及它在Windows环境下的安装和客户端应用。...

    win32 openLdap 2.2.29 安装文件

    在Windows环境下,OpenLDAP提供了方便的安装包来简化部署过程。本文将详细介绍如何在Windows 32位系统上安装OpenLDAP 2.2.29版本。 首先,我们来看标题提到的"win32 openLdap 2.2.29 安装文件"。这表明这是一个专为...

    windows下openldap的安装与java操作测试

    windows下openldap的安装与java操作测试 windows下openldap的安装与java操作测试

    编译windows版本openldap

    以下是关于如何在Windows上使用Visual Studio 2008 (VC9)编译OpenLDAP的详细步骤和相关知识点: 1. **环境准备**: - 首先,你需要安装Microsoft Visual Studio 2008或兼容的编译环境,因为VC9是该版本的代号。 -...

    windows版的openldap

    OpenLDAP是一款开源的轻量级目录访问协议...总之,Windows版的OpenLDAP为开发者提供了一种在本地进行目录服务开发和测试的便捷途径,虽然与Linux环境下的安装有所不同,但通过正确配置和使用,可以很好地满足开发需求。

    openldap-for-windows2.4.23 windows版本

    openldap-for-windows2.4.23 windows版本

    openldap for windows

    在Windows环境下部署OpenLDAP,可以提供一个中央化的身份验证和授权服务,便于管理和组织用户数据。本指南将详细介绍如何在32位和64位的Windows系统上安装OpenLDAP。 首先,你需要下载对应系统的安装包。在这个...

    OpenLDAP for Windows_x64 (2.4.4)

    总之,OpenLDAP for Windows_x64 (2.4.4)为Windows用户提供了一个强大且易用的目录服务解决方案,其安装和配置过程相对直观,适合各种规模的企业和组织使用。通过合理配置和管理,OpenLDAP能有效地提升IT基础设施的...

    openldap-for-windows

    总结来说,OpenLDAP for Windows的安装和管理是一个涉及服务器配置、图形化工具使用、目录标准理解及数据安全等多个层面的过程。通过深入学习和实践,我们可以构建一个高效、可靠且符合标准的Windows LDAP服务环境。

    windows x64位 OpenLDAP服务

    本文将深入探讨OpenLDAP在Windows x64系统上的安装、配置以及常见操作。 首先,让我们理解LDAP的基础知识。LDAP是一种应用层的协议,遵循TCP/IP标准,主要用于存储和检索用户账户、组、网络资源等信息。它使用树状...

    OpenLDAP for Windows2.4.34

    OpenLDAP for Windows2.4.34

    基于windows的openldap

    在Windows平台上搭建OpenLDAP,可以为Windows环境提供类似Linux环境下的身份验证和授权服务。 首先,我们需要了解LDAP的基本概念。LDAP是一个应用层的协议,工作在TCP/IP协议栈上,主要用于访问和管理分布式目录...

    openldap2.2.29

    在Windows环境下搭建OpenLDAP2.2.29,可以帮助组织管理和存储用户账户、组信息以及各种配置数据,使得这些信息能够被网络上的应用和服务方便地访问。 首先,了解OpenLDAP的基本概念是必要的。LDAP是一种应用层的...

Global site tag (gtag.js) - Google Analytics