词条 | openldap |
释义 | OpenLDAP介绍OpenLDAP是轻型目录访问协议(Lightweight Directory Access Protocol,LDAP)的自由和开源的实现,在其OpenLDAP许可证下发行,并已经被包含在众多流行的Linux发行版中。 它主要包括下述4个部分: slapd - 独立LDAP守护服务 slurpd - 独立的LDAP更新复制守护服务 实现LDAP协议的库 工具软件和示例客户端 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 {md5} -s secret 算出加密的密码 {MD5}Xr4ilOzQ4PCOq3aQ0qbuaQ== 取代配置中的 secret。 2. 启动 openldap CMD 进入到 c:\\openldap 下,运行命令 slapd -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: 123456 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 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 } } } } |
随便看 |
百科全书收录4421916条中文百科知识,基本涵盖了大多数领域的百科知识,是一部内容开放、自由的电子版百科全书。