<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 閱讀(14373) 評論(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
    不知道在哪抄的文章,細節都不對  回復  更多評論
      


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


    網站導航:
     
    主站蜘蛛池模板: 国产亚洲精品激情都市| 女bbbbxxxx另类亚洲| 日韩在线视精品在亚洲| www.亚洲精品| 亚洲国产中文在线视频| 特级无码毛片免费视频| 无码一区二区三区免费视频| 亚洲人成网亚洲欧洲无码久久 | 一个人看的在线免费视频| 99久久免费国产香蕉麻豆| 红杏亚洲影院一区二区三区| 中文字幕在线观看免费视频| 亚洲精品成a人在线观看☆| 动漫黄网站免费永久在线观看| 亚洲国产成人精品电影| 亚洲中文字幕无码日韩| 一本色道久久综合亚洲精品蜜桃冫| 亚洲国色天香视频| 18禁止看的免费污网站| 亚洲熟妇AV日韩熟妇在线| 亚洲偷偷自拍高清| 一区二区三区免费电影| 精品在线免费视频| 亚洲日韩国产精品乱| 亚洲精品老司机在线观看| 精品免费tv久久久久久久| 99久久久国产精品免费牛牛| 免费视频爱爱太爽了| 中文字幕亚洲综合久久菠萝蜜 | 人人狠狠综合久久亚洲88| 亚洲综合精品伊人久久| 亚洲精品国产精品乱码不卡√| 久久精品女人天堂AV免费观看| 日韩精品无码免费专区午夜| 亚洲精品无码成人| 亚洲成人免费在线观看| 国产亚洲精品va在线| 国产亚洲玖玖玖在线观看| 三年片在线观看免费观看高清电影| 2022国内精品免费福利视频| 亚洲AV无码国产在丝袜线观看|