文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>OpenLDAP介绍

OpenLDAP介绍

时间:2008-05-23  来源:huanat


目录

  • 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

    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: [email protected]
    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=http://baike.baidu.com/view/308683.htm#]
    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   
          }   
        }   
      }   
    }   

  • 相关阅读 更多 +
    排行榜 更多 +
    辰域智控app

    辰域智控app

    系统工具 下载
    网医联盟app

    网医联盟app

    运动健身 下载
    汇丰汇选App

    汇丰汇选App

    金融理财 下载