参考http://wiki.ubuntu.org.cn/index.php?title=OpenLDAPServer&variant=zh-cn#Installation.EF.BC.88.E5.AE.89.E8.A3.85.EF.BC.89
先安装slapd 和 ldap-utils
vim /etc/ldap/slapd.conf
# Make sure you edit or add these directives after the first 'database' directive.
suffix "dc=example,dc=com"
directory "/var/lib/ldap"
rootdn "cn=admin,dc=example,dc=com"
rootpw {SSHA}d2BamRTgBuhC6SxC0vFGWol31ki8iq5m
停止 LDAP 守护进程:sudo /etc/init.d/slapd stop
折腾了半天,ubuntu装上了但是认证失败,据说是因为tab和空格的问题,还用windows先试用一下吧
http://code.google.com/p/i18n-zh/wiki/OpenLDAP
这个新版本没装上
---------------------------------------------
这个哥们写的太好了,推荐一下
http://topinking.iteye.com/blog/223330
1.去csdn下载openldap-2.2.29-db-4.3.29-openssl-0.9.8a-win32_Setup.exe,安装
2.修改C:\WINDOWS\system32\drivers\etc下的host文件本地ip改成,
127.0.0.1 localhost
209.85.225.101 sites.google.com
192.168.1.116 example.com
最后一个为本地ip
3.C:\Program Files\OpenLDAP\slapd.conf
把下面两行(57,58行)
suffix "dc=my-domain,dc=com"
rootdn "cn=Manager,dc=my-domain,dc=com"
改成
suffix "dc=example,dc=com"
rootdn "cn=Manager,dc=example,dc=com"
运行slappasswd -h {MD5}
把下面这行(62行)
rootpw secret
改成刚得到的密码,类似
rootpw {MD5}S6CYCoq9tq5LPyFg79WaMQ==
启动 slapd -d 1
4.
import java.util.*;
import javax.naming.Context;
import javax.naming.NamingException;
import javax.naming.directory.DirContext;
import javax.naming.directory.InitialDirContext;
public class Demo {
public static void main(String[] args) {
Demo LDAPTest1 = new Demo();
String root = "dc=example,dc=com"; //root
Hashtable env = new Hashtable();
env.put(Context.INITIAL_CONTEXT_FACTORY, "com.sun.jndi.ldap.LdapCtxFactory");
env.put(Context.PROVIDER_URL, "ldap://192.168.1.116/" + root);
env.put(Context.SECURITY_AUTHENTICATION, "simple");
env.put(Context.SECURITY_PRINCIPAL, "cn=Manager,dc=example,dc=com");
env.put(Context.SECURITY_CREDENTIALS, "haoning");
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
}
}
System.exit(0);
}
}
参考http://blog.csdn.net/keonchen/archive/2007/06/28/1669913.aspx
ldapsearch uid=example
返回关于用户example的所有公开信息。
这和find / -uid example unix命令很类似。
编辑你的 /etc/openldap/ldap.conf配置文件
该文件位于ldap客户端(我们将使用同一计算机作为服务器和客户端,当然这可以在同一计算机或不同的计算机上)
通常诸如ldapdelete 、ldapadd等等的ldap客户端会读该文件的内容。