免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1529 | 回复: 0
打印 上一主题 下一主题

OpenLDAP介绍 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2008-05-23 11:58 |只看该作者 |倒序浏览

目录

  • OpenLDAP介绍


  • OpenLDAP下载


  • OpenLDAP使用


  • Java 连接 openldap



    OpenLDAP介绍OpenLDAP是轻型目录访问协议(Lightweight Directory Access Protocol,LDAP)的自由和开源的实现,在其OpenLDAP许可证下发行,并已经被包含在众多流行的Linux发行版中。
    它主要包括下述4个部分:
    slapd - 独立LDAP守护服务
    slurpd - 独立的LDAP更新复制守护服务
    实现LDAP协议的库
    工具软件和示例客户端
    [/url]
    OpenLDAP下载源码包(Linux环境) http://www.openldap.org/software/download/
    Win32 版 http://download.bergmans.us/openldap/openldap-2.2.29/openldap-2.2.29-db-4.3.29-openssl-0.9.8a-win32_Setup.exe
    [url=http://baike.baidu.com/view/308683.htm#]

    OpenLDAP使用1、配置 openldap,编辑 sldap.conf 文件
       1) 打开 c:\openldap\sldap.conf,找到
        include  C:/openldap/etc/schema/core.schema,在它后面添加
        include  C:/openldap/etc/schema/cosine.schema
        include  C:/openldap/etc/schema/inetorgperson.schema
        接下来的例子只需要用到以上三个 schema,当然,如果你觉得需要的话,你可以把其他的 schema 全部添加进来
        include  C:/openldap/etc/schema/corba.schema
        include  C:/openldap/etc/schema/dyngroup.schema
        include  C:/openldap/etc/schema/java.schema
        include  C:/openldap/etc/schema/misc.schema
        include  C:/openldap/etc/schema/nis.schema
        include  C:/openldap/etc/schema/openldap.schema
       2) 还是在 sldap.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  -s secret 算出加密的密码 Xr4ilOzQ4PCOq3aQ0qbuaQ== 取代配置中的 secret。
    2. 启动 openldap
        CMD 进入到 c:\openldap 下,运行命令 sldapd -d 1
        用可以看到控制台下打印一片信息,openldap 默认是用的 Berkeley DB 数据库存储目录数据的。
    3. 建立条目,编辑导入 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://www.5jy.com
    sn: Qiu
    cn: 隔叶黄莺
       2) 执行命令:ldapadd -x -D "cn=manager,o=tcl,c=cn" -w secret -f test.ldif
        导入组织信息和一个用户 uid=Unmi
    [/url]
    Java 连接 openldapimport  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   
          }   
        }   
      }   
    }   

    本文来自ChinaUnix博客,如果查看原文请点:[url]http://blog.chinaunix.net/u/21790/showart_701904.html
  • 您需要登录后才可以回帖 登录 | 注册

    本版积分规则 发表回复

      

    北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
    未成年举报专区
    中国互联网协会会员  联系我们:huangweiwei@itpub.net
    感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

    清除 Cookies - ChinaUnix - Archiver - WAP - TOP