window下简单配置OpenLdap以及调试

1.打开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,rootdn
suffix "dc=openv,dc=com"//目录
rootdn "cn=Manager,dc=openv,dc=com"//用户名
rootpw  yale                     //明文密码(你可以用命令: slappasswd -h {MD5} -s yale 算出加密的密码 {MD5} 取代配置中的 yale)


3. 启动 openldap
    CMD 进入到 c:\openldap 下,运行命令 slapd -d 1
    用可以看到控制台下打印一片信息,openldap 默认是用的 Berkeley DB 数据库存储目录数据的。
    如果你安装时选择了安装 install OpenLDAP-slapd as NT service 服务,你可以在系统服务中启动 OpenLDAP Directory Service。


4.定义一个XXXX.ldif的文件(目录)
如:文件内容如下
#定义最顶层的目录入口
dn: dc=openv,dc=com
objectClass: dcObject
objectClass: organization
o: Open-V
dc: openv

#定义Manager用户
dn: cn=Manager,dc=openv,dc=com  //同slapd.conf文件内容相同
objectclass: organizationalRole
cn: Manager
description: OpenLDAP Manager

#定义含有用户的目录入口
dn: ou=users,dc=openv,dc=com
objectClass: organizationalUnit
ou: users

#定义qiujinyong用户
dn: uid=qiujinyong,ou=users,dc=openv,dc=com
objectClass: inetOrgPerson
sn: qiujinyong
cn: qiujinyong
uid: qiujinyong
userPassword: qiujinyong

#定义yale用户
dn: uid=yale,ou=users,dc=openv,dc=com
objectClass: inetOrgPerson
sn: yale
cn: yale
uid: yale
userPassword: yale

#定义含有角色的目录入口
dn: ou=groups,dc=openv,dc=com
objectClass: organizationalUnit
ou: groups

#定义ROLE_USER角色
dn: cn=ROLE_USER,ou=groups,dc=openv,dc=com
objectClass: groupOfNames
cn: ROLE_USER
member: uid=yale,ou=users,dc=openv,dc=com
member: uid=qiujinyong,ou=users,dc=openv,dc=com

#定义ROLE_SUPERVISOR角色
dn: cn=ROLE_SUPERVISOR,ou=groups,dc=openv,dc=com
objectClass: groupOfNames
cn: ROLE_SUPERVISOR
member: uid=qiujinyong,ou=users,dc=openv,dc=com


5.执行命令:ldapadd -x -D "cn=Manager,dc=openv,dc=com(同slapd.conf文件内容相同)" -w 密码 -f XXX.ldif(文件路径为绝对路径)
  出现如下数据,表示导入正确:

 

 

6.启动客户端工具JXplorer(没有的话,请下载)
进行如下配置,配置内容如上述所定义

 

出现下面界面表示配置成功

 

 

如果想确认配置是否成功,写一个测试例子,如下

package yale.test;

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 {    
   @SuppressWarnings("unchecked")
public   static   void  main(String[] args) {    
    String root =  "dc=openv,dc=com" ;  //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,dc=openv,dc=com" );    
    env.put(Context.SECURITY_CREDENTIALS,  "yale" );    
    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    
      }    
    }    
  }    
}   

 

 

 

打印出     认证成功          ,表示配置成功!

你可能感兴趣的:(openLdap)