參考文章:
http://linux.chinaitlab.com/special/ldap/Index.html
http://www.server-world.info/en/note?os=Fedora_11&p=ldap
http://www.openldap.org/doc/admin24/quickstart.html
http://blog.sina.com.cn/s/blog_5f8238650100o2ge.html
第一步:安裝sudo yum -y install openldap*安裝2.4.26版本的成功圖檔如下:
安裝目錄為:/etc/openldap/
第二步:配置
将目錄/usr/share/openldap-servers下的slapd.conf.obsolete配置檔案複制到安裝目錄下兵重命名為slapd.conf。
修改slapd.conf中如下部分的配置:
database bdb
suffix "dc=sannychan,dc=cn"
rootdn "cn=root,dc=sannychan,dc=cn"
rootpw secret
同時注意修改以下部分的DN
database monitor
access to *
by dn.exact="gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth" read
by dn.exact="cn=root,dc=sannychan,dc=cn" read
by * none
複制/usr/share/openldap-servers 下的DB_CONFIG.example到目錄/var/lib/ldap/DB_CONFIG去:
配置完成後啟動:sudo sudo service slapd start
等一分鐘之後可用sudo service slapd status檢查運作狀态,若出現“active (running)”則表明啟動成功。
第三步:測試
fedora我裝在虛拟機中,IP位址為:192.168.1.172
通過如下JAVA代碼測試伺服器和配置是否生效:
public class OpenLdap {
public static void main(String[] args) {
OpenLdap penLdap = new OpenLdap();
String root = "dc=sannychan,dc=cn"; // 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.172:389/" + root);
env.put(Context.SECURITY_AUTHENTICATION, "simple");
env.put(Context.SECURITY_PRINCIPAL, "cn=root,dc=sannychan,dc=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
}
}
}
}
結果如下,表明配置成功了: