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


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


    網站導航:
     
    主站蜘蛛池模板: 亚洲国产一成久久精品国产成人综合 | 免费国产黄网站在线看| 久久精品无码一区二区三区免费| 亚洲视频一区在线观看| 亚洲美女免费视频| 亚洲理论片在线中文字幕| 777爽死你无码免费看一二区| 亚洲成在人天堂在线| 99久9在线|免费| 亚洲性一级理论片在线观看| 97公开免费视频| 亚洲国产成人精品电影| 在线a级毛片免费视频| 亚洲中文无码永久免| 国产免费69成人精品视频| 免费一级特黄特色大片| 伊人久久亚洲综合| 午夜免费啪视频在线观看 | 免费高清国产视频| 亚洲日本在线免费观看| 最新中文字幕免费视频| 久久综合亚洲色hezyo| 亚洲欧洲精品成人久久奇米网| 国产免费网站看v片在线| 亚洲视频在线观看网址| 女人被男人桶得好爽免费视频| 美国毛片亚洲社区在线观看| 免费大片黄手机在线观看| 久久九九久精品国产免费直播 | 亚洲性猛交xx乱| 国产一区二区视频免费| 三级毛片在线免费观看| 亚洲一卡2卡4卡5卡6卡在线99| 热99re久久免费视精品频软件| 人成电影网在线观看免费| 亚洲第一成年男人的天堂| 日韩伦理片电影在线免费观看| 久久国产精品免费一区| 亚洲香蕉久久一区二区三区四区| 亚洲国产精品日韩| 最近免费视频中文字幕大全|