使用 配置 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 資料庫存儲目錄數據的。
實例 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
2) 執行命令:ldapadd -x -D "cn=manager,o=tcl,c=cn" -w secret -f test.ldif
樣本 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模組相關的任務自動化。