openldap知识
2015-09-02 10:22:52   来源:   评论:0 点击:

OpenLDAP是轻型目录访问协议(Lightweight Directory Access Protocol,LDAP)的自由和开源的实现,在其OpenLDAP许可证下发行,并已经被包含在众多流行的Linux发行版中。 它主要包括下述4个部分: slapd -
使用编辑

配置

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
userPassword: 123456
sn: Qiu
cn: 隔叶黄莺
2) 执行命令:ldapadd -x -D "cn=manager,o=tcl,c=cn" -w secret -f test.ldif
导入组织信息和一个用户 uid=Unmi

样本编辑

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
}
}
}
}

配置技巧编辑

以下是一些关于配置和部署该协议的常见技巧。

规避关于加密、证书等配置问题

为了获得最佳的兼容性,请只使用OpenLDAP支持的命令。开源LDAP是Zimbra的协同套件软件的重要组件。开源LDAP支持Ubuntu、Red Hat Enterprise Linux和SUSE Linux Enterprise Server环境,但建议不要在Red Hat平台使用OpenLDAP。

在开发环境内进行测试验证

如果能在将LDAP部署到生产环境之前,先在独立的开发环境内进行测试验证,那么这些错漏问题都不会产生实际的后果。一旦在开发环境中作出的更改达到要求,就可以将这些修改应用到生产环境。

更轻松地支持工具或实用程序

在实际的目录管理中,使用命令行会倍感轻松。一个shell脚本或其他脚本语言可以帮系统管理员们完成复杂的管理任务,可以利用基于Perl的编辑器来实现Net::LDAP和Net::LDAPapi模块相关的任务自动化

相关热词搜索:openldap

上一篇:第一页
下一篇:安装OpenLDAP

分享到: 收藏