OpenLDAP使用1

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

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
openLDAP是一个开源的LDAP实现,用于在网络环境中管理用户、组织和服务。下面是使用openLDAP的基本步骤: 1. 安装openLDAP。可以通过源代码编译安装或者使用系统包管理器(如yum或apt-get)进行安装。 2. 配置openLDAP。主要包括slapd.conf文件的设置,其中包括数据库的设置、访问控制和日志等。 3. 创建管理员用户。可以使用ldapadd命令添加管理员用户,例如: ``` dn: cn=admin,dc=example,dc=com objectClass: simpleSecurityObject objectClass: organizationalRole cn: admin userPassword: {SHA}nU4q9nH3wJ6N+uQZO0tJ7kZ6UjI= description: LDAP administrator ``` 在上面的示例中,管理员用户的DN为“cn=admin,dc=example,dc=com”,密码使用SHA算法进行加密存储。 4. 创建用户和组织。可以使用ldapadd命令添加用户和组织,例如: ``` dn: uid=john,ou=people,dc=example,dc=com objectClass: top objectClass: person objectClass: organizationalPerson objectClass: inetOrgPerson uid: john givenName: John sn: Smith cn: John Smith userPassword: {SHA}nU4q9nH3wJ6N+uQZO0tJ7kZ6UjI= mail: john@example.com ``` 在上面的示例中,创建了一个名为“John Smith”的用户。 5. 验证LDAP。可以使用ldapsearch命令检索LDAP数据库中的用户和组织信息,例如: ``` ldapsearch -x -b "dc=example,dc=com" "(objectClass=*)" dn ``` 在上面的示例中,检索了dc=example,dc=com下所有的对象。 以上是openLDAP的基本使用步骤,具体使用还需要了解更多openLDAP相关的知识和操作。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值