Windows 下搭建LDAP服務(wù)器_第1頁
Windows 下搭建LDAP服務(wù)器_第2頁
Windows 下搭建LDAP服務(wù)器_第3頁
Windows 下搭建LDAP服務(wù)器_第4頁
Windows 下搭建LDAP服務(wù)器_第5頁
已閱讀5頁,還剩8頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、Windows 下搭建LDAP服務(wù)器 五一閑來沒事,加上項目正在進行UAT。抽空研究了一下LDAP相關(guān)知識。隨手做一個記錄。為了方便閱讀還是先介紹一下什么是LDAP?前言、Lightweight Directory Access Protocol:The Lightweight Directory Access Protocol , or LDAP ,is an application protocol for querying and modifying directory services running over TCP/IP .(via wikipedia )。LDAP全稱是一個輕量級

2、的目錄訪問協(xié)議,它是建立在TCP/IP基礎(chǔ)之上的用來查詢和修改目錄服務(wù)的。這是照著wiki翻譯的,但是有人要問了什么是directory Service(目錄服務(wù))?按照wiki的說法的話講:在軟件行業(yè),目錄就如同一個字典,他使得通過某一名稱去查找綁定在該名稱上的值得方式成為一種可能。有點類似Java中Map的概念。a directory service is simply the software system that stores, organizes and provides access to information in a directory. 一個目錄服務(wù)就是一個簡單的軟件系統(tǒng)

3、,在這個目錄上提供了存取和組織信息的功能。LDAP目錄中可以存儲各種類型的數(shù)據(jù):電子郵件地址、郵件路由信息、人力資源數(shù)據(jù)、公用密匙、聯(lián)系人列表,等等。OK,進入正題。Google搜索 windows ldap服務(wù)器,終于找到了一個比較好的流行的:OpenLDAP(點擊下載)。一、OpenLDAP安裝和配置安裝還是比較簡單的,一直next就好。這里記得把上面2個都選上,將LDAP注冊為系統(tǒng)的一個服務(wù),默認安裝位置:C:Program FilesOpenLDAP,進入安裝目錄,編輯slapd.conf文件:找到ucdata-path ./ucdatainclude ./schema/core.sc

4、hema在下面加入:(注意你的系統(tǒng)路徑,可能隨安裝位置不同而稍有差異)include ./schema/core.schema (這里是和原來有的,如果加入的話就重復(fù)包含了,不能正常啟動了。應(yīng)該除這句外都加入)include ./schema/corba.schemainclude ./schema/dyngroup.schemainclude ./schema/java.schemainclude ./schema/misc.schemainclude ./schema/cosine.schemainclude ./schema/nis.schemainclude ./schema/inet

5、orgperson.schemainclude ./schema/openldap.schema這個搞定以后,在同一文件后面的(大概65-66行,修改)suffix ”o=anotherbug,c=com“ (直接拷貝過去引號會變成中文的。注意引號用英文的,會影響啟動)rootdn ”cn=manager,o=anotherbug,c=com“還有第70行的位置 : rootpw secret,這里要修改為加密后的密碼。具體操作:打開命令行,定位到安裝目錄下,輸入:slappasswd -h MD5 s “替換為你想要設(shè)置的密碼,無引號” 將生成的MD5密文:MD5Xr4ilOzQ4PCOq3

6、aQ0qbuaQ=填入原來secret位置。 OK至此配置已經(jīng)搞定,可以測試一下服務(wù)了。打開命令行轉(zhuǎn)到安裝目錄下輸入:sldapd -d 1 注意命令是(slapd -d 1)至此LDAP服務(wù)器已經(jīng)搭建并可以跑起來了.下面要來測試怎么倒入.ldif格式的數(shù)據(jù)了。 二、建立條目(Entry) ,導(dǎo)入 ldif 后綴名文件ldif:LDAP Data Interchange Format,基于文本。有兩種類型的 LDIF 文件:第一種是描述 Directory 條目數(shù)據(jù)的,第二種是描述更新條目的。我們主要看怎么描述條目的。打開編輯器(如Editplus,UltraEdit等),新建test.ldi

