neverend的日志

          不記錄,終將被遺忘。 一萬年太久,只爭朝夕。 他們用數(shù)字構建了整個世界。

            BlogJava :: 首頁 :: 聯(lián)系 :: 聚合  :: 管理
            62 Posts :: 1 Stories :: 17 Comments :: 0 Trackbacks
          本文主要參考官方文檔:http://www.openldap.org/doc/admin24/quickstart.html
          和網上流傳的教程:http://www.lifv.cn/?p=462

          OpenLDAP下載地址:http://download.bergmans.us/openldap/openldap-2.2.29/openldap-2.2.29-db-4.3.29-openssl-0.9.8a-win32_Setup.exe 下載后點擊安裝即可。

          配置sldap.conf :在安裝目錄下找到sldap.conf ,修改配置如下:
          suffix "dc=example,dc=com" 
          rootdn 
          "cn=Manager,dc=example,dc=com" 
          rootpw secret 

          啟動OpenLDAP:進入cmd命令行,跳轉到OpenLDAP安裝目錄下,運行:
          slapd -1
          用可以看到控制臺下打印一片信息,openldap 默認是用的 Berkeley DB 數(shù)據庫存儲目錄數(shù)據的。

          再開一個cmd,跳轉到OpenLDAP安裝目錄下。

          測試OpenLDAP是否正常啟動:
          ldapsearch --s base (objectclass=*) namingContexts
          官方文檔里,這一條命令加了些單引號,但帶單引號的命令在Windows環(huán)境下跑不通。后面的命令也都避免
          使用引號。
          如果返回:
          dn: 
          namingContexts: dc
          =example,dc=com
          則說明OpenLDAP成功啟動

          增加一個條目:
          1.做一個LDIF文件
          2.使用ldapadd命令

          1.在安裝目錄下,新建文件example.ldif,輸入如下內容:
          dn: dc=example,dc=com 
          objectclass: dcObject 
          objectclass: organization 
          o: Example Company 
          dc: example 

          dn: cn
          =Manager,dc=example,dc=com 
          objectclass: organizationalRole 
          cn: Manager
          注意:在文檔每一行的開頭和結尾不要有空格,文檔最后最好也別回車。建議不要拷貝,用手敲這幾行。

          2.cmd在安裝目錄下,運行:
          ldapadd --D cn=Manager,dc=example,dc=com --f example.ldif

          可能會要求輸入密碼:secret (配置文件里寫的這個密碼)

          添加條目成功后,會有提示: adding new entry cn=Manager,dc=example,dc=com

          簡單查詢:
          ldapsearch --b dc=example,dc=com (objectclass=*)

          查詢成功后,會返回剛才插入的條目。

          JNDI連接OpenLDAP
          Java的JNDI接口很強大,可以連接LDAP服務。
          import java.util.Hashtable;
          import javax.naming.Context;
          import javax.naming.NamingException;
          import javax.naming.directory.DirContext;
          import javax.naming.directory.InitialDirContext; 
          public class TestOpenLDAP {

              
          /**
               * 
          @param args
               
          */
              
          public static void main(String[] args) {
                  
          // TODO Auto-generated method stub
                  TestOpenLDAP LDAPTest1 = new TestOpenLDAP();
                  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://localhost/" + root);
                  env.put(Context.SECURITY_AUTHENTICATION, 
          "simple" );
                  env.put(Context.SECURITY_PRINCIPAL, 
          "cn=Manager,dc=example,dc=com" );
                  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
                  }
                  }

              }

          }

          問題:
          1. 圖形化界面LDAPBrowser的配置
          下載地址: http://files.blogjava.net/Unmi/LdapBrowser282.rar
          解壓后進入LdapBrowser282目錄,打開配置文件OpenLdap_Localhost.cfg
          修改配置:
          basedn=dc=example,dc=com
          managerdn
          =cn=Manager,dc=example,dc=com
          運行l(wèi)be.bat進入圖形界面后選擇連接OpenLdap_Localhost即可。

          2. OpenLDAP的語法,內置ObjectClass

          LDAP學習

          entry(record,directory object)  條目 一條數(shù)據 相當于數(shù)據表的一條記錄

          entry由若干個attribute組成,objectclass是必須的attribute,用于描述entry的schema

          attribute是name/value對形式,例如cn = liuxuanyu cn = mengke 一個name 可以對應多個值

          container是一種特殊的entry,為數(shù)據的組織和管理提供一個繼承體系結構,例如ou
          任何entry都可以在特定的情況下變成container

          與關系數(shù)據庫的比較:
          LDAP讀操作性能高,寫操作性能不如DB,DB 讀寫均可,讀操作性能不如LDAP
          數(shù)據結構不同
          LDAP適合于存儲繼承結構的數(shù)據


          namespace
          DN (distinguish name) DN是entry的名字,entry的唯一標識
          RDN (relative distinguish name) entry在某個容器范圍內的標識
          CN (common name) 常用名稱 習慣上被用作RDN
          DC (domain component) 域名

          LDAP只允許樹形結構

          object identifier (OID) 例如:2.5.4.3 它是屬性類型的標識符

          schema
          object class 定義了entry的類型
          有三種類型的object Class: 抽象類、輔助類和結構化類。

          構造schema的方式 :
          1. 組合現(xiàn)有的object class
          2. 擴展現(xiàn)有的object class 繼承 使用輔助類(實際上是一種聚合關系)

          The subschema publishes the schema to clients

          inetOrgPerson is a contemporary definition for a person entry RFC 2798


          3. JLDAP與JNDI的比較
           JLDAP是由novel開發(fā)的,原是針對Novel的NDS目錄設計的JAVA訪問工具。NOVEL的NDS和網景(NETSCAPE)的目錄是工具界最早的目錄產品。JLDAP并非JNDI的服務供應者,而是同一抽象層次下的訪問工具集。與JNDI-LDAP相比,JLDAP更接近于類關系數(shù)據庫的訪問方式。

             NDS是遵守LDAP協(xié)議的并進行了擴展的類MAD產品。而NOVEL也已把JLDAP捐獻給了OPENLDAP開源項目,可以世界范圍內自由使用。與 JNDI相比,JLDAP無須繼承DirContext才能實現(xiàn)添加,也無需預先生成添加的類,可以象普通數(shù)據訪問那樣,生成連接,然后使用::add方法添加。這樣,添加的靈活性要強于JNDI。

          但由于JLDAP目前是訪問NDS,因此,它不具備JNDI完全面向對象存儲的能力,對于高級的LDAP應用,JLDAP不是合適的選擇。


          4. OpenLDAP的深入管理
          posted on 2010-10-08 23:05 neverend 閱讀(14384) 評論(5)  編輯  收藏 所屬分類: 筆記

          Feedback

          # re: Windows下OpenLDAP的安裝與配置[未登錄] 2012-07-30 23:00 Clark
          ldapadd -x -D cn=Manager,dc=example,dc=com -W -f example.ldif 這是錯的,windows下面的openldap根本不是這樣的命令  回復  更多評論
            

          # re: Windows下OpenLDAP的安裝與配置[未登錄] 2012-07-30 23:01 Clark
          應該是slapadd -f (config文件) -l (ldif文件)  回復  更多評論
            

          # re: Windows下OpenLDAP的安裝與配置 2013-05-07 13:36 @小鬼
          -w 后跟密碼就好了@Clark
            回復  更多評論
            

          # re: Windows下OpenLDAP的安裝與配置 2013-05-07 13:38 @小鬼
          你QQ多少 想請教你一些問題@Clark
            回復  更多評論
            

          # re: Windows下OpenLDAP的安裝與配置[未登錄] 2014-01-09 00:33 xxx
          不知道在哪抄的文章,細節(jié)都不對  回復  更多評論
            


          只有注冊用戶登錄后才能發(fā)表評論。


          網站導航:
           
          主站蜘蛛池模板: 南通市| 繁峙县| 林口县| 嘉鱼县| 宁德市| 沿河| 澳门| 平罗县| 中宁县| 平潭县| 浠水县| 开封县| 湖州市| 杭锦旗| 安新县| 饶阳县| 湖口县| 林甸县| 班戈县| 黄冈市| 汽车| 双流县| 绍兴市| 镇雄县| 沂南县| 腾冲县| 任丘市| 灵山县| 乌拉特前旗| 新河县| 景洪市| 晋城| 乡城县| 绿春县| 会泽县| 措勤县| 米泉市| 乃东县| 禄丰县| 安仁县| 广丰县|