<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    neverend的日志

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

      BlogJava :: 首頁 :: 聯系 :: 聚合  :: 管理
      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 數據庫存儲目錄數據的。

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

    測試OpenLDAP是否正常啟動:
    ldapsearch --s base (objectclass=*) namingContexts
    官方文檔里,這一條命令加了些單引號,但帶單引號的命令在Windows環境下跑不通。后面的命令也都避免
    使用引號。
    如果返回:
    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
    運行lbe.bat進入圖形界面后選擇連接OpenLdap_Localhost即可。

    2. OpenLDAP的語法,內置ObjectClass

    LDAP學習

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

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

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

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

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


    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. 組合現有的object class
    2. 擴展現有的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開發的,原是針對Novel的NDS目錄設計的JAVA訪問工具。NOVEL的NDS和網景(NETSCAPE)的目錄是工具界最早的目錄產品。JLDAP并非JNDI的服務供應者,而是同一抽象層次下的訪問工具集。與JNDI-LDAP相比,JLDAP更接近于類關系數據庫的訪問方式。

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

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


    4. OpenLDAP的深入管理
    posted on 2010-10-08 23:05 neverend 閱讀(14374) 評論(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
    不知道在哪抄的文章,細節都不對  回復  更多評論
      


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


    網站導航:
     
    主站蜘蛛池模板: 国产成人无码免费网站| 国产成人高清亚洲一区久久| 成人免费福利电影| 亚洲人成电影亚洲人成9999网| 中国国语毛片免费观看视频| 久久久久久久亚洲精品| 亚洲国产精品白丝在线观看| 99精品在线免费观看| 亚洲国产成人久久一区久久| 91亚洲导航深夜福利| 1000部啪啪未满十八勿入免费| 亚洲视频在线免费播放| 亚州免费一级毛片| 精品亚洲456在线播放| 国产片免费福利片永久| 免费夜色污私人影院网站| 中文字幕亚洲不卡在线亚瑟| 免费无码av片在线观看| 无码欧精品亚洲日韩一区夜夜嗨| 特级毛片免费播放| 亚洲日本va在线视频观看| 久久久久国色av免费看| 久久精品国产99国产精品亚洲| a级成人毛片免费图片| 亚洲视频在线观看免费| 成人免费视频88| 国产精品免费久久久久电影网| 午夜影视日本亚洲欧洲精品一区| 99爱在线精品免费观看| 亚洲国产精久久久久久久| 91精品免费国产高清在线| 亚洲av永久无码一区二区三区| 99久久国产免费-99久久国产免费| 亚洲人成在线免费观看| 亚洲va中文字幕无码| 99re6在线精品视频免费播放| 亚洲欧好州第一的日产suv| 成人毛片18女人毛片免费96| 亚洲免费在线观看| 色老板亚洲视频免在线观| 亚洲精品无码成人片在线观看|