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

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

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

    neverend的日志

    不記錄,終將被遺忘。 一萬(wàn)年太久,只爭(zhēng)朝夕。 他們用數(shù)字構(gòu)建了整個(gè)世界。

      BlogJava :: 首頁(yè) :: 聯(lián)系 :: 聚合  :: 管理
      62 Posts :: 1 Stories :: 17 Comments :: 0 Trackbacks
    本文主要參考官方文檔:http://www.openldap.org/doc/admin24/quickstart.html
    和網(wǎng)上流傳的教程: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 下載后點(diǎn)擊安裝即可。

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

    啟動(dòng)OpenLDAP:進(jìn)入cmd命令行,跳轉(zhuǎn)到OpenLDAP安裝目錄下,運(yùn)行:
    slapd -1
    用可以看到控制臺(tái)下打印一片信息,openldap 默認(rèn)是用的 Berkeley DB 數(shù)據(jù)庫(kù)存儲(chǔ)目錄數(shù)據(jù)的。

    再開(kāi)一個(gè)cmd,跳轉(zhuǎn)到OpenLDAP安裝目錄下。

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

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

    1.在安裝目錄下,新建文件example.ldif,輸入如下內(nèi)容:
    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
    注意:在文檔每一行的開(kāi)頭和結(jié)尾不要有空格,文檔最后最好也別回車。建議不要拷貝,用手敲這幾行。

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

    可能會(huì)要求輸入密碼:secret (配置文件里寫(xiě)的這個(gè)密碼)

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

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

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

    JNDI連接OpenLDAP
    Java的JNDI接口很強(qiáng)大,可以連接LDAP服務(wù)。
    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( 
    "認(rèn)證成功" );
            }
            
    catch (javax.naming.AuthenticationException e) {
            e.printStackTrace();
            System.out.println( 
    "認(rèn)證失敗" );
            }
            
    catch (Exception e) {
            System.out.println( 
    "認(rèn)證出錯(cuò):" );
            e.printStackTrace();
            }
    if (ctx != null ) {
            
    try {
            ctx.close();
            }
            
    catch (NamingException e) {
            
    //ignore
            }
            }

        }

    }

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

    2. OpenLDAP的語(yǔ)法,內(nèi)置ObjectClass

    LDAP學(xué)習(xí)

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

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

    attribute是name/value對(duì)形式,例如cn = liuxuanyu cn = mengke 一個(gè)name 可以對(duì)應(yīng)多個(gè)值

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

    與關(guān)系數(shù)據(jù)庫(kù)的比較:
    LDAP讀操作性能高,寫(xiě)操作性能不如DB,DB 讀寫(xiě)均可,讀操作性能不如LDAP
    數(shù)據(jù)結(jié)構(gòu)不同
    LDAP適合于存儲(chǔ)繼承結(jié)構(gòu)的數(shù)據(jù)


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

    LDAP只允許樹(shù)形結(jié)構(gòu)

    object identifier (OID) 例如:2.5.4.3 它是屬性類型的標(biāo)識(shí)符

    schema
    object class 定義了entry的類型
    有三種類型的object Class: 抽象類、輔助類和結(jié)構(gòu)化類。

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

    The subschema publishes the schema to clients

    inetOrgPerson is a contemporary definition for a person entry RFC 2798


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

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

    但由于JLDAP目前是訪問(wèn)NDS,因此,它不具備JNDI完全面向?qū)ο蟠鎯?chǔ)的能力,對(duì)于高級(jí)的LDAP應(yīng)用,JLDAP不是合適的選擇。


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

    Feedback

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

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

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

    # re: Windows下OpenLDAP的安裝與配置 2013-05-07 13:38 @小鬼
    你QQ多少 想請(qǐng)教你一些問(wèn)題@Clark
      回復(fù)  更多評(píng)論
      

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


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


    網(wǎng)站導(dǎo)航:
     
    主站蜘蛛池模板: 一级做性色a爰片久久毛片免费| 青青草国产免费久久久下载| 国产亚洲男人的天堂在线观看| 午夜亚洲国产理论秋霞| 国产一区在线观看免费| 精品免费人成视频app| 国产精品青草视频免费播放| 亚洲精品无码中文久久字幕| 久久国产亚洲高清观看| 亚洲人成网77777色在线播放| 四虎成人免费影院网址| 99在线精品视频观看免费| 色www永久免费| 一级毛片在播放免费| 亚洲av日韩综合一区二区三区| 亚洲欧洲日产国码二区首页| 亚洲AV永久无码精品成人| 亚洲成A人片在线观看中文| 女人18毛片水真多免费看| 五月亭亭免费高清在线| 亚欧免费无码aⅴ在线观看| 99热在线日韩精品免费| 一区二区三区免费视频观看| 黄页免费视频播放在线播放| 亚洲国产精品无码中文lv| 亚洲人成免费网站| 亚洲国产精品成人精品小说| 亚洲永久中文字幕在线| 亚洲黄色网址大全| 亚洲韩国在线一卡二卡| 亚洲最大的成网4438| 亚洲特级aaaaaa毛片| 亚洲午夜精品在线| 亚洲AV无码一区二区三区在线| 亚洲国产成人精品无码一区二区 | 亚洲男人的天堂在线| 亚洲国产精品乱码在线观看97| 亚洲嫩草影院在线观看| 97se亚洲国产综合自在线| 亚洲无吗在线视频| 亚洲国产欧美日韩精品一区二区三区|