7、f內(nèi)容如下:dn: o=anotherbug,c=comobjectClass: dcObjectobjectClass: organizationo: anotherbugdc: comdn: uid=mousepoato, o=anotherbug,c=comuid: mousepoatoobjectClass: inetOrgPersonmail: paradise.lsjuserPassword: adminlabeledURI: sn: Licn: test注意ldif文件對格式的要求非常嚴格,屬性要以冒號和空格與值隔開,并且其他地方不允許有空格。否則當你導(dǎo)入ldif文件時,會提示出

8、現(xiàn)“l(fā)dap_add: Invalid syntax (21)”等諸多錯誤,另外在我機器上測試,ldif對中文支持也還不好,比如我將最后的cn: test改為 cn: 鼠標土豆,導(dǎo)入就會報錯。寫完保存到安裝目錄下。在命令行輸入:ldapadd -c -x -D “cn=manager,o=anotherbug,c=com” -w “剛才替換secret出的密碼明文” -f test.ldif運行命令后結(jié)果如下: 注意我們在ldapadd后面加上了 ”c “ 參數(shù),他會一直運行不會因錯誤而終止,比如對系統(tǒng)已經(jīng)存在的entry命令會提示但不會中止。 三、LDAP查看工具可能大家看了這么多感覺還是很

9、抽象,我們需要一個GUI看看LDAP到底是個什么東東。這里推薦兩個瀏覽工具1、LdapBrowser這是個Java 開發(fā)的 LDAP Browser/Editor 工具,不但跨平臺(Windows, Unix-like),而且功能非常完整,速度又快。運行起來的界面時這個樣子的。 2、Softrra LDAP Administrator 2009這是一個比較強大和專業(yè)的客戶端,涵蓋了大多數(shù)企業(yè)的LDAP服務(wù)類型。一直下一步安裝成功后,它的配置也是比較簡單的:新建一個profile,命名為Local_LDAP 配置連接信息這是完整配置好后的效果 四、通過 JNDI api操作LDAP例子Javax

10、里面提供的JNDI為我們封裝好了對LDAP 的directory service進行存取查詢的函數(shù),可以方便實用。貼上我用JUnit4寫一個對LADP服務(wù)器進行測試的代碼供參考:private static Logger log = Logger.getLogger(TestLdapOper.class);DirContext context = null;TestLdap tldap = null;Beforepublic void init() throws NamingException tldap = new TestLdap();context = tldap.getContext(

11、);/ 獲取contextTestIgnorepublic void testInsert() throws NamingException tldap.addEntry(context, “uid=IBM,o=anotherbug,c=com”);SuppressWarnings(“unchecked”)Testpublic void testGetAttributes() throws NamingException List attNameList = new ArrayList();attNameList.add(“o”);attNameList.add(“dc”);attNameLi

12、st.add(“objectClass”);Map map = JNDIUitl.getAttributes(context, “o=anotherbug,c=com”, attNameList);Iterator keyValuePairs = map.entrySet().iterator();for (int i = 0; i map.size(); i+) Map.Entry entry = (Map.Entry) keyValuePairs.next();Object key = entry.getKey();Object value = entry.getValue();log.i

13、nfo(key + “=key”);(value + “value”);SuppressWarnings(“unchecked”)Testpublic void testGetAttriValues() throws NamingException assertEquals(“”, JNDIUitl.getAttributeValues(context, “o=anotherbug,c=com”, “dc”).get(0) + “”);List lst = new ArrayList();lst = JNDIUitl.getAttributeValues(context, “o

14、=anotherbug,c=com”, “objectClass”);assertEquals(“organization”, lst.get(1) + “”);for (int i = 0; i lst.size(); i+) (lst.get(i);(ReflectionToStringBuilder.toString(lst.get(i).toString();SuppressWarnings(“unchecked”)Testpublic void testSearchContext() throws NamingException List list = JNDIUitl.searchContextSub(context, “o=anotherbug,c=com”, “(objectClass=*)”);for (int i = 0;

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論