Sun Java System Directory Server Enterprise Edition 6.0 管理指南

第 2 部分 目錄代理伺服器管理

第 16 章 目錄代理伺服器工具

Sun JavaTM System Directory Proxy Server 提供註冊與管理目錄代理伺服器實例的瀏覽器介面與指令行工具。此瀏覽器介面稱為目錄服務控制中心 (DSCC)。本章說明透過使用 DSCC 或指令行管理目錄代理伺服器所需的基本作業。

若要決定是使用 DSCC 還是指令行來執行特定作業,請參閱決定 DSCC 與指令行的使用時機

如需有關管理架構的更多資訊,請參閱「Sun Java System Directory Server Enterprise Edition 6.0 Deployment Planning Guide」中的「Directory Server Enterprise Edition Administration Model」

本章包含下列主題:

使用目錄代理伺服器的 DSCC

本節說明如何存取目錄代理伺服器的 DSCC。

Procedure存取目錄代理伺服器的 DSCC

  1. 請以與存取目錄伺服器相同的方式存取 DSCC。

    請參閱存取 DSCC

  2. 在 [代理伺服器] 標籤上按一下可檢視與管理目錄代理伺服器。

    下圖顯示了目錄代理伺服器的初始視窗。

    圖 16–1 目錄代理伺服器的初始 DSCC 視窗

    螢幕擷取顯示 DSCC 中已註冊之目錄代理伺服器的清單。

  3. 按一下目錄代理伺服器實例可檢視或管理該伺服器。


    備註 –

    如需有關使用 DSCC 的更多資訊,請參閱線上說明。


目錄代理伺服器的指令行工具

用於目錄代理伺服器的指令行工具稱為 dpadmdpconf。如需有關如何使用這些指令的相關資訊,請參閱 dpadm(1M)dpconf(1M) 線上手冊。

本節說明 dpadmdpconf 指令的位置。亦提供有關環境變數、指令間比較及於何處獲取使用這些指令之說明的資訊。

目錄代理伺服器指令的位置

依預設,目錄代理伺服器指令行工具位於下列目錄中:


install-path/dps6/bin

安裝路徑會隨作業系統而異。預設路徑與指令位置中列出了所有作業系統的安裝路徑。

設定 dpconf 的環境變數

dpconf 指令必須具有可使用環境變數預先設定的一些選項。如果使用指令時未指定選項,或未設定環境變數,則會使用預設設定。您可以配置下列選項的環境變數:

-D userDN

使用者連結 DN。環境變數:LDAP_ADMIN_USER。預設值:cn=Proxy Manager

-w password-file

使用者連結 DN 的密碼檔案。環境變數: LDAP_ADMIN_PWF。預設值:密碼的提示。

-h host

主機名稱或 IP 位址。環境變數:DIR_PROXY_HOST。預設值:localhost

-p LDAP-port

LDAP 連接埠號。環境變數:DIR_PROXY_PORT。預設值:如果伺服器實例以超級使用者身份執行,則為 389;如果伺服器實例以一般使用者身份執行,則為 1389

如需更多詳細資訊,請參閱 dpconf(1M) 線上手冊。

dpadmdpconf 的比較

下表顯示了 dpadmdpconf 指令的比較。

表 16–1 dpadmdpconf 指令的比較

 

dpadm 指令

dpconf 指令

用途 

管理目錄代理伺服器本機實例上的程序或檔案 

配置目錄代理伺服器的本機或遠端實例 

使用者 

作業系統使用者 

LDAP 使用者 

本機或遠端 

指令必須位於本機實例上,亦即必須在伺服器執行的主機上執行指令。

指令可以位於本機實例上,也可以從網路上的任何位置執行。

使用指令的範例 

建立目錄代理伺服器實例。 

啟動與停止目錄代理伺服器實例。 

管理憑證資料庫。 

修改目錄代理伺服器實例的配置。 

建立資料檢視。 

配置資料來源池中的負載平衡。 

伺服器狀態 

伺服器可以在執行中,也可以已停止。 

伺服器必須正在執行。

指令識別伺服器實例的方式 

經由指定實例路徑。實例路徑可以是相對路徑或絕對路徑。 

經由指定主機名稱或 IP 位址與連接埠號。 

指令使用 LDAP 連接埠 (-p) 或 LDAPS 安全連接埠 (-P)。如果指令行未指定連接埠號,則使用環境變數 PROXY_PORT。如果未設定環境變數,則使用預設連接埠。

使用 dpconf 設定多重值特性

某些目錄代理伺服器特性可具有多個值。指定這些值的語法如下:


$ dpconf set-container-prop -h host -p port container-name \
 property:value1 property:value2

例如,若要為名為 my-view 的 LDAP 資料檢視設定多個可寫入的屬性,請使用此指令:


$ dpconf set-ldap-data-view-prop -h host1 -p 1389 my-view \
 writable-attr:uid writable-attr:cn writable-attr:userPassword

如果增加或修改已包含值的多重值特性中任一值,則必須重設所有值。例如,在前一個範例中,如果要增加 sn 做為可寫入屬性,您必須在指令中包含所有其他可寫入屬性:


$ dpconf set-ldap-data-view-prop -h host1 -p 1389 my-view \
 writable-attr:uid writable-attr:cn writable-attr:userPassword writable-attr:sn

移除值時使用相同的規則。因此,若要從以上可寫入屬性的清單中移除 userPassword,請使用此指令:


$ dpconf set-ldap-data-view-prop -h host1 -p 1389 my-view \
 writable-attr:uid writable-attr:cn writable-attr:sn

取得有關使用 dpadmdpconf 的說明

如需有關如何使用 dpadmdpconf 指令的相關資訊,請參閱 dpadm(1M)dpconf(1M) 線上手冊。

第 17 章 目錄代理伺服器實例

本章說明如何管理目錄代理伺服器實例。本章包含下列主題:

建立與刪除目錄代理伺服器實例

建立目錄代理伺服器實例時,會在指定的路徑中建立實例必要的檔案與目錄。

Procedure建立目錄代理伺服器實例

您可以使用 DSCC 執行此作業。如需有關資訊,請參閱目錄服務控制中心介面與 DSCC 線上說明。

如果使用 DSCC 建立新的伺服器實例,可選擇複製現有伺服器的部分或所有伺服器配置設定。

  1. 建立目錄代理伺服器實例。


    $ dpadm create -p port instance-path
    

    例如,若要在目錄 /local/dps 中建立新的實例,請使用此指令:


    $ dpadm create -p 2389 /local/dps

    若要指定該實例的任何其他參數,請參閱 dpadm(1M) 線上手冊。

  2. 若需要則請鍵入密碼。

  3. 透過驗證實例狀態確認是否已建立實例。


    $ dpadm info instance-path
    
  4. (可選擇) 如果使用 Sun JavaTM Enterprise System 安裝程式或原生套裝軟體安裝了目錄代理伺服器,且作業系統提供服務管理解決方案,則您可將伺服器視為服務加以管理,如下表所示。

    作業系統 

    指令 

    Solaris 10 

    dpadm enable-service --type SMF instance-path

    Solaris 9 

    dpadm autostart instance-path

    Linux、HP-UX 

    dpadm autostart instance-path

    Windows 

    dpadm enable-service --type WIN_SERVICE instance-path

  5. (可選擇) 透過使用下列方法之一註冊伺服器實例:

    • 經由 URL https://localhost:6789 存取 DSCC,並登入瀏覽器介面。

    • 使用指令 dsccreg add-server

      如需詳細資訊,請參閱 dsccreg(1M) 線上手冊。

Procedure刪除目錄代理伺服器實例

您可以使用 DSCC 執行此作業。如需有關資訊,請參閱目錄服務控制中心介面與 DSCC 線上說明。

  1. (可選擇) 停止目錄代理伺服器實例。


    $ dpadm stop instance-path
    

    如不停止實例,刪除指令會自動停止實例。但是,如果已在服務管理解決方案中啟用實例,則必須手動停止實例。

  2. (可選擇) 如果之前已使用 DSCC 來管理伺服器,請使用指令行取消註冊伺服器。


    $ dsccreg remove-server /local/dps
    Enter DSCC administrator's password:
    /local/dps is an instance of DPS
    Enter password of "cn=Proxy Manager" for /local/dps:
    Unregistering /local/dps from DSCC on localhost.
    Connecting to /local/dps
    Disabling DSCC access to /local/dps

    如需詳細資訊,請參閱 dsccreg(1M) 線上手冊。

  3. (可選擇) 如果之前是在服務管理解決方案中啟用伺服器實例,則需停止將伺服器視為服務進行管理。

    作業系統 

    指令 

    Solaris 10 

    dpadm disable-service --type SMF instance-path

    Solaris 9 

    dpadm autostart --off instance-path

    Linux、HP-UX 

    dpadm autostart --off instance-path

    Windows 

    dpadm disable-service --type WIN_SERVICE instance-path

  4. 刪除實例。


    $ dpadm delete instance-path
    

尋找目錄代理伺服器實例的狀態

本程序說明如何尋找目錄代理伺服器實例的狀態。

Procedure尋找目錄代理伺服器實例的狀態

您可以使用 DSCC 執行此作業。如需有關資訊,請參閱目錄服務控制中心介面與 DSCC 線上說明。

    尋找目錄代理伺服器實例的狀態。


    $ dpadm info instance-path
    

啟動、停止與重新啟動目錄代理伺服器實例

本節提供有關從指令行啟動、停止與重新啟動目錄代理伺服器的資訊。

Procedure啟動與停止目錄代理伺服器

您可以使用 DSCC 執行此作業。如需有關資訊,請參閱目錄服務控制中心介面與 DSCC 線上說明。

    若要啟動或停止目錄代理伺服器,請執行下列作業其中之一。

    • 若要啟動目錄代理伺服器,請鍵入:


      $ dpadm start instance-path
      

      例如,若要啟動 /local/dps 中的實例,請使用此指令:


      $ dpadm start /local/dps
    • 若要停止目錄代理伺服器,請鍵入:


      $ dpadm stop instance-path
      

      例如:


      $ dpadm stop /local/dps

Procedure檢視是否需要重新啟動目錄代理伺服器實例

有時,需要重新啟動伺服器才能使配置變更生效。使用此程序檢查是否需要在變更某項配置後重新啟動目錄代理伺服器實例。

    檢視是否需要重新啟動伺服器。


    $ dpconf get-server-prop -h host -p port is-restart-required
    • 如果指令傳回 true,即必須重新啟動目錄代理伺服器實例。

    • 如果指令傳回 false,則無需重新啟動目錄代理伺服器實例。

Procedure重新啟動目錄代理伺服器

您可以使用 DSCC 執行此作業。如需有關資訊,請參閱目錄服務控制中心介面與 DSCC 線上說明。

    重新啟動目錄代理伺服器。


    $ dpadm restart instance-path
    

    例如,若要重新啟動 /local/dps 中的實例,請使用此指令:


    $ dpadm restart /local/dps

第 18 章 目錄代理伺服器配置

本章說明如何配置目錄代理伺服器實例。本章中的程序使用 dpadmdpconf 指令。如需有關這些指令的資訊,請參閱 dpadm(1M)dpconf(1M) 線上手冊。

本章包含下列主題:

修改目錄代理伺服器的配置

本節說明如何修改目錄代理伺服器的配置。

Procedure修改目錄代理伺服器的配置

您可以使用 DSCC 執行此作業。如需有關資訊,請參閱目錄服務控制中心介面與 DSCC 線上說明。

  1. 尋找目錄代理伺服器目前的配置。


    $ dpconf get-server-prop -h host -p port
    

    或者,檢視一或多個配置特性目前的設定。


    $ dpconf get-server-prop -h host -p port property-name ...

    例如,透過執行此指令找出是否允許未認證的作業:


    $ dpconf get-server-prop -h host -p port allow-unauthenticated-operations
    allow-unauthenticated-operations  :  true
  2. 變更一或多個配置參數。


    $ dpconf set-server-prop -h host -p port property:value ...

    例如,透過執行此指令禁止未認證的作業:


    $ dpconf set-server-prop -h host -p port allow-unauthenticated-operations:false

    如果嘗試執行非法的變更,便無法完成變更。例如,如果將 allow-unauthenticated-operations 參數設為 f 而非 false,會產生下列錯誤:


    $ dpconf set-server-prop -h host -p port allow-unauthenticated-operations:f
    The value "f" is not a valid value for the property "allow-unauthenticated-operations".
    Allowed property values: BOOLEAN
    The "set-server-prop" operation failed.
  3. 請視需要重新啟動目錄代理伺服器實例以使變更生效。

    如需有關重新啟動目錄代理伺服器的資訊,請參閱重新啟動目錄代理伺服器

備份與復原目錄代理伺服器實例

當您使用 dpadm 備份目錄代理伺服器時,會備份配置檔案與伺服器憑證。如果已執行目錄代理伺服器虛擬 ACI,也會備份 ACI。

目錄代理伺服器在每次伺服器成功啟動時,自動備份 conf.ldif 檔案。

Procedure備份目錄代理伺服器實例

您可以使用 DSCC 執行此作業。如需有關資訊,請參閱目錄服務控制中心介面與 DSCC 線上說明。

  1. 停止目錄代理伺服器實例。


    $ dpadm stop instance-path
    
  2. 備份目錄代理伺服器實例。


    $ dpadm backup instance-path archive-dir
    

    archive-dir 目錄由 backup 指令建立,並且不可以在執行指令前存在。此目錄包含每個配置檔案與憑證的備份。

Procedure復原目錄代理伺服器實例

您可以使用 DSCC 執行此作業。如需有關資訊,請參閱目錄服務控制中心介面與 DSCC 線上說明。

  1. 停止目錄代理伺服器實例。


    $ dpadm stop instance-path
    
  2. 復原目錄代理伺服器實例。


    $ dpadm restore instance-path archive-dir
    
    • 如果存在實例路徑,則以無訊息方式執行復原作業。archive-dir 目錄中的配置檔案與憑證會取代 instance-path 目錄中的配置檔案與憑證。

    • 如果不存在實例路徑,復原作業會失敗。

配置代理伺服器管理員

代理伺服器管理員是授權管理員,類似 UNIX® 系統上的超級使用者。在建立目錄代理伺服器實例時定義代理伺服器管理員項目。代理伺服器管理員的預設 DN 為 cn=Proxy Manager

您可以檢視並變更代理伺服器管理員 DN 與密碼,如下列程序所示。

Procedure配置代理伺服器管理員

您可以使用 DSCC 執行此作業。如需有關資訊,請參閱目錄服務控制中心介面與 DSCC 線上說明。

  1. 尋找代理伺服器管理員的配置。


    $ dpconf get-server-prop -h host -p port configuration-manager-bind-dn configuration-manager-bind-pwd
    configuration-manager-bind-dn   :  cn=proxy manager
    configuration-manager-bind-pwd  :  {3DES}U77v39WX8MDpcWVrueetB0lfJlBc6/5n

    代理伺服器管理員的預設值為 cn=proxy manager。傳回配置管理員密碼的雜湊值。

  2. 變更代理伺服器管理員的 DN。


    $ dpconf set-server-prop -h host -p port configuration-manager-bind-dn:bindDN
    
  3. 建立包含代理伺服器管理員密碼的檔案,並設定指向該檔案的特性。


    $ dpconf set-server-prop -h host -p port configuration-manager-bind-pwd-file:filename
    

要求重新啟動伺服器的配置變更

目錄代理伺服器及其實體的大部分配置變更可在線上完成。某些變更需要重新啟動伺服器才會生效。如果變更下列清單中任何特性的配置,則必須重新啟動伺服器:

bind-dn
client-cred-mode
db-name
db-pwd
db-url
db-user
distribution-algorithm
ldap-address
ldap-port
ldaps-port
lexicographic-attrs
lexicographic-lower-bound
lexicographic-upper-bound
listen-address
listen-port
load-balancing-algorithm
num-bind-init
num-read-init
num-write-init
number-of-search-threads
number-of-threads
number-of-worker-threads
numeric-attrs
numeric-default-data-view
numeric-lower-bound
numeric-upper-bound
pattern-matching-base-object-search-filter
pattern-matching-dn-regular-expression
pattern-matching-one-level-search-filter
pattern-matching-subtree-search-filter
replication-role
ssl-policy
use-external-schema

特性的 rwsrwd 關鍵字表示該特性的變更是否需要重新啟動伺服器。

若要確定對特性的變更是否需要重新啟動伺服器,請執行下列指令:

$ dpconf help-properties | grep property-name

例如,若要確定變更 LDAP 資料來源的連結 DN 是否需要重新啟動伺服器,請執行下列指令:

$ dpconf help-properties | grep bind-dn
connection-handler   	bind-dn-filters        rwd  STRING | any
This property specifies a set of regular expressions. The bind DN 
of a client must match at least one regular expression in order for 
the connection to be accepted by the connection handler. (Default: any)
ldap-data-source      bind-dn               rws  DN | ""
This property specifies the DN to use when binding to the LDAP data 
source. (Default: undefined)

若要確定在某項配置變更之後是否必須重新啟動伺服器,請執行下列指令:

$ dpconf get-server-prop -h host -p port is-restart-required

使用目錄代理伺服器存取目錄伺服器的配置項目

目錄代理伺服器的配置項目位於 cn=config 中。依預設,使用目錄代理伺服器存取配置項目時,會存取目錄代理伺服器的配置項目。

若要存取目錄伺服器的配置項目,請使用目錄伺服器而非目錄代理伺服器。如需有關如何配置目錄伺服器的資訊,請參閱第 3 章, 目錄伺服器配置


注意 – 注意 –

如果重新配置目錄代理伺服器存取目錄伺服器的配置項目,則很可能破壞目錄代理伺服器的管理架構。


若要使用目錄代理伺服器存取目錄伺服器的配置項目,請採取特殊步驟以確保不破壞目錄代理伺服器的管理架構。本節說明如何透過使用目錄代理伺服器存取目錄伺服器的配置項目。

Procedure透過使用目錄代理伺服器存取目錄伺服器的配置項目

  1. 建立與配置 LDAP 資料來源中所述,建立一或多個資料來源。

  2. 建立與配置 LDAP 資料來源池中所述,建立 LDAP 資料來源池。

  3. 將 LDAP 資料來源附加至資料來源池中所述,將一或多個資料來源附加至資料來源池。

    • 若要顯示某個特定資料來源的配置項目,請僅附加一個 LDAP 資料來源至 LDAP 資料來源池。


      $ dpconf attach-ldap-data-source -h host -p port pool-name data-source-name
      

      執行此步驟之後,用戶端可以存取連線至目錄代理伺服器之資料來源的配置項目。

    • 若要顯示任何資料來源的配置項目,請附加多個 LDAP 資料來源至 LDAP 資料來源池。


      $ dpconf attach-ldap-data-source -h host -p port pool-name data-source-name \
       data-source-name ...

      執行此步驟之後,用戶端可以存取連線至目錄代理伺服器的某一資料來源的配置項目。但是,用戶端無法得知該配置項目所屬的資料來源。

  4. 建立 LDAP 資料檢視以顯示 cn=config


    $ dpconf create-ldap-data-view -h host -p port view-name pool-name cn=dir-config

第 19 章 目錄代理伺服器憑證

本章說明如何配置目錄代理伺服器憑證。如需有關配置目錄伺服器憑證的資訊,請參閱管理憑證

本章中的程序使用 dpadmdpconf 指令。如需有關這些指令的資訊,請參閱 dpadm(1M)dpconf(1M) 線上手冊。

本章包含下列主題:

預設的自行簽署憑證

建立目錄代理伺服器實例時,其具有預設的自行簽署憑證。自行簽署的憑證是公開與私密金鑰對,其中公開金鑰是由目錄代理伺服器自行簽署。

Procedure檢視預設的自行簽署憑證

您可以使用 DSCC 執行此作業。如需有關資訊,請參閱目錄服務控制中心介面與 DSCC 線上說明。

    檢視預設的自行簽署憑證。


    $ dpadm show-cert instance-path defaultservercert

建立、請求與安裝目錄代理伺服器憑證

若要在目錄代理伺服器上執行安全傳輸層 (SSL),必須使用自行簽署的憑證或公開金鑰基礎架構 (PKI) 解決方案。

PKI 解決方案需要外部憑證授權單位 (CA)。若使用 PKI 解決方案,您需要包含公開金鑰與私密金鑰的 CA 簽署伺服器憑證。此憑證特定於單一目錄代理伺服器實例。您還需要包含公開金鑰之可信任的 CA 憑證。可信任的 CA 憑證確保來自 CA 的所有伺服器憑證皆是可信任的。此憑證有時稱為 CA 根金鑰或根憑證。

如需有關如何建立非預設自行簽署憑證以及如何請求與安裝 CA 簽署憑證的資訊,請參閱下列程序。

Procedure建立目錄代理伺服器的非預設自行簽署憑證

建立目錄代理伺服器實例時,系統自動提供預設的自行簽署憑證。若要以非預設設定值建立自行簽署的憑證,請使用此程序。

該程序會建立伺服器憑證的公開與私密金鑰對,其中公開金鑰是由目錄代理伺服器簽署。自行簽署的憑證有效期限為三個月。

您可以使用 DSCC 執行此作業。如需有關資訊,請參閱目錄服務控制中心介面與 DSCC 線上說明。

    若要建立目錄代理伺服器的非預設自行簽署憑證,請鍵入:


    $ dpadm add-selfsign-cert instance-path cert-alias
    

    其中 cert-alias 是自行簽署憑證的名稱。

    例如,您可依下列方式建立名為 my-self-signed-cert 的憑證:


    $ dpadm add-selfsign-cert /local/dps my-self-signed-cert

    如需所有指令選項的說明,請參閱 dpadm(1M) 線上手冊,或在指令行中鍵入 dpadm add-selfsign-cert --help

Procedure請求目錄代理伺服器的 CA 簽署憑證

自行簽署的憑證適用於測試目的。但是,在生產環境中,使用可信任的憑證授權單位 (CA) 憑證更為安全。

您可以使用 DSCC 執行此作業。如需有關資訊,請參閱目錄服務控制中心介面與 DSCC 線上說明。

  1. 請求 CA 簽署的伺服器憑證。


    $ dpadm request-cert instance-path cert-alias
    

    其中 cert-alias 是請求的憑證名稱。憑證授權單位可能需要指令的所有選項以識別伺服器。如需所有指令選項的說明,請參閱 dpadm(1M) 線上手冊。

    取得 CA 憑證的程序會因使用的 CA 而異。有些商業 CA 提供網站供您下載憑證。其他 CA 則以電子郵件傳送憑證。

    例如,您可依下列方式請求名為 my-CA-signed-cert 的憑證:


    $ dpadm request-cert -S cn=my-request,o=test /local/dps my-CA-signed-cert
    -----BEGIN NEW CERTIFICATE REQUEST-----
    MIIBYDCBygIBADAhMQ0wCwYDVQQDEwRnZXJpMRAwDgYDVQQDEwdteWNlcnQ0MIGfMA0GCSqGSIb3
    DQEBAQUAA4GNADCBiQKBgQC3v9ubG468wnjBDAMbRrEkmFDTQzT+LO30D/ALLXOiElVsHrtRyWhJ
    PG9cURI9uwqs15crxCpJvho1kt3SB9+yMB8Ql+CKnCQDHlNAfnn30MjFHShv/sAuEygFsN+Ekci5
    W1jySYE2rzE0qKVxWLSILFo1UFRVRsUnORTX/Nas7QIDAQABoAAwDQYJKoZIhvcNAQEEBQADgYEA
    fcQMnZNLpPobiX1xy1ROefPOhksVz8didY8Q2fjjaHG5lajMsqOROzubsuQ9Xh4ohT8kIA6xcBNZ
    g8FRNIRAHCtDXKOdOm3CpJ8da+YGI/ttSawIeNAKU1DApF9zMb7c2lS4yEfWmreoQdXIC9YeKtF6
    zwbn2EmIpjHzETtS5Nk=
    -----END NEW CERTIFICATE REQUEST-----

    透過使用 dpadm request-cert 指令請求憑證時,憑證請求是安全電子郵件 (PEM) 格式的 PKCS #10 憑證請求。PEM 是 RFC 1421 到 1424 所指定的格式。如需詳細資訊,請參閱 http://www.ietf.org/rfc/rfc1421.txt。PEM 格式表示 ASCII 格式的 base64 編碼憑證請求。

    請求 CA 簽署的憑證時,系統會建立臨時的自行簽署憑證。當您從 CA 接收並安裝 CA 簽署憑證之後,新的憑證會取代臨時的自行簽署憑證。

  2. 根據 CA 程序,將憑證請求傳送到 CA。

    傳送請求之後,必須等候 CA 回應以提供憑證。請求的回應時間各異。例如,如果是公司內部的 CA,回應時間可能很短。但如果是公司外部的 CA,可能需要數週才會回應您的請求。

  3. 儲存從 CA 收到的憑證。

    將憑證儲存在文字檔中,並在安全的位置備份憑證。

Procedure安裝目錄代理伺服器的 CA 簽署伺服器憑證

若要信任 CA 簽署的伺服器憑證,必須在目錄代理伺服器實例上安裝該憑證。此程序會將 CA 憑證的公開金鑰安裝至目錄代理伺服器的憑證資料庫中。

您可以使用 DSCC 執行此作業。如需有關資訊,請參閱目錄服務控制中心介面與 DSCC 線上說明。

  1. 請檢查是否已經安裝此 CA 可信任的 CA 憑證。

    若要執行此作業,請如列出 CA 憑證中所述列出所有安裝的 CA 憑證。

  2. 如果尚未安裝可信任的 CA 憑證,請將該憑證增加至目錄代理伺服器實例的憑證資料庫中。


    $ dpadm add-cert instance-path cert-alias cert-file
    

    其中 cert-alias 是可信任的 CA 憑證名稱,而 cert-file 是包含可信任 CA 憑證之檔案的名稱。

  3. 將 CA 簽署的伺服器憑證安裝至憑證資料庫中。


    $ dpadm add-cert instance-path cert-alias cert-file
    

    其中 cert-alias 是 CA 簽署的伺服器憑證名稱,而 cert-file 是包含 CA 簽署的伺服器憑證之檔案的名稱。請注意,此 cert-alias 必須與憑證請求中所用的 cert-alias 相同。

    例如,您可依下列方式將名為 CA-cert 的 CA 簽署伺服器憑證增加至 /local/dps 中的憑證資料庫:


    $ dpadm add-cert /local/dps CA-cert /local/safeplace/ca-cert-file.ascii

更新過期的目錄代理伺服器 CA 簽署憑證

本節說明如何更新過期的 CA 簽署伺服器憑證。

Procedure更新過期的目錄代理伺服器 CA 簽署伺服器憑證

您可以使用 DSCC 執行此作業。如需有關資訊,請參閱目錄服務控制中心介面與 DSCC 線上說明。

  1. 從 CA 取得更新憑證。

  2. 在目錄代理伺服器實例上安裝憑證。


    $ dpadm renew-cert instance-path cert-alias cert-file
    

    其中 cert-alias 是新憑證的名稱,而 cert-file 是包含該憑證之檔案的名稱。如需所有指令選項的說明,請參閱 dpadm(1M) 線上手冊。

列出憑證

如需有關如何列出伺服器與 CA 憑證的資訊,請參閱下列程序。

Procedure列出伺服器憑證

此程序列出目錄代理伺服器實例上已安裝的所有憑證。

您可以使用 DSCC 執行此作業。如需有關資訊,請參閱目錄服務控制中心介面與 DSCC 線上說明。

    列出目錄代理伺服器實例憑證資料庫中的伺服器憑證。


    $ dpadm list-certs instance-path
    

    依預設,目錄代理伺服器實例包含名為 defaultservercert 的伺服器憑證。文字 Same as issuer 表示預設憑證為自行簽署的伺服器憑證。

    例如:


    $ dpadm list-certs /local/dps
    Alias             Valid from       Expires on       Self-signed? Issued by          Issued to
    ----------------- ---------------- ---------------- ------------ ------------------ --------------
    defaultservercert 2006/06/01 04:15 2008/05/31 04:15 y            CN=myserver:myport Same as issuer
    1 certificate found.

Procedure列出 CA 憑證

此程序列出目錄代理伺服器實例上已安裝的 CA 憑證。

您可以使用 DSCC 執行此作業。如需有關資訊,請參閱目錄服務控制中心介面與 DSCC 線上說明。

    列出目錄代理伺服器實例憑證資料庫中的 CA 憑證。


    $ dpadm list-certs -C instance-path
    

    例如:


    $ dpadm list-certs -C /local/dps
    Alias   Valid from       Expires on        Built-in  Issued by    Issued to
    ------  ----------       ----------------  --------- ---------    ---------
    CAcert1 1999/06/21 06:00 2020/06/21 06:00  y         CN=company1, O=company2
    ...

將憑證從後端 LDAP 伺服器增加至目錄代理伺服器憑證資料庫

本節說明如何將憑證從後端 LDAP 伺服器增加至目錄代理伺服器憑證資料庫。

Procedure將憑證從後端目錄伺服器增加至目錄代理伺服器憑證資料庫

您可以使用 DSCC 執行此作業。如需有關資訊,請參閱目錄服務控制中心介面與 DSCC 線上說明。

  1. 使用以下指令語法以 PEM 格式顯示後端目錄伺服器的憑證:


    dsadm show-cert -F ascii instance-path [cert-alias]

    如果未指定 cert-alias,則顯示預設的伺服器憑證。如需所有指令選項的說明,請參閱 dsadm(1M) 線上手冊。

    例如,預設的自行簽署伺服器憑證顯示為:


    $ dsadm show-cert -F ascii /local/ds defaultCert
    -----BEGIN CERTIFICATE-----
    MIICJjCCAY+gAwIBAgIFAIKL36kwDQYJKoZIhvcNAQEEBQAwVzEZMBcGA1UEChMQ
    U3VuIE1pY3Jvc3lzdGVtczEZMBcGA1UEAxMQRGlyZWN0b3J5IFNlcnZlcjENMAsG
    A1UEAxMEMjAxMTEQMA4GA1UEAxMHY29uZHlsZTAeFw0wNjA1MjIxMTQxNTVaFw0w
    NjA4MjIxMTQxNTVaMFcxGTAXBgNVBAoTEFN1biBNaWNyb3N5c3RlbXMxGTAXBgNV
    BAMTEERpcmVjdG9yeSBTZXJ2ZXIxDTALBgNVBAMTBDIwMTExEDAOBgNVBAMTB2Nv
    bmR5bGUwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAK9U3ry3sJmEzwQY8CGd
    7S2MTZuBedo03Vea1lfDtD08WIsdDMzhHplTdeHAkWWNc8g2PDcEFXeWp9UXFMuD
    Pcia7t8HtFkm73VmlriWhMd8nn3l2vkxhsPK2LHFEeOIUDR9LBBiMiEeLkjdoEhE
    VLMSoYKqKI+Aa5grINdmtFzBAgMBAAEwDQYJKoZIhvcNAQEEBQADgYEAF4eDbSd7
    qy2l10dIogT+rnXZ362gLTlQFCblhbGpmmptbegUdL1ITGv/62q1isPV2rW7CkjM
    Cqb0fo3k5UkKKvW+JbMowpQeAPnlgpX612HuDr1tldnKV4eyU7gpG31t/cpACALQ
    7OPi1A7oVb2Z8OJKfEJHkp3txBSsiI2gTkk=
    -----END CERTIFICATE-----
  2. 儲存憑證。

    以文字檔儲存憑證,並在安全的位置備份憑證。

  3. 將憑證從後端 LDAP 伺服器增加至目錄代理伺服器實例的憑證資料庫。


    $ dpadm add-cert instance-path cert-alias cert-file
    

    其中 cert-alias 是新憑證的名稱,而 cert-file 是包含該憑證之檔案的名稱。

    例如,您可依下列方式增加憑證 defaultCert


    $ dpadm add-cert /local/dps defaultCert /local/safeplace/defaultCert.ascii

匯出憑證至後端 LDAP 伺服器

後端 LDAP 伺服器可能需要目錄代理伺服器的憑證。本節說明如何配置目錄代理伺服器以匯出憑證至後端 LDAP 伺服器。

Procedure配置目錄代理伺服器以匯出用戶端憑證至後端 LDAP 伺服器

  1. 指定要傳送至後端 LDAP 伺服器的憑證。


    $ dpconf set-server-prop -h host -p port ssl-client-cert-alias:cert-alias
    

    其中 cert-alias 是憑證的名稱。如需所有指令選項的說明,請參閱 dpconf(1M) 線上手冊。

  2. 將憑證內容複製到檔案中。


    $ dpadm show-cert -F ascii -o filename instance-path cert-alias
    
  3. 增加 CA 簽署的伺服器憑證與可信任的 CA 憑證中所述,將憑證增加至後端 LDAP 伺服器的憑證資料庫中。

接下來的步驟

配置後端 LDAP 伺服器以執行用戶端認證。如需有關如何執行目錄伺服器此項作業的資訊,請參閱配置用戶端認證

另請參閱

如需有關配置用戶端與目錄代理伺服器之間基於憑證之認證的資訊,請參閱配置基於憑證的認證

備份與復原目錄代理伺服器憑證資料庫

使用 dpadm 備份目錄代理伺服器時,即會備份伺服器憑證。備份的憑證儲存在 archive-path/alias 目錄中。

如需有關如何備份與復原目錄代理伺服器的資訊,請參閱備份與復原目錄代理伺服器實例

提示輸入存取憑證資料庫的密碼

依預設,憑證資料庫的密碼由內部管理。因此,您無須鍵入憑證密碼或指定密碼檔案。當憑證資料庫透過儲存的密碼由內部管理時,密碼儲存在安全的環境中。

若要讓憑證更安全且有更多控制權,請配置目錄代理伺服器提示在指令行中輸入密碼。然後,系統提示您輸入除 autostartbackupdisable-serviceenable-serviceinforestorestop 之外所有 dpadm 子指令的密碼。

如需有關配置目錄代理伺服器提示或不提示輸入密碼的資訊,請參閱下列程序。

Procedure提示輸入存取憑證資料庫的密碼

您可以使用 DSCC 執行此作業。如需有關資訊,請參閱目錄服務控制中心介面與 DSCC 線上說明。

  1. 停止伺服器。


    $ dpadm stop instance-path
    Directory Proxy Server instance 'instance-path' stopped
  2. 將密碼提示旗標設為 on,然後鍵入並確認憑證資料庫密碼。


    $ dpadm set-flags instance-path cert-pwd-prompt=on
    Choose the certificate database password:
    Confirm the certificate database password:
  3. 啟動伺服器,然後鍵入憑證資料庫密碼。


    $ dpadm start instance-path
    Enter the certificate database password:

Procedure停用存取憑證資料庫的密碼提示

您可以使用 DSCC 執行此作業。如需有關資訊,請參閱目錄服務控制中心介面與 DSCC 線上說明。

  1. 停止伺服器。


    $ dpadm stop instance-path
    Directory Proxy Server instance 'instance-path' stopped
  2. 將密碼提示旗標設為 off,然後鍵入現有的密碼。


    $ dpadm set-flags instance-path cert-pwd-prompt=off
    Enter the old password:
  3. 啟動伺服器。


    $ dpadm start instance-path
    

第 20 章 LDAP 資料來源與資料來源池

本章說明如何使用 dpconf 指令建立和配置 LDAP 資料來源與資料來源池。如需有關這些主題的參考資訊,請參閱「Sun Java System Directory Server Enterprise Edition 6.0 Reference」中的「LDAP Data Sources」

本章包含下列主題:

建立與配置 LDAP 資料來源

如需有關如何建立與配置 LDAP 資料來源的資訊,請參閱下列程序。

Procedure建立 LDAP 資料來源

您可以使用 DSCC 執行此作業。如需有關資訊,請參閱目錄服務控制中心介面與 DSCC 線上說明。

  1. 建立資料來源。


    $ dpconf create-ldap-data-source -h host -p port source-name host:port
    

    在此指令中,source-name 是指定給新資料來源的名稱。hostport 是指 LDAP 伺服器在其上執行的主機與連接埠。請注意,資料來源依預設不使用 SSL。

    如果由 IP V6 位址指定主機,建立資料來源時必須使用 IP V6 參照。例如,如果目錄代理伺服器連結至連接埠 2389 上 IP V6 位址為 fe80::209:3dff:fe00:8c93 的主機,請使用下列指令建立資料來源:


    $ dpconf create-ldap-data-source -h host1 -p 1389 ipv6-host \
     [fe80::209:3dff:fe00:8c93]:2389

    如果使用主控台建立資料來源,則必須指定實際 IP V6 位址 (不包含方括號)。

    如需有關如何修改 LDAP 資料來源特性的資訊,請參閱配置 LDAP 資料來源

  2. (可選擇) 檢視資料來源清單。


    $ dpconf list-ldap-data-sources -h host -p port
    

Procedure配置 LDAP 資料來源

本程序配置目錄代理伺服器與 LDAP 資料來源之間的授權,以及目錄代理伺服器如何監視 LDAP 資料來源。

您可以使用 DSCC 執行此作業。如需有關資訊,請參閱目錄服務控制中心介面與 DSCC 線上說明。

  1. 透過使用此指令語法檢視資料來源的特性:


    dpconf get-ldap-data-source-prop -h host -p port [-M unit] [-Z unit] source-name [property...]

    在此指令中,-M-Z 是指用以顯示資料的單位。M 選項指定時間單位。-M 值可以是 Mwdhmsms,分別表示月、週、天、小時、分、秒或毫秒。-Z 選項指定資料大小單位。-Z 值可以是 TGMkb,分別表示兆位元組 (TB)、十億位元組 (GB)、百萬位元組 (MB)、千位元組 (KB) 或位元組。

    如不指定某個特性,則顯示所有特性。LDAP 資料來源的預設特性如下:


    bind-dn                        :  -
    bind-pwd                       :  -
    client-cred-mode               :  use-client-identity
    connect-timeout                :  10s
    description                    :  -
    is-enabled                     :  false
    is-read-only                   :  true
    ldap-address                   :  host
    ldap-port                      :  port
    ldaps-port                     :  ldaps
    monitoring-bind-timeout        :  5s
    monitoring-entry-dn            :  ""
    monitoring-entry-timeout       :  5s
    monitoring-inactivity-timeout  :  2m
    monitoring-interval            :  30s
    monitoring-mode                :  proactive
    monitoring-search-filter       :  (|(objectClass=*)(objectClass=ldapSubEntry))
    num-bind-incr                  :  10
    num-bind-init                  :  10
    num-bind-limit                 :  1024
    num-read-incr                  :  10
    num-read-init                  :  10
    num-read-limit                 :  1024
    num-write-incr                 :  10
    num-write-init                 :  10
    num-write-limit                :  1024
    proxied-auth-check-timeout     :  1.8s
    proxied-auth-use-v1            :  false
    ssl-policy                     :  never
    use-tcp-no-delay               :  true
  2. 啟用資料來源。


    $ dpconf set-ldap-data-source-prop -h host -p port source-name is-enabled:true
  3. 若要變更預設設定,請配置步驟 1 中列出的所有特性。


    $ dpconf set-ldap-data-source-prop -h host -p port source-name property:value
    

    例如,若要修改資料來源的項目,請將資料來源配置為允許寫入作業。


    $ dpconf set-ldap-data-source-prop -h host -p port source-name is-read-only:false

    若要尋找子指令中所用特性的相關資訊,請執行此指令:


    $ dpconf help-properties ldap-data-source property
    

    若要列出資料來源的主要特性,請搭配 list 子指令使用詳細選項 -v


    $ dpconf list-ldap-data-sources -v
    Name         is-enabled  ldap-address  ldap-port  ldaps-port  description
    -----------  ----------  ------------  ---------  ----------  -----------
    datasource0  true        myHost        myPort     ldaps       -
    datasource1  true        myHost        myPort     ldaps       -
  4. 請視需要重新啟動目錄代理伺服器實例以使變更生效。

    如需有關重新啟動目錄代理伺服器的資訊,請參閱重新啟動目錄代理伺服器。如需要求重新啟動伺服器之配置變更的清單,請參閱要求重新啟動伺服器的配置變更

建立與配置 LDAP 資料來源池

如需有關如何建立與配置資料來源池的資訊,請參閱下列程序:

Procedure建立 LDAP 資料來源池

您可以使用 DSCC 執行此作業。如需有關資訊,請參閱目錄服務控制中心介面與 DSCC 線上說明。

  1. 建立一或多個資料來源池。


    $ dpconf create-ldap-data-source-pool -h host -p port pool-name
    

    您可以在第一個 pool-name 之後指定其他資料來源池。如需有關如何修改資料來源池特性的資訊,請參閱配置 LDAP 資料來源池

  2. (可選擇) 檢視資料來源池清單。


    $ dpconf list-ldap-data-source-pools -h host -p port
    

Procedure配置 LDAP 資料來源池

您可以使用 DSCC 執行此作業。如需有關資訊,請參閱目錄服務控制中心介面與 DSCC 線上說明。

  1. 使用此指令語法檢視資料來源池的特性:


    dpconf get-ldap-data-source-pool-prop -h host -p port [-M unit] [-Z unit] \
     pool-name [property...]

    在此指令中,-M-Z 是指顯示資料的單位。M 選項指定時間單位。-M 的值可以是 Mwdhmsms,分別表示月、週、天、小時、分、秒或毫秒。-Z 選項指定資料大小單位。-Z 的值可以是 TGMkb,分別表示兆位元組 (TB)、十億位元組 (GB)、百萬位元組 (MB)、千位元組 (KB) 或位元組。

    如不指定某個特性,則會顯示所有特性。LDAP 資料來源池的預設特性如下:


    client-affinity-policy    :  write-affinity-after-write  
    client-affinity-timeout   :  20s  
    description               :  -  
    enable-client-affinity    :  false  
    load-balancing-algorithm  :  proportional  
  2. 配置步驟 1 中所列的特性。


    $ dpconf set-ldap-data-source-pool-prop -h host -p port pool-name \
     property:value
    

    如需有關如何配置負載平衡與用戶端相似性的資料來源池特性的資訊,請參閱第 22 章, 目錄代理伺服器負載平衡與用戶端相似性

將 LDAP 資料來源附加至資料來源池

附加至資料來源池的資料來源稱為附加資料來源。附加資料來源的特性決定資料來源池的負載平衡配置。當您配置附加資料來源的加權時,請考量資料來源池中所有附加資料來源的加權。請確保所有加權可依需求來搭配運作。如需有關如何配置負載平衡加權的資訊,請參閱配置負載平衡加權

Procedure將 LDAP 資料來源附加至資料來源池

您可以使用 DSCC 執行此作業。如需有關資訊,請參閱目錄服務控制中心介面與 DSCC 線上說明。

  1. 將一或多個資料來源附加至資料來源池。


    $ dpconf attach-ldap-data-source -h host -p port pool-name \
     source-name [source-name ...]
  2. (可選擇) 檢視指定資料來源池的附加資料來源清單。


    $ dpconf list-attached-ldap-data-sources -h host -p port -E pool-name
    

    在此指令中,-E 為可選擇的,用以將顯示輸出修改為每行顯示一個特性值。

  3. (可選擇) 檢視指定資料來源池的附加資料來源之主要特性。


    $ dpconf list-attached-ldap-data-sources -h host -p port -v pool-name
    

    在此指令中,-v 指定詳細輸出。例如,檢視範例資料來源池的特性。


    $ dpconf list-attached-ldap-data-sources -h host1 -p 1389 -v My-pool
    Name         add-weight  bind-weight  compare-weight  
    -----------  ----------  -----------  --------------  
    datasource0  disabled    disabled     disabled        
    datasource1  disabled    disabled     disabled        
    
    delete-weight  modify-dn-weight  modify-weight  search-weight
    -------------  ----------------  -------------  -------------
    disabled       disabled          disabled       disabled
    disabled       disabled          disabled       disabled
  4. (可選擇) 透過使用下列指令語法檢視附加資料來源的特性:


    $ dpconf get-attached-ldap-data-source-prop -h host -p port [-M unit] [-Z unit] \
     pool-name source-name [property...]

    在此指令中,-M-Z 是指顯示資料的單位。M 選項指定時間單位。-M 的值可以是 Mwdhmsms,分別表示月、週、天、小時、分、秒或毫秒。-Z 選項指定資料大小單位。-Z 的值可以是 TGMkb,分別表示兆位元組 (TB)、十億位元組 (GB)、百萬位元組 (MB)、千位元組 (KB) 或位元組。

    如不指定某個特性,則會顯示所有特性。

    附加資料來源的特性定義負載平衡中各種作業類型的加權。附加資料來源的預設加權如下:


    add-weight        :  disabled  
    bind-weight       :  disabled  
    compare-weight    :  disabled  
    delete-weight     :  disabled  
    modify-dn-weight  :  disabled  
    modify-weight     :  disabled  
    search-weight     :  disabled 

    如需有關如何配置負載平衡的附加資料來源加權的資訊,請參閱配置負載平衡加權

第 21 章 目錄代理伺服器與後端 LDAP 伺服器之間的連線

本章說明如何配置目錄代理伺服器與後端 LDAP 伺服器之間的連線。本章包含下列主題:

配置目錄代理伺服器與後端 LDAP 伺服器之間的連線

如需有關如何配置目錄代理伺服器與後端 LDAP 伺服器之間連線的資訊,請參閱下列程序:

Procedure配置目錄代理伺服器與後端 LDAP 伺服器之間的連線數


備註 –

本程序配置連結作業的連線數。若要配置讀取或寫入作業的連線數,請執行相同的程序,但以 readwrite 取代 bind


您可以使用 DSCC 執行此作業。如需有關資訊,請參閱目錄服務控制中心介面與 DSCC 線上說明。

  1. 配置目錄代理伺服器與後端 LDAP 伺服器之間連結作業的初始連線數。


    $ dpconf set-ldap-data-source-prop -h host -p port data-source-name \
     num-bind-init:new-value
    
  2. 配置連結作業的連線增量。

    增量是每次請求超過目前連線數時所增加的連線數。


    $ dpconf set-ldap-data-source-prop -h host -p port data-source-name \
     num-bind-incr:new-value
    
  3. 配置連結作業的最大連線數。

    到達最大連線數之後,即無法增加更多連線。


    $ dpconf set-ldap-data-source-prop -h host -p port data-source-name \
     num-bind-limit:new-value
    

Procedure配置連線逾時

您可以使用 DSCC 執行此作業。如需有關資訊,請參閱目錄服務控制中心介面與 DSCC 線上說明。

    配置目錄代理伺服器嘗試連線至資料來源的最長時間。


    $ dpconf set-ldap-data-source-prop -h host -p port data-source-name \
     connect-timeout:new-value
    

    例如,將連線逾時配置為 10 毫秒。


    $ dpconf set-ldap-data-source-prop -h host1 -p 1389 data-source-name connect-timeout:10

Procedure配置連線池等待逾時

您可以使用 DSCC 執行此作業。如需有關資訊,請參閱目錄服務控制中心介面與 DSCC 線上說明。

    配置目錄代理伺服器等待連線池中建立的連線變為可用的最長時間。


    $ dpconf set-server-prop -h host -p port data-source-name \
     connection-pool-wait-timeout:value
    

    例如,將逾時配置為 20 秒。


    $ dpconf set-ldap-data-source-prop -h host1 -p 1389 data-source-name \
     connection-pool-wait-timeout:20000

配置目錄代理伺服器與後端 LDAP 伺服器之間的 SSL

下列程序說明如何配置目錄代理伺服器與後端 LDAP 伺服器之間的 SSL。

Procedure配置目錄代理伺服器與後端 LDAP 伺服器之間的 SSL

您可以使用 DSCC 執行此作業。如需有關資訊,請參閱目錄服務控制中心介面與 DSCC 線上說明。

  1. 配置目錄代理伺服器與後端 LDAP 伺服器之間的安全連接埠。


    $ dpconf set-ldap-data-source-prop -h host -p port data-source-name \
     ldaps-port:port-number
    
  2. 配置目錄代理伺服器與後端 LDAP 伺服器之間的連線使用 SSL 的時機。


    $ dpconf set-ldap-data-source-prop -h host -p port data-source-name ssl-policy:value
    
    • 如果 valuealways,則 SSL 始終可供連線使用。

    • 如果 valueclient,則在用戶端使用 SSL 時使用 SSL。

    如果連線未使用 SSL,可以透過使用 startTLS 指令將連線升級至 SSL。

  3. 選擇目錄代理伺服器的 SSL 密碼與協定中所述,選擇 SSL 的協定與密碼。

  4. 將目錄代理伺服器配置為驗證來自後端 LDAP 伺服器的 SSL 伺服器憑證。

    如需有關資訊,請參閱將憑證從後端目錄伺服器增加至目錄代理伺服器憑證資料庫

  5. 如果後端 LDAP 伺服器請求來自目錄代理伺服器的憑證,請配置目錄代理伺服器以傳送 SSL 用戶端憑證。

    如需有關資訊,請參閱匯出憑證至後端 LDAP 伺服器

  6. 重新啟動目錄代理伺服器實例,變更方可生效。

    如需有關重新啟動目錄代理伺服器的資訊,請參閱重新啟動目錄代理伺服器

選擇目錄代理伺服器的 SSL 密碼與協定

目錄代理伺服器可以使用的密碼與協定依賴於正在使用的 JavaTM 虛擬機器 (JVMTM)。依預設,目錄代理伺服器使用為 JVM 機器啟用的預設密碼與協定。

Procedure選擇密碼與協定清單

使用此程序擷取支援的密碼與協定,以及啟用的密碼與協定。如果是支援的密碼或協定,您可加以啟用或停用。

您可以使用 DSCC 執行此作業。如需有關資訊,請參閱目錄服務控制中心介面與 DSCC 線上說明。

  1. 檢視支援的密碼與協定清單。


    $ dpconf get-server-prop -h host -p port supported-ssl-cipher-suites \
     supported-ssl-protocols
  2. 檢視啟用的密碼與協定清單。


    $ dpconf get-server-prop -h host -p port enabled-ssl-cipher-suites \
     enabled-ssl-protocols
  3. 啟用一或多個支援的密碼或協定。

    1. 啟用一或多個支援的密碼。


      $ dpconf set-server-prop -h host -p port \
       enabled-ssl-cipher-suites:supported-ssl-cipher-suite \
       [enabled-ssl-cipher-suites:supported-ssl-cipher-suite ...]
    2. 啟用一或多個支援的協定。


      $ dpconf set-server-prop -h host -p port \
       enabled-ssl-cipher-protocols:supported-ssl-cipher-protocol \
       [enabled-ssl-cipher-protocols:supported-ssl-cipher-protocol ...]
  4. 若要停用支援的密碼或協定,請使用前兩個步驟中的指令。

    指定密碼或協定的完整清單,並排除要停用的密碼或協定。

將請求轉寄至後端 LDAP 伺服器

本節包含有關用於將請求從目錄代理伺服器轉寄至後端 LDAP 伺服器之不同方法的資訊。

利用重新執行連結轉寄請求

如需有關目錄代理伺服器中用戶端憑證的連結重新執行的資訊,請參閱「Sun Java System Directory Server Enterprise Edition 6.0 Reference」中的「Directory Proxy Server Configured for BIND Replay」。下列程序說明如何透過使用連結重新執行將請求從目錄代理伺服器轉寄至後端 LDAP 伺服器。

Procedure利用重新執行連結轉寄請求

您可以使用 DSCC 執行此作業。如需有關資訊,請參閱目錄服務控制中心介面與 DSCC 線上說明。

    配置資料來源用戶端憑證,以透過使用由用戶端提供的憑證認證後端 LDAP 伺服器。


    $ dpconf set-ldap-data-source-prop -h host -p port data-source-name \
     client-cred-mode:use-client-identity

利用代理授權轉寄請求

如需有關目錄代理伺服器中代理授權的資訊,請參閱「Sun Java System Directory Server Enterprise Edition 6.0 Reference」中的「Directory Proxy Server Configured for Proxy Authorization」

本節包含透過使用代理授權與代理授權控制轉寄請求的程序。

Procedure透過使用代理授權轉寄請求

  1. 將資料來源配置為預期代理授權控制版本為 1 或 2。

    例如,將資料來源配置為預期代理授權控制版本 1。


    $ dpconf set-ldap-data-source-prop -h host -p port data-source-name \
     proxied-auth-use-v1:true

    或者,將資料來源配置為預期代理授權控制版本 2。


    $ dpconf set-ldap-data-source-prop -h host -p port data-source-name \
     proxied-auth-use-v1:false
  2. 將資料來源配置為透過使用代理授權認證後端 LDAP 伺服器。


    $ dpconf set-ldap-data-source-prop -h host -p port data-source-name \
     client-cred-mode:use-proxy-auth

    若要將資料來源配置為透過僅使用寫入作業的代理授權認證後端 LDAP 伺服器,請執行此指令:


    $ dpconf set-ldap-data-source-prop -h host -p port data-source-name \
     client-cred-mode:use-proxy-auth-for-write

    僅使用代理授權控制執行寫入作業時,用戶端身份識別不會轉寄至 LDAP 伺服器進行讀取請求。如需有關轉寄不含用戶端身份識別的請求的詳細資訊,請參閱轉寄不含用戶端身份識別的請求

  3. 利用目錄代理伺服器的連結憑證配置資料來源。


    $ dpconf set-ldap-data-source-prop -h host -p port data-source-name \
     bind-dn:DPS-bind-dn bind-pwd-file:filename
    
  4. 使用逾時配置資料來源。


    $ dpconf set-ldap-data-source-prop -h host -p port data-source-name \
     proxied-auth-check-timeout:value
    

    目錄代理伺服器透過使用 getEffectiveRights 指令驗證用戶端 DN 是否具有代理授權的相關 ACI。在目錄代理伺服器中快取結果,並於 proxied-auth-check-timeout 過期時進行更新。

  5. 請視需要重新啟動目錄代理伺服器實例以使變更生效。

    如需有關重新啟動目錄代理伺服器的資訊,請參閱重新啟動目錄代理伺服器

Procedure當請求包含代理授權控制時,透過使用代理授權轉寄請求

您可以使用 DSCC 執行此作業。如需有關資訊,請參閱目錄服務控制中心介面與 DSCC 線上說明。

    將目錄代理伺服器配置為接受代理授權控制版本 1 和/或版本 2。


    $ dpconf set-server-prop -h host -p port allowed-ldap-controls:proxy-auth-v1 \
     allowed-ldap-controls:proxy-auth-v2

轉寄不含用戶端身份識別的請求

下列程序說明如何將請求從目錄代理伺服器轉寄至後端 LDAP 伺服器,而不轉寄用戶端身份識別。

Procedure轉寄不含用戶端身份識別的請求

您可以使用 DSCC 執行此作業。如需有關資訊,請參閱目錄服務控制中心介面與 DSCC 線上說明。

  1. 透過使用目錄代理伺服器的憑證,將資料來源配置為驗證後端 LDAP 伺服器。


    $ dpconf set-ldap-data-source-prop -h host -p port data-source-name \
     client-cred-mode:use-specific-identity
  2. 利用目錄代理伺服器的連結憑證配置資料來源。


    $ dpconf set-ldap-data-source-prop -h host -p port data-source-name \
     bind-dn:bind-dn-of-DPS bind-pwd-file:filename
    
  3. 請視需要重新啟動目錄代理伺服器實例以使變更生效。

    如需有關重新啟動目錄代理伺服器的資訊,請參閱重新啟動目錄代理伺服器

以替代使用者身份轉寄請求

本節包含有關如何以替代使用者身份轉寄請求的資訊。

Procedure配置遠端使用者對映

您可以使用 DSCC 執行此作業。如需有關資訊,請參閱目錄服務控制中心介面與 DSCC 線上說明。

  1. 啟用要以替代使用者身份轉寄的作業。


    $ dpconf set-server-prop -h host -p port enable-user-mapping:true
  2. 指定包含遠端對映 ID 的屬性的名稱。


    $ dpconf set-server-prop -h host -p port \
     remote-user-mapping-bind-dn-attr:attribute-name
    
  3. 使目錄代理伺服器能夠遠端對映用戶端 ID。


    $ dpconf set-server-prop -h host -p port enable-remote-user-mapping:true
  4. 配置預設對映。


    $ dpconf set-server-prop -h host -p port \
     user-mapping-default-bind-dn:default-mapping-bind-dn \
     user-mapping-default-bind-pwd-file:filename
    

    如果遠端 LDAP 伺服器上找不到對映的身份識別,會將用戶端身份識別對映至預設的身份識別。

  5. 為遠端 LDAP 伺服器上的用戶端在項目中配置使用者對映。

    如需有關在目錄伺服器中配置使用者對映的資訊,請參閱代理授權

Procedure配置本機使用者對映

您可以使用 DSCC 執行此作業。如需有關資訊,請參閱目錄服務控制中心介面與 DSCC 線上說明。

  1. 啟用要以替代使用者身份轉寄的作業。


    $ dpconf set-server-prop -h host -p port enable-user-mapping:true
  2. 確保未將目錄代理伺服器配置為從遠端對映用戶端 ID。


    $ dpconf set-server-prop -h host -p port enable-remote-user-mapping:false
  3. 配置預設對映。


    $ dpconf set-server-prop -h host -p port \
     user-mapping-default-bind-dn:default-mapping-bind-dn \
     user-mapping-default-bind-pwd-file:filename
    

    如果遠端 LDAP 伺服器的對映失敗,用戶端 ID 會對映至此 DN。

  4. 如果允許未認證的使用者執行作業,請配置未認證之用戶端的對映。


    $ dpconf set-server-prop -h host -p port \
     user-mapping-anonymous-bind-dn:anonymous-mapping-bind-dn \
     user-mapping-anonymous-bind-pwd-file:filename
    

    如需有關如何允許未認證的使用者執行作業的資訊,請參閱配置匿名存取

  5. 配置用戶端的 ID。


    $ dpconf set-user-mapping-prop -h host -p port \
     user-bind-dn:client-bind-dn user-bind-pwd-file:filename
    
  6. 配置替代使用者的 ID。


    $ dpconf set-user-mapping-prop -h host -p port \
     mapped-bind-dn:alt-user-bind-dn mapped-bind-pwd-file:filename
    

Procedure配置匿名用戶端的使用者對映

您可以使用 DSCC 執行此作業。如需有關資訊,請參閱目錄服務控制中心介面與 DSCC 線上說明。

    配置未認證的用戶端的對映。


    $ dpconf set-server-prop -h host -p port \
     user-mapping-anonymous-bind-dn:anonymous-mapping-bind-dn \
     user-mapping-anonymous-bind-pwd-file:filename
    

    由於遠端 LDAP 伺服器不包含匿名用戶端的項目,因此在目錄代理伺服器中配置匿名用戶端的對映。

    如需有關允許未認證的使用者執行作業的資訊,請參閱配置匿名存取

第 22 章 目錄代理伺服器負載平衡與用戶端相似性

如需負載平衡與用戶端相似性的說明,請參閱「Sun Java System Directory Server Enterprise Edition 6.0 Reference」中的第 25 章「Directory Proxy Server Load Balancing and Client Affinity」。本章包含下列主題:

配置負載平衡

如需有關負載平衡的資訊,請參閱「Sun Java System Directory Server Enterprise Edition 6.0 Reference」中的「Load Balancing」。本節說明如何配置負載平衡並提供配置範例。

Procedure選取負載平衡演算法

您可以使用 DSCC 執行此作業。如需有關資訊,請參閱目錄服務控制中心介面與 DSCC 線上說明。

  1. 透過檢視 LDAP 資料來源池的特性取得目前的負載平衡演算法。


    $ dpconf get-ldap-data-source-pool-prop -h host -p port pool-name
    

    LDAP 資料來源池的預設特性如下:


    client-affinity-policy    :  write-affinity-after-write
    client-affinity-timeout   :  20s
    description               :  -
    enable-client-affinity    :  false
    load-balancing-algorithm  :  proportional

    依預設,負載平衡演算法為比例

  2. 配置 LDAP 資料來源池使用演算法。


    $ dpconf set-ldap-data-source-pool-prop -h host -p port pool-name \
      load-balancing-algorithm:selected-algorithm
    

    其中 selected-algorithm 是下列其中之一:

    • 容錯移轉

    • 操作相似性

    • 比例

    • 飽和

    如需有關演算法的詳細資訊,請參閱「Sun Java System Directory Server Enterprise Edition 6.0 Reference」中的「Introduction to Load Balancing」

  3. 重新啟動目錄代理伺服器實例。


    $ dpadm restart instance-path
    

Procedure配置負載平衡加權

您必須依據資料來源池中所有其他附加資料來源的加權,來配置附加資料來源的加權。請考量所有附加資料來源的加權。如果資料來源針對某種作業類型的加權為已停用,該類型的請求將永遠不會傳送至該資料來源。如果資料來源加權為 0 (零),除非所有其他資料來源皆不可用,否則不會將請求分佈至該資料來源。因此,僅在所有其他資料來源皆無法使用時,才使用以加權 0 配置的資料來源。

您可以使用 DSCC 執行此作業。如需有關資訊,請參閱目錄服務控制中心介面與 DSCC 線上說明。

  1. 檢視附加至資料來源池的資料來源清單。


    $ dpconf list-attached-ldap-data-sources -h host -p port pool-name
    
  2. 檢視其中一個附加資料來源的特性。


    $ dpconf get-attached-ldap-data-source-prop pool-name \
     attached-data-source-name
    

    附加資料來源的特性定義各種作業類型的加權。附加資料來源的預設加權如下:


    add-weight        :  disabled  
    bind-weight       :  disabled  
    compare-weight    :  disabled  
    delete-weight     :  disabled  
    modify-dn-weight  :  disabled  
    modify-weight     :  disabled  
    search-weight     :  disabled 
  3. 配置其中一個附加資料來源的加權。


    $ dpconf set-attached-ldap-data-source-prop -h host -p port pool-name \
     attached-data-source-name add-weight:value \
     bind-weight:value compare-weight:value delete-weight:value \
     modify-dn-weight:value modify-weight:value search-weight:value
    
  4. 針對其他附加資料來源重複步驟 2步驟 3

  5. 比較附加資料來源的主要參數。


    $ dpconf list-attached-ldap-data-sources -h host -p port -v pool-name
    

    例如,資料來源池可以包含加權如下的資料來源:


    $ dpconf list-attached-ldap-data-sources -h host1 -p 1389 -v myPool
    Name add-weight bind-weight compare-weight delete-weight modify-dn-weight modify-weight search-weight
    ---- ---------- ----------- -------------- ------------- ---------------- ------------- -------------
    DS-1 disabled   3		       disabled       disabled      disabled         disabled      disabled
    DS-2 2          2           2              2             2                2             2
    DS-3 1          1           1              1             1                1             1

負載平衡的配置範例

本節包含配置每個負載平衡演算法的範例程序。

Procedure配置比例演算法以進行負載平衡

如需比例演算法的說明,請參閱「Sun Java System Directory Server Enterprise Edition 6.0 Reference」中的「Proportional Algorithm for Load Balancing」

在此範例中,資料來源 ds–1 配置為其他兩個資料來源加權的兩倍。

您可以使用 DSCC 執行此作業。如需有關資訊,請參閱目錄服務控制中心介面與 DSCC 線上說明。

開始之前

確保資料來源池至少有三個附加資料來源。如需有關如何建立資料來源與資料來源池的資訊,請參閱第 20 章, LDAP 資料來源與資料來源池

  1. 將資料來源池配置為使用比例演算法進行負載平衡。


    $ dpconf set-ldap-data-source-pool-prop -h host -p port pool-name \
      load-balancing-algorithm:proportional
  2. 配置第一個資料來源的特性。


    $ dpconf set-attached-ldap-data-source-prop -h host -p port pool-name ds-1 \
     add-weight:2 bind-weight:2 compare-weight:2 delete-weight:2 modify-dn-weight:2 \
     modify-weight:2 search-weight:2
  3. 配置第二個資料來源的特性。


    $ dpconf set-attached-ldap-data-source-prop -h host -p port pool-name ds-2 \
     add-weight:1 bind-weight:1 compare-weight:1 delete-weight:1 modify-dn-weight:1 \
     modify-weight:1 search-weight:1
  4. 配置第三個資料來源的特性。


    $ dpconf set-attached-ldap-data-source-prop -h host -p port pool-name ds-3 \
     add-weight:1 bind-weight:1 compare-weight:1 delete-weight:1 modify-dn-weight:1 \
     modify-weight:1 search-weight:1
  5. 比較附加資料來源的主要參數。


    $ dpconf list-attached-ldap-data-sources -h host -p port -v pool-name
    Name add-weight bind-weight compare-weight delete-weight modify-dn-weight modify-weight search-weight
    ---  ---------- ----------- -------------- ------------- ---------------- ------------- -------------
    ds-1 2          2           2              2             2                2             2
    ds-2 1          1           1              1             1                1             1
    ds-3 1          1           1              1             1                1             1
  6. 重新啟動目錄代理伺服器實例。


    $ dpadm restart instance-path
    

Procedure配置飽和演算法以進行負載平衡

如需飽和演算法的說明,請參閱「Sun Java System Directory Server Enterprise Edition 6.0 Reference」中的「Saturation Algorithm for Load Balancing」

在此範例中,資料來源 ds-1 執行大部分連結作業,但不執行任何其他類型的作業。以下列加權配置三個資料來源:

您可以使用 DSCC 執行此作業。如需有關資訊,請參閱目錄服務控制中心介面與 DSCC 線上說明。

開始之前

確保資料來源池至少有三個附加資料來源。如需有關如何建立資料來源與資料來源池的資訊,請參閱第 20 章, LDAP 資料來源與資料來源池

  1. 將資料來源池配置為使用飽和演算法進行負載平衡。


    $ dpconf set-ldap-data-source-pool-prop -h host -p port pool-name \
     load-balancing-algorithm:saturation
  2. 配置第一個資料來源的特性。


    $ dpconf set-attached-ldap-data-source-prop -h host -p port pool-name ds-1 \
     add-weight:disabled bind-weight:3 compare-weight:disabled delete-weight:disabled \
     modify-dn-weight:disabled modify-weight:disabled search-weight:disabled
  3. 配置第二個資料來源的特性。


    $ dpconf set-attached-ldap-data-source-prop -h host -p port pool-name ds-2 \
     add-weight:2 bind-weight:2 compare-weight:2 delete-weight:2 modify-dn-weight:2 \
     modify-weight:2 search-weight:2
  4. 配置第三個資料來源的特性。


    $ dpconf set-attached-ldap-data-source-prop -h host -p port pool-name ds-3 \
     add-weight:1 bind-weight:1 compare-weight:1 delete-weight:1 modify-dn-weight:1 \
     modify-weight:1 search-weight:1
  5. 比較附加資料來源的主要參數。


    $ dpconf list-attached-ldap-data-sources -h host -p port -v pool-name
    Name add-weight bind-weight compare-weight delete-weight modify-dn-weight modify-weight search-weight
    ---  ---------- ----------- -------------- ------------- ---------------- ------------- -------------
    ds-1 disabled   3		       disabled       disabled      disabled         disabled      disabled
    ds-2 2          2           2              2             2                2             2
    ds-3 1          1           1              1             1                1             1
  6. 重新啟動目錄代理伺服器實例。


    $ dpadm restart instance-path
    

Procedure配置操作相似性演算法以進行全域帳號封鎖

如需此演算法的說明,請參閱「Sun Java System Directory Server Enterprise Edition 6.0 Reference」中的「Operational Affinity Algorithm for Global Account Lockout」

此範例有三個資料來源。將資料來源 ds-1 配置為接收所有連結請求。

您可以使用 DSCC 執行此作業。如需有關資訊,請參閱目錄服務控制中心介面與 DSCC 線上說明。

開始之前

確保資料來源池至少有三個附加資料來源。如需有關如何建立資料來源與資料來源池的資訊,請參閱第 20 章, LDAP 資料來源與資料來源池

  1. 將資料來源池配置為使用操作相似性演算法。


    $ dpconf set-ldap-data-source-pool-prop -h host -p port pool-name \
     load-balancing-algorithm:operational-affinity
  2. 配置第一個資料來源的特性。


    $ dpconf set-attached-ldap-data-source-prop -h host -p port pool-name ds-1 \
     add-weight:1 bind-weight:100 compare-weight:1 delete-weight:1 modify-dn-weight:1 \
     modify-weight:1 search-weight:1
  3. 配置第二個資料來源的特性。


    $ dpconf set-attached-ldap-data-source-prop -h host -p port pool-name ds-2 \
     add-weight:1 bind-weight:1 compare-weight:1 delete-weight:1 modify-dn-weight:1 \
     modify-weight:1 search-weight:1
  4. 配置第三個資料來源的特性。


    $ dpconf set-attached-ldap-data-source-prop -h host -p port pool-name ds-3 \
     add-weight:1 bind-weight:1 compare-weight:1 delete-weight:1 modify-dn-weight:1 \
     modify-weight:1 search-weight:1
  5. 比較附加資料來源的主要參數。


    $ dpconf list-attached-ldap-data-sources -h host -p port -v pool-name
    Name add-weight bind-weight compare-weight delete-weight modify-dn-weight modify-weight search-weight
    --   ---------- ----------- -------------- ------------- ---------------- ------------- -------------
    ds-1 1          1           1              1             1                1             1
    ds-2 1          100         1              1             1                1             1
    ds-3 1          1           1              1             1                1             1
  6. 重新啟動目錄代理伺服器實例。


    $ dpadm restart instance-path
    

Procedure配置操作相似性演算法以進行快取最佳化

如需此演算法的說明,請參閱「Sun Java System Directory Server Enterprise Edition 6.0 Reference」中的「Operational Affinity Algorithm for Cache Optimization」

此範例有三個資料來源。資料來源 ds-1 處理所有搜尋和比較作業。當 ds-1 回應請求時,目標項目會儲存在快取中。如果 ds-1 重複回應相同的請求,資料來源會使用快取的資料。

您可以使用 DSCC 執行此作業。如需有關資訊,請參閱目錄服務控制中心介面與 DSCC 線上說明。

開始之前

確保資料來源池至少有三個附加資料來源。如需有關如何建立資料來源與資料來源池的資訊,請參閱第 20 章, LDAP 資料來源與資料來源池

  1. 將資料來源池配置為使用操作相似性演算法。


    $ dpconf set-ldap-data-source-pool-prop -h host -p port pool-name \
     load-balancing-algorithm:operational-affinity
  2. 配置第一個資料來源的特性。


    $ dpconf set-attached-ldap-data-source-prop -h host -p port pool-name ds-1 \
     add-weight:1 bind-weight:1 compare-weight:100 delete-weight:1 modify-dn-weight:1 \
     modify-weight:1 search-weight:100
  3. 配置第二個資料來源的特性。


    $ dpconf set-attached-ldap-data-source-prop -h host -p port pool-name ds-2 \
     add-weight:1 bind-weight:1 compare-weight:1 delete-weight:1 modify-dn-weight:1 \
     modify-weight:1 search-weight:1
  4. 配置第三個資料來源的特性。


    $ dpconf set-attached-ldap-data-source-prop -h host -p port pool-name ds-3 \
     add-weight:1 bind-weight:1 compare-weight:1 delete-weight:1 modify-dn-weight:1 \
     modify-weight:1 search-weight:1
  5. 比較附加資料來源的主要參數。


    $ dpconf list-attached-ldap-data-sources -h host -p port -v pool-name
    Name add-weight bind-weight compare-weight delete-weight modify-dn-weight modify-weight search-weight
    ---  ---------- ----------- -------------- ------------- ---------------- ------------- -------------
    ds-1 1          1           100            1             1                1             100
    ds-2 1          1           1              1             1                1             1
    ds-3 1          1           1              1             1                1             1
  6. 重新啟動目錄代理伺服器實例。


    $ dpadm restart instance-path
    

Procedure配置容錯移轉演算法以進行負載平衡

如需容錯移轉演算法的說明,請參閱「Sun Java System Directory Server Enterprise Edition 6.0 Reference」中的「Failover Algorithm for Load Balancing」

此範例有三個資料來源。資料來源 ds-1 接收所有請求。如果 ds-1 失敗,ds-2 會接收所有請求直到 ds-1 回復為止。如果 ds-2ds-1 回復之前失敗,ds-3 會接收所有請求。

您可以使用 DSCC 執行此作業。如需有關資訊,請參閱目錄服務控制中心介面與 DSCC 線上說明。

開始之前

確保資料來源池至少有三個附加資料來源。如需有關如何建立資料來源與資料來源池的資訊,請參閱第 20 章, LDAP 資料來源與資料來源池

  1. 將資料來源池配置為使用容錯移轉演算法進行負載平衡。


    $ dpconf set-ldap-data-source-pool-prop -h host -p port pool-name \
     load-balancing-algorithm:failover
  2. 配置第一個資料來源的特性。


    $ dpconf set-attached-ldap-data-source-prop -h host -p port pool-name ds-1 \
     add-weight:3 bind-weight:3 compare-weight:3 delete-weight:3 modify-dn-weight:3 \
     modify-weight:3 search-weight:3
  3. 配置第二個資料來源的特性。


    $ dpconf set-attached-ldap-data-source-prop -h host -p port pool-name ds-2 \
     add-weight:2 bind-weight:2 compare-weight:2 delete-weight:2 modify-dn-weight:2 \
     modify-weight:2 search-weight:2
  4. 配置第三個資料來源的特性。


    $ dpconf set-attached-ldap-data-source-prop -h host -p port pool-name ds-3 \
     add-weight:1 bind-weight:1 compare-weight:1 delete-weight:1 modify-dn-weight:1 \
     modify-weight:1 search-weight:1
  5. 比較附加資料來源的主要參數。


    $ dpconf list-attached-ldap-data-sources -h host -p port -v pool-name
    Name add-weight bind-weight compare-weight delete-weight modify-dn-weight modify-weight search-weight
    ---  ---------- ----------- -------------- ------------- ---------------- ------------- -------------
    ds-1 3          3           3              3             3                3             3
    ds-2 2          2           2              2             2                2             2
    ds-3 1          1           1              1             1                1             1
  6. 重新啟動目錄代理伺服器實例。


    $ dpadm restart instance-path
    

配置用戶端相似性

用戶端相似性可降低負載平衡部署中的傳播延遲風險。如需有關用戶端相似性的資訊,請參閱「Sun Java System Directory Server Enterprise Edition 6.0 Reference」中的「Client Affinity」。本節說明如何配置用戶端連線與資料來源之間的相似性,並提供配置範例。

Procedure配置用戶端相似性

本程序說明如何配置用戶端連線與資料來源之間的相似性。

您可以使用 DSCC 執行此作業。如需有關資訊,請參閱目錄服務控制中心介面與 DSCC 線上說明。

  1. 透過檢視資料來源池的特性檢視目前的負載平衡演算法。


    $ dpconf get-ldap-data-source-pool-prop -h host -p port pool-name
    

    資料來源池的預設特性如下:


    client-affinity-policy    :  write-affinity-after-write
    client-affinity-timeout   :  20s
    description               :  -
    enable-client-affinity    :  false
    load-balancing-algorithm  :  proportional

    下列參數可配置用戶端相似性:client-affinity-policyclient-affinity-timeoutenable-client-affinity。如需特性的說明及其有效值的清單,請鍵入:


    dpconf help-properties ldap-data-source-pool client-affinity-policy \
     client-affinity-timeout enable-client-affinity

    如需特性的詳細資訊,請參閱下列線上手冊:client-affinity-policy(5dpconf)client-affinity-timeout(5dpconf)enable-client-affinity(5dpconf)

  2. 啟用用戶端相似性。


    $ dpconf set-ldap-data-source-pool-prop -h host -p port pool-name \
     enable-client-affinity:true
  3. 選取用戶端相似性的策略。


    $ dpconf set-ldap-data-source-pool-prop -h host -p port pool-name \
     client-affinity-policy:selected-policy
    

    其中 selected-policy 是下列其中之一:

    write-affinity-after-write

    第一個寫入請求之後的寫入請求相似性

    read-write-affinity-after-write

    第一個寫入請求之後的所有請求相似性

    read-write-affinity-after-any

    第一個讀取請求或寫入請求之後的所有請求相似性

    read-affinity-after-write

    寫入請求之後的第一個讀取請求相似性

  4. 配置用戶端相似性的持續時間。


    $ dpconf set-ldap-data-source-pool-prop -h host -p port pool-name \
     client-affinity-timeout:time-out[unit]

    逾時的預設單位為毫秒。

用戶端相似性的配置範例

本節包含與用戶端相似性相關的配置範例,並包含複寫延遲、驗證寫入作業以及基於連線的路由之範例。

Procedure配置當資料來源池包含主機與用戶時,複寫延遲的用戶端相似性

本程序配置在第一個寫入作業之後三秒內發生的所有讀取與寫入作業的用戶端相似性。

您可以使用 DSCC 執行此作業。如需有關資訊,請參閱目錄服務控制中心介面與 DSCC 線上說明。

    配置資料來源池的相似性參數。


    $ dpconf set-ldap-data-source-pool-prop -h host -p port pool-name \
     client-affinity-policy:read-write-affinity-after-write client-affinity-timeout:3000 \
     enable-client-affinity:true

Procedure將用戶端相似性配置為利用讀取作業驗證每個寫入作業

本程序配置每個寫入作業之後第一個讀取作業的用戶端相似性。此範例可用於由其中指定的連結 DN 透過執行讀取作業驗證每個寫入作業之應用程式。

您可以使用 DSCC 執行此作業。如需有關資訊,請參閱目錄服務控制中心介面與 DSCC 線上說明。

    配置資料來源池的相似性參數。


    $ dpconf set-ldap-data-source-pool-prop -h host -p port pool-name \
     client-affinity-policy:read-affinity-after-write enable-client-affinity:true

Procedure配置基於連線之路由的用戶端相似性

在 Directory Proxy Server 6.0 之前的版本中,已開啟用戶端與 LDAP 伺服器之間的連線。來自用戶端的所有請求會使用相同的連線,直到連線關閉為止。此路由類型稱為基於連線的路由。本程序說明如何配置基於連線的路由之用戶端相似性。

您可以使用 DSCC 執行此作業。如需有關資訊,請參閱目錄服務控制中心介面與 DSCC 線上說明。

開始之前

確保所有資料來源已附加至資料來源池,且 clientCredentialsForwarding 已設為 useBind

    配置資料來源池的相似性參數。


    $ dpconf set-ldap-data-source-pool-prop -h host -p port pool-name \
     client-affinity-policy:read-write-affinity-after-any enable-client-affinity:true

第 23 章 目錄代理伺服器資料檢視

如需資料檢視的功能簡介與使用範例的說明,請參閱「Sun Java System Directory Server Enterprise Edition 6.0 Reference」中的第 22 章「Directory Proxy Server LDAP Data Views」

本章包含下列主題:

建立與配置 LDAP 資料檢視

如需有關如何建立與配置 LDAP 資料檢視的資訊,請參閱下列程序:

Procedure建立 LDAP 資料檢視

您可以使用 DSCC 執行此作業。如需有關資訊,請參閱目錄服務控制中心介面與 DSCC 線上說明。

  1. 建立 LDAP 資料檢視。


    $ dpconf create-ldap-data-view -h host -p port view-name pool-name suffix-DN
    

    如需有關如何修改 LDAP 資料檢視特性的資訊,請參閱配置 LDAP 資料檢視

  2. 檢視 LDAP 資料檢視清單。


    $ dpconf list-ldap-data-views -h host -p port
    

Procedure配置 LDAP 資料檢視

您可以使用 DSCC 執行此作業。如需有關資訊,請參閱目錄服務控制中心介面與 DSCC 線上說明。

  1. 檢視 LDAP 資料檢視的特性。


    $ dpconf get-ldap-data-view-prop -h host -p port view-name
    

    如果建立資料檢視而未配置任何特性,資料檢視具有下列配置:


    alternate-search-base-dn                    :  ""
    alternate-search-base-dn                    :  base-DN
    attr-name-mappings                          :  none
    base-dn                                     :  suffix-DN
    contains-shared-entries                     :  -
    description                                 :  -
    distribution-algorithm                      :  -
    dn-join-rule                                :  -
    dn-mapping-attrs                            :  none
    dn-mapping-source-base-dn                   :  none
    excluded-subtrees                           :  -
    filter-join-rule                            :  -
    is-enabled                                  :  true
    is-read-only                                :  false
    is-routable                                 :  true
    ldap-data-source-pool                       :  pool-name
    lexicographic-attrs                         :  all
    lexicographic-lower-bound                   :  none
    lexicographic-upper-bound                   :  none
    non-viewable-attr                           :  -
    non-writable-attr                           :  -
    numeric-attrs                               :  all
    numeric-default-data-view                   :  false
    numeric-lower-bound                         :  none
    numeric-upper-bound                         :  none
    pattern-matching-base-object-search-filter  :  all
    pattern-matching-dn-regular-expression      :  all
    pattern-matching-one-level-search-filter    :  all
    pattern-matching-subtree-search-filter      :  all
    process-bind                                :  -
    replication-role                            :  master
    viewable-attr                               :  all except non-viewable-attr
    writable-attr                               :  all except non-writable-attr

    備註 –

    代理伺服器管理員以外的所有使用者,皆可從後端伺服器看到 cn=configcn=monitor 尾碼。依預設,後端伺服器的資料對代理伺服器管理員不可用。代理伺服器管理員可以使用的 cn=configcn=monitor 子樹狀結構,是代理伺服器本身的子樹狀結構。

    建立目錄代理伺服器實例時,系統使用空的資料檢視策略建立代理伺服器管理員的連線處理程式。如果代理伺服器管理員需要存取後端資料,則必須將資料檢視增加至代理伺服器管理員連線處理程式的資料檢視策略中。依預設,這類資料檢視不包含 cn=configcn=monitor 子樹狀結構。


  2. 變更步驟 1 中所列的一或多個特性。


    $ dpconf set-ldap-data-view-prop -h host -p port view-name \
     property:value [property:value ... ]

    例如,若要存取資料來源中的 dc=example,dc=com 子樹狀結構,請在資料檢視中指定 base-dn


    $ dpconf set-ldap-data-view-prop -h host1 -p 1389 myDataView base-dn:dc=example,dc=com
  3. 請視需要重新啟動目錄代理伺服器實例以使變更生效。

    如需有關重新啟動目錄代理伺服器的資訊,請參閱重新啟動目錄代理伺服器

重新命名屬性與 DN

目錄中的每個項目是由 DN 和一組屬性及其值識別。通常,在用戶端定義的 DN 與屬性不會對映至在伺服器端定義的 DN 與屬性。您可以定義資料檢視以重新命名 DN 與屬性。當用戶端提出請求時,DN 和屬性會重新命名為符合伺服器端的名稱。當結果傳回用戶端時,DN 與屬性會重新命名回符合用戶端的名稱。

如需有關屬性與 DN 重新命名的資訊,請參閱「Sun Java System Directory Server Enterprise Edition 6.0 Reference」中的「Attribute Renaming and DN Renaming」。如需有關如何重新命名屬性與 DN 的資訊,請參閱下列程序:

Procedure配置屬性重新命名

您可以使用 DSCC 執行此作業。如需有關資訊,請參閱目錄服務控制中心介面與 DSCC 線上說明。

    在您要配置屬性對映的資料檢視上設定一或多個 attr-name-mappings 特性。


    $ dpconf set-ldap-data-view-prop -h host -p port view-name \
     attr-name-mappings:client-side-attribute-name#server-side-attribute-name
      [attr-name-mappings:client-side-attribute-name#server-side-attribute-name ...]

    例如,將用戶端的 surname 重新命名為伺服器端的 sn


    $ dpconf set-ldap-data-view-prop -h host1 -p 1389 myDataView \
     attr-name-mappings:surname#sn

Procedure配置 DN 重新命名

您可以使用 DSCC 執行此作業。如需有關資訊,請參閱目錄服務控制中心介面與 DSCC 線上說明。

  1. 檢視您要重新命名 DN 的資料檢視之 base-dn 特性與 DN 對映特性。


    $ dpconf get-ldap-data-view-prop -h host -p port view-name base-dn \
     dn-mapping-source-base-dn dn-mapping-attrs

    這些特性具有下列意義:

    • base-dn 是用戶端子樹狀結構的 DN,相當於資料檢視的基底 DN。

    • dn-mapping-source-base-dn 是伺服器端子樹狀結構的 DN。

    • dn-mapping-attrs 可定義包含項目 DN 的屬性清單。

    例如,未定義 DN 重新命名時,用戶端的 dc=example,dc=com 資料庫資料檢視具有下列值:


    $ dpconf get-ldap-data-view-prop myDataView base-dn \
     dn-mapping-source-base-dn dn-mapping-attrs
     base-dn                    :  dc=example,dc=com
     dn-mapping-attrs           :  none
     dn-mapping-source-base-dn  :  none
  2. 將用戶端的 DN 對映至伺服器端的 DN。


    $ dpconf set-ldap-data-view-prop -h host -p port view-name \
      dn-mapping-source-base-dn:server-side-dn
    

    例如,將用戶端的 dc=example,dc=com 資料庫對映至伺服器端的 dc=example,dc=org


    $ dpconf set-ldap-data-view-prop -h host1 -p 1389 myDataView \
     dn-mapping-source-base-dn:dc=example,dc=org
  3. DIT 部分中受步驟 2 影響的屬性若包含 DN,也必須將其重新命名。


    $ dpconf set-ldap-data-view-prop -h host -p port view-name \
      dn-mapping-attrs:attribute-name [dn-mapping-attrs:attribute-name ...]

    例如,如果 group 屬性包含 DN 且所在的名稱空間受步驟 2 的重新命名作業影響,請依下列方式重新命名屬性:


    $ dpconf set-ldap-data-view-prop -h host1 -p 1389 myDataView dn-mapping-attrs:group
  4. 檢視您已為其重新命名 DN 的資料檢視之 base-dn 特性與 DN 對映特性。


    $ dpconf get-ldap-data-view-prop -h host -p port view-name base-dn \
     dn-mapping-source-base-dn dn-mapping-attrs

    例如,DN 重新命名之後,用戶端的 dc=example,dc=com 資料庫資料檢視具有下列值:


    $ dpconf get-ldap-data-view-prop -h host1 -p 1389 myDataView base-dn \
     dn-mapping-source-base-dn dn-mapping-attrs
     base-dn                    :  dc=example,dc=com
     dn-mapping-attrs           :  group
     dn-mapping-source-base-dn  :  dc=example,dc=org

配置 excluded-subtreesalternate-search-base-dn

建立從屬資料檢視時,目錄代理伺服器自動將從屬資料檢視從上層資料檢視排除。當請求的目標為從屬資料檢視時,該請求將傳送至從屬資料檢視,而不是上層資料檢視。

在從屬資料檢視中指定替代搜尋基底時,目標在上層資料檢視的搜尋作業會同時在從屬資料檢視中執行。

依預設,目錄代理伺服器自動配置 excluded-subtreesalternate-search-base-dn 特性。下列程序說明如何手動配置這些特性。

Procedure手動配置 excluded-subtreesalternate-search-base-dn 特性

您可以使用 DSCC 執行此作業。如需有關資訊,請參閱目錄服務控制中心介面與 DSCC 線上說明。

  1. 將目錄代理伺服器配置為手動路由請求。


    $ dpconf set-server-prop -h host -p port data-view-automatic-routing-mode:manual

    data-view-automatic-routing-modemanual 時,目錄代理伺服器不產生 excluded-subtreesalternate-search-base-dn 特性。您必須手動設定這些特性的值。此處設定的值未經目錄代理伺服器檢查。請注意,錯誤地設定這些值會破壞管理路徑。

    您可以將目錄代理伺服器配置為手動路由部分請求。


    $ dpconf set-server-prop -h host -p port data-view-automatic-routing-mode:limited

    data-view-automatic-routing-modelimited 時,目錄代理伺服器不產生 excluded-subtreesalternate-search-base-dn 特性。但是,目錄代理伺服器一定會檢查此處設定的值,確保其與管理路徑不衝突。

  2. 配置檢視排除基底。


    $ dpconf set-ldap-data-view-prop -h host -p port view-name excluded-subtrees:suffix-DN
    

    檢視排除基底決定資料檢視不顯示其項目之 DIT 的分支。

  3. 配置替代搜尋基底。


    $ dpconf set-ldap-data-view-prop -h host -p port view-name \
     alternate-search-base-dn:search-base-DN
    

    替代搜尋基底決定 DIT 的其他分支,在其中可能可以找到屬於此資料檢視的項目。依預設,基底 DN 在所有資料檢視中定義為替代搜尋基底。

建立與配置使用範例的資料檢視

本節包含下列有關資料檢視以及如何建立與配置這些檢視的資訊:

本節中的範例假設連線處理程式允許目錄代理伺服器處理所有用戶端連線。

預設資料檢視

如果建立資料檢視而未配置任何特性,資料檢視具有下列配置:


alternate-search-base-dn                    :  ""
alternate-search-base-dn                    :  base-DN
attr-name-mappings                          :  none
base-dn                                     :  suffix-DN
contains-shared-entries                     :  -
description                                 :  -
distribution-algorithm                      :  -
dn-join-rule                                :  -
dn-mapping-attrs                            :  none
dn-mapping-source-base-dn                   :  none
excluded-subtrees                           :  -
filter-join-rule                            :  -
is-enabled                                  :  true
is-read-only                                :  false
is-routable                                 :  true
ldap-data-source-pool                       :  pool-name
lexicographic-attrs                         :  all
lexicographic-lower-bound                   :  none
lexicographic-upper-bound                   :  none
non-viewable-attr                           :  -
non-writable-attr                           :  -
numeric-attrs                               :  all
numeric-default-data-view                   :  false
numeric-lower-bound                         :  none
numeric-upper-bound                         :  none
pattern-matching-base-object-search-filter  :  all
pattern-matching-dn-regular-expression      :  all
pattern-matching-one-level-search-filter    :  all
pattern-matching-subtree-search-filter      :  all
process-bind                                :  -
replication-role                            :  master
viewable-attr                               :  all except non-viewable-attr
writable-attr                               :  all except non-writable-attr

不論請求的目標 DN 為何,均路由所有請求的資料檢視

本節顯示不論請求的目標 DN 為何,都將所有請求路由至資料來源池的資料檢視配置。此資料檢視稱為根資料檢視。依預設,建立目錄代理伺服器實例時建立根資料檢視。如需有關根資料檢視的資訊,請參閱「Sun Java System Directory Server Enterprise Edition 6.0 Reference」中的「Data Views to Route All Requests, Irrespective of the Target DN of the Request」

根資料檢視具有下列配置:


alternate-search-base-dn                    :  -
attr-name-mappings                         :  none
base-dn                                    :  ""
contains-shared-entries                    :  -
description                                :  Automatically-generated data view 
                                              able to route client operations 
                                              independently of the operation base dn
distribution-algorithm                     :  -
dn-join-rule                               :  -
dn-mapping-attrs                           :  none
dn-mapping-source-base-dn                  :  none
excluded-subtrees                          :  ""
excluded-subtrees                          :  cn=config
excluded-subtrees                          :  cn=monitor
excluded-subtrees                          :  cn=proxy manager
excluded-subtrees                          :  cn=virtual access controls
excluded-subtrees                          :  dc=example,dc=com
filter-join-rule                           :  -
is-enabled                                 :  true
is-read-only                               :  false
is-routable                                :  true
ldap-data-source-pool                      :  defaultDataSourcePool
lexicographic-attrs                        :  all
lexicographic-lower-bound                  :  none
lexicographic-upper-bound                  :  none
non-viewable-attr                          :  -
non-writable-attr                          :  -
numeric-attrs                              :  all
numeric-default-data-view                  :  false
numeric-lower-bound                        :  none
numeric-upper-bound                        :  none
pattern-matching-base-object-search-filter :  all
pattern-matching-dn-regular-expression     :  all
pattern-matching-one-level-search-filter   :  all
pattern-matching-subtree-search-filter     :  all
process-bind                               :  -
replication-role                           :  master
viewable-attr                              :  all except non-viewable-attr
writable-attr                              :  all except non-writable-attr

當子樹狀結構清單儲存在多個資料相同的資料來源中時,路由請求的資料檢視

本節說明如何配置將目標為子樹狀結構清單的請求,路由至一組資料相同之資料來源的資料檢視。如需有關此部署類型的資訊,請參閱「Sun Java System Directory Server Enterprise Edition 6.0 Reference」中的「Data Views to Route Requests When a List of Subtrees Are Stored on Multiple, Data-Equivalent Data Sources」

本節中的範例具有多個包含同一組子樹狀結構的資料來源。這類資料來源具有相同的資料,而且集中在一個資料來源池中以進行負載平衡。每個子樹狀結構皆配置有資料檢視,於用戶端請求時顯示該子樹狀結構。下圖顯示部署範例。

圖 23–1 當子樹狀結構清單儲存在多個資料相同的資料來源中時,路由請求的部署範例

圖中顯示的部署範例將目標為子樹狀結構清單的請求,路由至一組資料相同的資料來源。

Procedure配置當子樹狀結構清單儲存在多個資料相同的資料來源中時,路由請求的資料檢視

您可以使用 DSCC 執行此作業。如需有關資訊,請參閱目錄服務控制中心介面與 DSCC 線上說明。

  1. 建立與配置 LDAP 資料來源中所述,建立各個 LDAP 伺服器的資料來源。

  2. 建立與配置 LDAP 資料來源池中所述,建立資料來源池。

  3. 將 LDAP 資料來源附加至資料來源池中所述,將資料來源附加至資料來源池。

  4. (可選擇) 配置負載平衡。

    如需有關資訊,請參閱配置負載平衡

  5. 建立基底 DN 為 dc=example1,dc=com、參考資料來源池的資料檢視。


    $ dpconf set-ldap-data-view-prop -h host1 -p 1389 dataview-1 \
      base-dn:dc=example1,dc=com ldap-data-source-pool:data-source-pool-1
  6. 建立基底 DN 為 dc=example2,dc=com、參考資料來源池的另一個資料檢視。


    $ dpconf set-ldap-data-view-prop -h host1 -p 1389 dataview-2 \
      base-dn:dc=example2,dc=com ldap-data-source-pool:data-source-pool-1

    資料檢視的其他特性和預設資料檢視中的預設資料檢視相同。

  7. 請視需要重新啟動目錄代理伺服器實例以使變更生效。

    如需有關重新啟動目錄代理伺服器的資訊,請參閱重新啟動目錄代理伺服器

當不同的子樹狀結構儲存在不同的資料來源時,提供單一存取點的資料檢視

本節說明如何配置向儲存在多個資料來源中的不同子樹狀結構提供單一存取點的資料檢視。如需有關此部署類型的資訊,請參閱「Sun Java System Directory Server Enterprise Edition 6.0 Reference」中的「Data Views to Provide a Single Point of Access When Different Subtrees Are Stored on Different Data Sources」

本節中的範例包含各個子樹狀結構的資料檢視。資料來源池會配置給每組資料相同的資料來源。下圖顯示部署範例。

圖 23–2 當不同的子樹狀結構儲存在不同的資料來源時,提供單一存取點的部署範例

圖中顯示的部署範例為儲存在多個資料來源的不同子樹狀結構提供單一存取點。

Procedure配置當不同的子樹狀結構儲存在不同的資料來源中時,提供單一存取點的資料檢視

您可以使用 DSCC 執行此作業。如需有關資訊,請參閱目錄服務控制中心介面與 DSCC 線上說明。

  1. 建立與配置 LDAP 資料來源中所述,建立各個 LDAP 伺服器的資料來源。

  2. 建立與配置 LDAP 資料來源池中所述,建立兩個資料來源池。

  3. 將 LDAP 資料來源附加至資料來源池中所述,將包含 dc=example1,dc=com 的資料來源附加至 data-source-pool-1,並將包含 dc=example2,dc=com 的資料來源附加至 data-source-pool-2

  4. (可選擇) 配置負載平衡。

    如需有關資訊,請參閱配置負載平衡

  5. 建立基底 DN 為 dc=example1,dc=com、參考 data-source-pool-1 的資料檢視。


    $ dpconf set-ldap-data-view-prop -h host1 -p 1389 dataview-1 \
      base-dn:dc=example1,dc=com ldap-data-source-pool:data-source-pool-1
  6. 建立基底 DN 為 dc=example2,dc=com 、參考 data-source-pool-2 的另一個資料檢視。


    $ dpconf set-ldap-data-view-prop -h host1 -p 1389 dataview-2 \
      base-dn:dc=example2,dc=com ldap-data-source-pool:data-source-pool-2

    資料檢視的其他特性和預設資料檢視中的預設資料檢視相同。

  7. 請視需要重新啟動目錄代理伺服器實例以使變更生效。

    如需有關重新啟動目錄代理伺服器的資訊,請參閱重新啟動目錄代理伺服器

當子樹狀結構的不同部分儲存在不同的資料來源中時,提供單一存取點的資料檢視

本節說明如何配置向子樹狀結構的不同部分提供單一存取點的資料檢視。此範例包含具有相同基底 DN 的兩個資料檢視。數值分佈演算法用於將項目分隔至不同的資料檢視。每組資料相同的資料來源均配置了資料來源池。下圖顯示部署範例。

如需有關此部署類型的資訊,請參閱「Sun Java System Directory Server Enterprise Edition 6.0 Reference」中的「Data Views to Route Requests When Different Parts of a Subtree Are Stored in Different Data Sources」

圖 23–3 當子樹狀結構的不同部分儲存在不同的資料來源中時,提供單一存取點的部署範例

圖中顯示的部署範例為儲存在多個資料來源中的子樹狀結構的不同部分提供單一存取點。

Procedure配置當子樹狀結構的不同部分儲存在不同的資料來源中時,提供單一存取點的資料檢視

您可以使用 DSCC 執行此作業。如需有關資訊,請參閱目錄服務控制中心介面與 DSCC 線上說明。

  1. 建立與配置 LDAP 資料來源中所述,建立各個 LDAP 伺服器的資料來源。

  2. 建立與配置 LDAP 資料來源池中所述,建立兩個資料來源池。

  3. 將 LDAP 資料來源附加至資料來源池中所述,將包含子樹狀結構一部分的資料來源附加至 data-source-pool-1,並將包含子樹狀結構另一部分的資料來源附加至 data-source-pool-2

  4. (可選擇) 配置負載平衡。

    如需有關資訊,請參閱配置負載平衡

  5. 建立具分佈演算法的資料檢視,以選取 ou=people,dc=example,dc=comuid 介於 099 之間的項目,並為 data-source-pool-1 的直接請求配置資料檢視。


    $ dpconf set-ldap-data-view-prop -h host1 -p 1389 dataview-1 \
     ldap-data-source-pool:data-source-pool-1 base-dn:ou=people,dc=example,dc=com \
     distribution-algorithm	:numeric numeric-attrs:uid numeric-lower-bound	:0 \
     numeric-upper-bound	:99
  6. 建立另一個具分佈演算法的資料檢視,以選取 ou=people,dc=example,dc=comuid 介於 100199 之間的項目,並為 data-source-pool-2 的直接請求配置資料檢視。


    $ dpconf set-ldap-data-view-prop -h host1 -p 1389 dataview-2 \
     ldap-data-source-pool:data-source-pool-2 base-dn:ou=people,dc=example,dc=com \
     distribution-algorithm:numeric numeric-attrs:uid numeric-lower-bound:100
     numeric-upper-bound	:199

    資料檢視的其他特性和預設資料檢視中的預設資料檢視相同。

  7. 請視需要重新啟動目錄代理伺服器實例以使變更生效。

    如需有關重新啟動目錄代理伺服器的資訊,請參閱重新啟動目錄代理伺服器

當上層與從屬子樹狀結構儲存在不同的資料來源中時,提供單一存取點的資料檢視

本節說明當子樹狀結構的上層分支與從屬分支儲存在不同的資料來源中時,如何配置資料檢視的單一存取點。如需有關此部署類型的資訊,請參閱「Sun Java System Directory Server Enterprise Edition 6.0 Reference」中的「Data Views to Route Requests When Superior and Subordinate Subtrees Are Stored in Different Data Sources」

本節中的範例包含三個資料檢視。資料檢視 1 的基底 DN 是資料檢視 2 與 3 的上層基底 DN,亦即資料來源 2 與 3 包含從屬於資料來源 1 中子樹狀結構的子樹狀結構。下圖顯示部署範例。

圖 23–4 當上層與從屬子樹狀結構儲存在不同的資料來源中時,路由請求的部署範例

圖中顯示的部署範例在上層與從屬子樹狀結構儲存在不同的資料來源時路由請求。

目錄代理伺服器在子樹狀結構的從屬分支配置為其他資料檢視的基底 DN 時,自動從資料檢視排除從屬分支。

Procedure配置當上層與從屬子樹狀結構儲存在不同的資料來源中時,提供單一存取點的資料檢視

您可以使用 DSCC 執行此作業。如需有關資訊,請參閱目錄服務控制中心介面與 DSCC 線上說明。

  1. 建立與配置 LDAP 資料來源中所述,建立各個 LDAP 伺服器的資料來源。

  2. 建立與配置 LDAP 資料來源池中所述,建立三個資料來源池。

  3. 根據將 LDAP 資料來源附加至資料來源池中的指示,將資料來源附加至資料來源池。

    • 將包含 dc=example,dc=com 的資料來源附加至 data-source-pool-1

    • 將包含 ou=computer,dc=example,dc=com 的資料來源附加至 data-source-pool-2

    • 將包含 ou=people,dc=example,dc=com 的資料來源附加至 data-source-pool-3

  4. (可選擇) 配置負載平衡。

    如需相關資訊,請參閱配置負載平衡

  5. 建立基底 DN 為 dc=example,dc=com、資料來源池為 data-source-pool-1 的資料檢視。


    $ dpconf create-ldap-data-view -h host1 -p 1389 dataview-1 \
     data-source-pool-1 dc=example,dc=com
  6. 建立基底 DN 為 ou=computer,dc=example,dc=com、資料來源池為 data-source-pool-2 的資料檢視。


    $ dpconf create-ldap-data-view -h host1 -p 1389 dataview-2 \
     data-source-pool-2 ou=computer,dc=example,dc=com
  7. 建立基底 DN 為 ou=people,dc=example,dc=com、資料來源池為 data-source-pool-3 的資料檢視。


    $ dpconf create-ldap-data-view -h host1 -p 1389 dataview-3 \
     data-source-pool-3 ou=people,dc=example,dc=com
  8. 檢視 excluded-subtrees 參數,以驗證子樹狀結構 ou=computer,dc=example, dc=com ou=people,dc=example, dc=com 已從 dataview-1 排除。


    $ dpconf get-ldap-data-view-prop -h host1 -p 1389 dataview-1 excluded-subtrees

    傳回排除的子樹狀結構清單。

  9. 請視需要重新啟動目錄代理伺服器實例以使變更生效。

    如需有關重新啟動目錄代理伺服器的資訊,請參閱重新啟動目錄代理伺服器

具階層與分佈演算法的資料檢視

本節說明如何配置資料檢視以合併階層與分佈演算法。如需有關此部署類型的資訊,請參閱「Sun Java System Directory Server Enterprise Edition 6.0 Reference」中的「Data Views With Hierarchy and a Distribution Algorithm」

本節中的範例包含四個資料檢視。資料檢視 1 的基底 DN 是其他資料檢視的上層基底 DN。資料檢視 3 與 4 有相同的基底 DN,但是數值分佈演算法將項目分隔至不同的資料檢視。

目錄代理伺服器在子樹狀結構的從屬分支配置為其他資料檢視的基底 DN 時,自動從資料檢視排除從屬分支。數值分佈演算法將相同子樹狀結構的項目分隔至不同的資料檢視。資料來源池會配置給每組資料相同的資料來源。

下圖顯示部署範例。

圖 23–5 具階層與分佈演算法的資料檢視範例

圖中顯示的範例為合併階層與分佈演算法的資料檢視。

Procedure配置具階層與分佈演算法的資料檢視

無法使用 DSCC 執行此作業。請依照此程序中的說明使用指令行。

  1. 建立與配置 LDAP 資料來源中所述,建立各個 LDAP 伺服器的資料來源。

  2. 建立與配置 LDAP 資料來源池中所述,建立四個資料來源池。

  3. 根據將 LDAP 資料來源附加至資料來源池中的指示,附加資料來源至資料來源池。

    • 將包含 dc=example,dc=com 的資料來源附加至 data-source-pool-1

    • 將包含 ou=computer,dc=example,dc=com 的資料來源附加至 data-source-pool-2

    • 將包含 ou=people,dc=example,dc=comuid 介於 099 之項目的資料來源附加至 data-source-pool-3

    • 將包含 ou=people,dc=example,dc=comuid 介於 100199 之項目的資料來源附加至 data-source-pool-4

  4. (可選擇) 配置負載平衡。

    如需相關資訊,請參閱配置負載平衡

  5. 建立基底 DN 為 dc=example,dc=com、參考 data-source-pool-1 的資料檢視。


    $ dpconf create-ldap-data-view -h host1 -p 1389 dataview-1 \
     data-source-pool-1 dc=example,dc=com
  6. 建立基底 DN 為 ou=computer,dc=example,dc=com 、參考 data-source-pool-2 的資料檢視。


    $ dpconf create-ldap-data-view -h host1 -p 1389 dataview-2 \
     data-source-pool-2 ou=computer,dc=example,dc=com
  7. 建立基底 DN 為 ou=people,dc=example,dc=com 、參考 data-source-pool-3 的資料檢視。在資料檢視上配置分佈演算法以選取 uid 介於 099 的項目。


    $ dpconf create-ldap-data-view -h host1 -p 1389 dataview-3 \
     data-source-pool-3 ou=people,dc=example,dc=com
    $ dpconf set-ldap-data-view-prop dataview-3 distribution-algorithm:numeric \
     numeric-attrs:uid numeric-lower-bound:0 numeric-upper-bound:99
  8. 建立基底 DN 為 ou=people,dc=example,dc=com、參考 data-source-pool-4 的資料檢視,並在該資料檢視上配置分佈演算法以選取 uid 介於 100199 的項目。


    $ dpconf create-ldap-data-view -h host1 -p 1389 dataview-4 \
     data-source-pool-4 ou=people,dc=example,dc=com
    $ dpconf set-ldap-data-view-prop dataview-4 distribution-algorithm:numeric \
     numeric-attrs:uid numeric-lower-bound:100 numeric-upper-bound:199
  9. 檢視 excluded-subtrees 參數,以驗證子樹狀結構 ou=computer,dc=example, dc=com ou=people,dc=example, dc=com 已從 dataview-1 排除。


    $ dpconf get-ldap-data-view-prop -h host1 -p 1389 dataview-1 excluded-subtrees

    傳回排除的子樹狀結構清單。

  10. 重新啟動目錄代理伺服器實例,變更方可生效。

    如需有關重新啟動目錄代理伺服器的資訊,請參閱重新啟動目錄代理伺服器

第 24 章 目錄代理伺服器虛擬資料檢視

本章說明如何建立虛擬資料檢視。虛擬資料檢視以某種方式轉換資料來源,再以不同檢視向用戶端應用程式顯示該資料。虛擬資料檢視包含轉換的 LDAP 資料檢視、LDIF 資料檢視、連結資料檢視及 JDBCTM 資料檢視。如需虛擬資料檢視的功能簡介與使用範例的說明,請參閱「Sun Java System Directory Server Enterprise Edition 6.0 Reference」中的第 23 章「Virtual Data Views」

您無法使用目錄服務控制中心 (DSCC) 執行本章中的程序。必須使用指令行。

本章包含下列主題:

建立與配置 LDIF 資料檢視

LDIF 資料檢視是簡單的虛擬資料檢視,在其中 LDIF 檔案看似 LDAP 資料來源。與 LDAP 資料檢視不相同,當設定 LDIF 資料檢視時,不建立資料來源或資料來源池,而是在建立資料檢視時指定 LDIF 檔案。依預設,無法寫入 LDIF 資料檢視。如需詳細資訊,請參閱定義虛擬資料檢視的存取控制

如需有關建立與配置 LDIF 資料檢視的資訊,請參閱下列程序。

Procedure建立 LDIF 資料檢視

無法使用 DSCC 執行此作業。請依照此程序中的說明使用指令行。

  1. 建立 LDIF 資料檢視。


    $ dpconf create-ldif-data-view -h host -p port view-name path-to-ldif-file suffix-dn
    
  2. (可選擇) 檢視 LDIF 資料檢視清單。


    $ dpconf list-ldif-data-views -h host -p port
    

    虛擬存取控制資料檢視是唯一的預設 LDIF 資料檢視。該資料檢視由伺服器產生,可將請求路由至虛擬存取控制指令 (ACI)。

Procedure配置 LDIF 資料檢視

無法使用 DSCC 執行此作業。請依照此程序中的說明使用指令行。

  1. 檢視 LDIF 資料檢視的特性。


    $ dpconf get-ldif-data-view-prop -h host -p port view-name
    

    LDIF 資料檢視具有下列預設特性:


    alternate-search-base-dn                    :  ""
    alternate-search-base-dn                    :  dc=com
    attr-name-mappings                          :  none
    base-dn                                     :  suffixDN
    bind-pwd-attr                               :  userPassword
    contains-shared-entries                     :  -
    db-pwd-encryption                           :  clear-text
    description                                 :  -
    distribution-algorithm                      :  -
    dn-join-rule                                :  -
    dn-mapping-attrs                            :  none
    dn-mapping-source-base-dn                   :  none
    excluded-subtrees                           :  -
    filter-join-rule                            :  -
    is-enabled                                  :  true
    is-read-only                                :  false
    is-routable                                 :  true
    ldif-data-source                            :  /path/to/filename.ldif
    lexicographic-attrs                         :  all
    lexicographic-lower-bound                   :  none
    lexicographic-upper-bound                   :  none
    non-viewable-attr                           :  -
    non-writable-attr                           :  -
    numeric-attrs                               :  all
    numeric-default-data-view                   :  false
    numeric-lower-bound                         :  none
    numeric-upper-bound                         :  none
    pattern-matching-base-object-search-filter  :  all
    pattern-matching-dn-regular-expression      :  all
    pattern-matching-one-level-search-filter    :  all
    pattern-matching-subtree-search-filter      :  all
    process-bind                                :  -
    replication-role                            :  master
    viewable-attr                               :  all except non-viewable-attr
    writable-attr                               :  all except non-writable-attr
  2. 變更步驟 1 中所列的一或多個特性。


    $ dpconf set-ldif-data-view-prop -h host -p port view-name property:value \
     [property:value ... ]

    例如,若要變更資料檢視的來源 LDIF 檔案,請設定 ldif-data-source 特性。


    $ dpconf set-ldif-data-view-prop -h host1 -p 1389 -D cn="Proxy Manager" myLDIFDataView \
     ldif-data-source:/local/files/example.ldif

配置虛擬資料轉換

虛擬資料轉換在現有的資料檢視上定義,並從實體資料檢視建立虛擬資料檢視。如需有關其運作方式的資訊,請參閱「Sun Java System Directory Server Enterprise Edition 6.0 Reference」中的「Virtual Data Transformations」

您可以將虛擬資料轉換增加至任何類型的資料檢視:LDAP 資料檢視、LDIF 資料檢視、連結資料檢視或 JDBC 資料檢視。

Procedure增加虛擬轉換

無法使用 DSCC 執行此作業。請依照此程序中的說明使用指令行。

  1. 將轉換增加至資料檢視。


    $ dpconf add-virtual-transformation -h host -p port view-name \
     transformation-model transformation-action attribute-name [parameters...]

    請注意,根據 transformation-modeltransformation-actionparameters 可能為必要項目。如需有關轉換模式、轉換動作與轉換參數的資訊,請參閱「Sun Java System Directory Server Enterprise Edition 6.0 Reference」中的「Virtual Data Transformations」

  2. (可選擇) 檢視在資料檢視上定義的虛擬轉換的清單。

    $ dpconf list-virtual-transformations -h host -p port view-name
    

建立與配置連結資料檢視

連結資料檢視是多個資料檢視的彙總。如需有關連結資料檢視運作方式的資訊,請參閱「Sun Java System Directory Server Enterprise Edition 6.0 Reference」中的「Join Data Views」

如需有關如何建立與配置連結資料檢視的資訊,請參閱下列程序。

Procedure建立連結資料檢視

無法使用 DSCC 執行此作業。請依照此程序中的說明使用指令行。

  1. 識別要彙總以形成連結檢視的主要與輔助資料檢視。

    必須存在主要與輔助資料檢視,才能建立連結檢視。主要與輔助檢視可以是任何類型的資料檢視,包含 LDAP 資料檢視、LDIF 資料檢視、JDBC 資料檢視或其他連結資料檢視。必須配置輔助檢視上的特定特性,以允許其做為連結檢視的來源。如需詳細資訊,請參閱配置連結檢視的輔助檢視

  2. 建立連結資料檢視。


    $ dpconf create-join-data-view -h host -p port view-name primary-view secondary-view \
     suffix-dn
    
  3. (可選擇) 檢視連結檢視清單以檢查是否已成功建立資料檢視。


    $ dpconf list-join-data-views -h host -p port
    

Procedure配置連結資料檢視

無法使用 DSCC 執行此作業。請依照此程序中的說明使用指令行。

  1. 檢視連結資料檢視的特性。


    $ dpconf get-join-data-view-prop -h host -p port view-name
    

    連結資料檢視的預設特性如下:


    alternate-search-base-dn                    :  ""
    alternate-search-base-dn                    :  dc=com
    attr-name-mappings                          :  none
    base-dn                                     :  suffixDN
    contains-shared-entries                     :  -
    description                                 :  -
    distribution-algorithm                      :  -
    dn-join-rule                                :  -
    dn-mapping-attrs                            :  none
    dn-mapping-source-base-dn                   :  none
    excluded-subtrees                           :  -
    filter-join-rule                            :  -
    is-enabled                                  :  true
    is-read-only                                :  false
    is-routable                                 :  true
    lexicographic-attrs                         :  all
    lexicographic-lower-bound                   :  none
    lexicographic-upper-bound                   :  none
    non-viewable-attr                           :  -
    non-writable-attr                           :  -
    numeric-attrs                               :  all
    numeric-default-data-view                   :  false
    numeric-lower-bound                         :  none
    numeric-upper-bound                         :  none
    pattern-matching-base-object-search-filter  :  all
    pattern-matching-dn-regular-expression      :  all
    pattern-matching-one-level-search-filter    :  all
    pattern-matching-subtree-search-filter      :  all
    primary-view                                :  primary-view
    process-bind                                :  -
    replication-role                            :  master
    secondary-view                              :  secondary-view
    viewable-attr                               :  all except non-viewable-attr
    writable-attr                               :  all except non-writable-attr
  2. 變更步驟 1 中所列的一或多個特性。


    $ dpconf set-join-data-view-prop -h host -p port view-name property:value \
     [property:value ... ]

    例如,若要將資料來源的主要資料檢視變更為 myLDAPDataView,請使用下列指令:


    $ dpconf set-join-data-view-prop -h host1 -p 1389 -D cn="Proxy Manager" \
     myJoinDataView primary-view:myLDAPDataView
  3. 請視需要重新啟動目錄代理伺服器實例以使變更生效。

    如需有關重新啟動目錄代理伺服器的資訊,請參閱重新啟動目錄代理伺服器

Procedure配置連結檢視的輔助檢視

必須配置輔助資料檢視上的特定特性,以允許其做為連結檢視的來源。由於輔助檢視可以是任何類型的資料檢視,您使用的指令依賴於資料檢視類型。下列指令範例假設輔助檢視為 LDAP 資料檢視。如需此處所述特性的詳細資訊,請參閱「Sun Java System Directory Server Enterprise Edition 6.0 Reference」中的「Additional Secondary Data View Properties」

無法使用 DSCC 執行此作業。請依照此程序中的說明使用指令行。

  1. 定義確定輔助檢視如何關聯主要檢視的連結規則。

    連結規則可以是下列其中之一:

    • DN 連結規則


      $ dpconf set-ldap-data-view-prop -h host -p port secondary-view-name \
       dn-join-rule:uid=\${primary-view-name.uid},ou=People,dc=example
    • 篩選連結規則


      $ dpconf set-ldap-data-view-prop -h host -p port secondary-view-name filter-join-rule:uid=\${primary-view-name.uid}
  2. (可選擇) 指定輔助檢視上是否允許連結。

    依預設,所有資料檢視上皆允許連結。若要禁止連結至輔助資料檢視,請執行下列指令:


    $ dpconf set-ldap-data-view-prop -h host -p port secondary-view-name process-bind:false

    如需此特性的詳細資訊,請參閱「Sun Java System Directory Server Enterprise Edition 6.0 Reference」中的「Handling of Binds」

  3. (可選擇) 指定輔助檢視是否包含共用項目。


    $ dpconf set-ldap-data-view-prop -h host -p port secondary-view-name contains-shared-entries:true

    如需此特性的詳細資訊,請參閱「Sun Java System Directory Server Enterprise Edition 6.0 Reference」中的「Handling of Shared Entries」

建立與配置 JDBC 資料檢視

JDBC 資料檢視讓您能將關聯式資料庫提供給 LDAP 用戶端應用程式存取。如需有關 JDBC 資料檢視運作方式的資訊,請參閱「Sun Java System Directory Server Enterprise Edition 6.0 Reference」中的「JDBC Data Views」

如需有關如何建立與配置 JDBC 資料檢視的資訊,請參閱下列程序。

Procedure建立 JDBC 資料檢視

無法使用 DSCC 執行此作業。請依照此程序中的說明使用指令行。

  1. 為關聯式資料庫建立 JDBC 資料來源。


    $ dpconf create-jdbc-data-source -h host -p port -b db-name -B db-url -J driver-url \
     -S driver-class source-name
    

    目前,每個 JDBC 資料檢視只支援一個 JDBC 資料來源。亦即,您無法在 JDBC 資料來源之間進行負載平衡。若要存取多個 JDBC 資料來源,可以建立每個資料來源的資料檢視,再使用連結資料檢視連結所有檢視。

    建立 JDBC 資料來源時必須設定下列特性:

    db-name

    關聯式資料庫的名稱,例如 payrolldb

    db-url

    資料庫的 URL,格式為 jdbc: vendor:driver://dbhost: dbport

    db-url 不是完整的 JDBC 資料庫 URL,因為它不包含資料庫名稱。(資料庫名稱由 db-name 特性指定。)

    driver-class

    JDBC 驅動程式類別,例如 org.hsqldb.jdbcDriver

    driver-url

    JDBC 驅動程式的路徑,例如 file:/// path/to/hsqldb/lib/hsqldb.jar

  2. 建立 JDBC 資料來源池。


    $ dpconf create-jdbc-data-source-pool -h host -p port pool-name
    
  3. 將 JDBC 資料來源附加至 JDBC 資料來源池。


    $ dpconf attach-jdbc-data-source -h host -p port pool-name source-name
    
  4. 建立 JDBC 資料檢視。


    $ dpconf create-jdbc-data-view -h host -p port view-name pool-name suffix-DN
    
  5. (可選擇) 檢視 JDBC 資料檢視清單以檢查是否已成功建立資料檢視。


    $ dpconf list-jdbc-data-views -h host -p port
    

Procedure配置 JDBC 資料檢視

無法使用 DSCC 執行此作業。請依照此程序中的說明使用指令行。

  1. 檢視 JDBC 資料檢視的特性。


    $ dpconf get-jdbc-data-view-prop -h host -p port view-name
    

    JDBC 資料檢視的預設特性如下:


    alternate-search-base-dn                    :  -
    attr-name-mappings                          :  none
    base-dn                                     :  o=sql1
    contains-shared-entries                     :  -
    description                                 :  -
    distribution-algorithm                      :  -
    dn-join-rule                                :  -
    dn-mapping-attrs                            :  none
    dn-mapping-source-base-dn                   :  none
    excluded-subtrees                           :  -
    filter-join-rule                            :  -
    is-enabled                                  :  true
    is-read-only                                :  false
    is-routable                                 :  true
    jdbc-data-source-pool                       :  pool-name
    lexicographic-attrs                         :  all
    lexicographic-lower-bound                   :  none
    lexicographic-upper-bound                   :  none
    non-viewable-attr                           :  -
    non-writable-attr                           :  -
    numeric-attrs                               :  all
    numeric-default-data-view                   :  false
    numeric-lower-bound                         :  none
    numeric-upper-bound                         :  none
    pattern-matching-base-object-search-filter  :  all
    pattern-matching-dn-regular-expression      :  all
    pattern-matching-one-level-search-filter    :  all
    pattern-matching-subtree-search-filter      :  all
    process-bind                                :  -
    replication-role                            :  master
    viewable-attr                               :  all except non-viewable-attr
    writable-attr                               :  all except non-writable-attr
  2. 變更步驟 1 中所列的一或多個特性。


    $ dpconf set-jdbc-data-view-prop -h host -p port view-name property:value \
     [property:value ... ]

Procedure配置 JDBC 表格、屬性與物件類別

配置 JDBC 資料檢視時,必須同時配置下列物件:

  1. 為關聯式資料庫中的每個表格建立 JDBC 表格。


    % dpconf create-jdbc-table jdbc-table-name db-table
    

    db-table 的名稱區分大小寫。請確保使用與關聯式資料庫中相同的大小寫,否則以該表格為目標的作業可能會失敗。

  2. 為各關聯式資料庫表格中的每一欄建立 JDBC 屬性。


    % dpconf add-jdbc-attr table-name attr-name sql-column
    

    建立 JDBC 屬性會將表格欄對映至 LDAP 屬性。

  3. (可選擇) 如果關聯式資料庫中的欄區分大小寫,請變更 JDBC 屬性的 LDAP 語法。


    % dpconf set-jdbc-attr-prop table-name attr-name ldap-syntax:ces

    依預設,ldap-syntax 的值為 cis。這表示 jdbc-attr 不區分大小寫。如果關聯式資料庫區分大小寫,請將該值變更為 ces

    某些關聯式資料庫 (例如 Oracle 與 DB2) 預設為區分大小寫。依預設,LDAP 不區分大小寫。當目錄代理伺服器偵測到關聯式資料庫表格的某欄區分大小寫時,會將篩選內具有對應屬性的 ldapsearch 查詢轉譯為使用 UPPER 函數的 SQL 查詢。

    例如,將查詢 ldapsearch -b "dc=mysuffix" "(attr=abc)" 轉譯為下列 SQL 查詢:


    SELECT * FROM mytable WHERE (UPPER(attr)='ABC')

    依預設,不編製此類查詢的索引。因此,會嚴重影響此類查詢的效能。

    有兩種方法可以減輕對效能的影響:

    • 透過將 jdbc-attr 的 ldap-syntax 特性設為 ces

    • 透過使用 UPPER 函數為每個 jdbc-attr 編製 LDAP 篩選可能會使用的索引。

  4. 為 LDAP 關聯式資料庫表格建立 JDBC 物件類別。


    % dpconf create-jdbc-object-class view-name objectclass primary-table \
      [secondary-table... ] DN-pattern
    

    建立 JDBC 物件類別本質上是指定將與這些表格相關聯的 LDAP 物件類別。JDBC 物件類別還指定主要表格與輔助表格 (如果存在)。

    在建立 JDBC 物件類別時,指定 DN 模式。DN 模式顯示項目 DN 的建構方式。

  5. 如果存在輔助表格,請定義主要表格與輔助表格之間的連結規則。


    % dpconf set-jdbc-table-prop secondary-table-name filter-join-rule:join-rule
    

    連結規則定義於輔助表格上,並確定輔助表格的資料如何連結至主要表格的資料。如何定義物件類別的主要與輔助表格之間的關係頗為重要。如需詳細資訊,請參閱定義 JDBC 表格之間的關係

  6. 指定 JDBC 物件類別的超級類別。


    % dpconf set-jdbc-object-class-prop view-name objectclass super-class:value
    

    超級類別表示 JDBC 物件類別從其繼承的 LDAP 物件類別。

定義 JDBC 表格之間的關係

在最簡單的案例中,JDBC 物件類別僅包含單一 (主要) 表格。由於沒有輔助表格,因此無須定義表格之間的關係。

如果物件類別包含多個表格,必須清楚地定義這些表格之間的關係。表格之間的關係一律定義於輔助表格上。輔助表格的下列特性可讓您定義這些關係:

以下範例說明如何根據前兩個特性的值定義篩選連結規則。這些範例假設物件類別具有一個主要表格與一個輔助表格。


範例 24–1 is-single-row-table:truecontains-shared-entries:true

這是這些特性的預設值。在本例中,主要與輔助表格之間的關係為 n->1,亦即主要表格中有 n 列參照輔助表格某一共用列。

關聯式資料庫中,在主要表格中定義外來鍵 (FK),並指向輔助表格的某欄。

例如,在某個機構中,有數名員工與同一位經理共事。將定義兩個關聯式資料庫表格,具有如下結構:


primary table : EMPLOYEE [ID, NAME, FK_MANAGER_ID]
secondary table : MANAGER  [ID, NAME]

定義下列物件類別與屬性:


object-class : employee
attr : name (from primary EMPLOYEE.NAME)
attr : manager (from secondary MANAGER.NAME)

在輔助表格中定義下列篩選連結規則:


"${ID}=${EMPLOYEE.FK_MANAGER_ID}"

在此配置下,LDAP 作業的運作方式如下:



範例 24–2 is-single-row-table:truecontains-shared-entries:false

在本例中,主要與輔助表格之間的關係為 1->11<-1,亦即主要表格中有一列參照輔助表格中某一列。

在關聯式資料庫中,可能會在主要表格或輔助表格中定義外來鍵 (FK) 。

例如,在某個機構中,員工的 UID 儲存在一個表格中,而員工的姓氏則儲存在輔助表格中。將定義兩個關聯式資料庫表格,具有如下結構:


primary table : UID [ID, VALUE, FK_SN_ID]
secondary table : SN [ID, VALUE]

定義下列物件類別與屬性:


object-class : employee
attr : uid (from primary UID.VALUE)
attr : sn (from secondary ID.VALUE)

在輔助表格中定義下列篩選連結規則:


"${ID}=${UID.FK_SN_ID}"

此配置可能相反,外來鍵 FK_UID_ID 儲存在輔助表格中,並指向 UID.ID



範例 24–3 is-single-row-table:falsecontains-shared-entries:false

在本例中,主要與輔助表格之間的關係為 1->n,亦即輔助表格有 n 列參照主要表格某一列。此範例說明多值屬性案例。多值屬性在輔助表格中以列集合表示,每個屬性值一列。

關聯式資料庫中,在輔助表格中定義外來鍵,並指向主要表格的某欄。

例如,在某個機構中,每位員工具有數個電話號碼。將定義兩個關聯式資料庫表格,具有如下結構:


primary table : EMPLOYEE [ID, NAME]
secondary table : PHONE [ID, VALUE, USER_ID]

定義下列物件類別與屬性:


object-class : employee
attr : cn (from primary EMPLOYEE.NAME)
attr : telephoneNumber (from secondary PHONE.VALUE)

在輔助表格中定義下列篩選連結規則:


"${USER_ID}=${EMPLOYEE.ID}"


範例 24–4 is-single-row-table:falsecontains-shared-entries:true

目錄代理伺服器目前不支援此案例。


定義虛擬資料檢視的存取控制

虛擬資料檢視的 ACI 可以儲存在 LDAP 目錄或 LDIF 檔案中。如需有關虛擬 ACI 如何運作的資訊,請參閱「Sun Java System Directory Server Enterprise Edition 6.0 Reference」中的「Access Control On Virtual Data Views」

建立目錄代理伺服器實例時,定義虛擬存取控制的下列預設配置:

Procedure定義新的 ACI 儲存庫

若不想使用上述的預設 ACI 配置,可以定義其他儲存庫。

無法使用 DSCC 執行此作業。請依照此程序中的說明使用指令行。

  1. 建立要在其中儲存虛擬 ACI 的儲存庫之資料檢視。

  2. 將上一步驟中建立的資料檢視名稱指定為 ACI 資料檢視。

    $ dpconf set-virtual-aci-prop -h host -p port aci-data-view:data-view-name
    
  3. 如果 ACI 儲存庫為 LDAP 目錄,請定義存取 ACI 資料檢視所需的憑證。

    $ dpconf set-virtual-aci-prop -h host -p port aci-manager-bind-dn:bind-dn
    $ dpconf set-virtual-aci-prop -h host -p port aci-manager-bind-pwd-file:filename
    

Procedure配置虛擬存取控制

不論使用的 ACI 儲存庫為何,皆須配置虛擬存取控制。


備註 –

僅代理伺服器管理員可以建立 ACI 池,並經由 ACI 資料檢視直接管理 ACI。如果 ACI 儲存庫為 LDAP 目錄,則必須修改該目錄的模式以包含 aciSource 物件類別與 dpsaci 屬性。如需有關自訂模式的詳細資訊,請參閱延伸目錄伺服器模式


無法使用 DSCC 執行此作業。請依照此程序中的說明使用指令行。

  1. 在 ACI 儲存庫中建立 ACI 池,並設定全域 ACI。

    如需有關全域 ACI 的資訊,請參閱「Sun Java System Directory Server Enterprise Edition 6.0 Reference」中的「Global ACIs」。若要設定全域 ACI,請在 ACI 資料檢視的檢視基底下增加 aciSource 項目。例如:


    % ldapmodify -p port -D "cn=proxy manager" -w -
    dn: cn=data-source-name,cn=virtual access controls
    changetype: add
    objectclass: aciSource
    dpsaci: (targetattr="*") (target = "ldap:///ou=people,o=virtual") (version 3.0; \
     acl "perm1"; allow(all) groupdn="ldap:///cn=virtualGroup1,o=groups,o=virtual";)
    cn: data-source-name
    
  2. 配置一或多個連線處理程式使用此 ACI 池。


    % dpconf set-connection-handler-prop -h host -p port connection-handler aci-source:data-source-name
    
  3. 將所需的 ACI 增加至資料。

    若要執行此項作業,請建立包含 ACI 的虛擬項目。例如:


    % ldapmodify -p port -D "cn=virtual application,ou=application users,dc=com" -w -
    dn: ou=people,o=virtual
    changetype: modify
    add: dpsaci
    dpsaci: (targetattr="*")(version 3.0; acl "perm1"; allow(all) userdn ="ldap:///self";)
    dpsaci: (targetattr="*")(version 3.0; acl "perm1"; allow(search, read, compare) \
     userdn ="ldap:///anyone";)

    備註 –

    具有適當存取權限的任何使用者皆可透過資料檢視增加和擷取虛擬 ACI。


定義虛擬資料檢視的模式檢查

通常,在 LDAP 資料檢視中,由後端目錄使用後端目錄的模式執行模式檢查。若要由目錄代理伺服器執行模式檢查,請使用下列程序。

無法使用 DSCC 執行此作業。請依照此程序中的說明使用指令行。

若要正規化請求,特別是 DN,請依下列方式設定伺服器的 use-external-schema 特性:

Procedure定義模式檢查

  1. 表示伺服器實例應使用外部模式。


    $ dpconf set-server-prop -h host -p port use-external-schema:true
  2. 針對連線處理程式啟用模式檢查。


    $ dpconf set-connection-handler-prop -h host -p port connection-handler\
     schema-check-enabled:true
  3. 建立顯示 cn=schema 的資料檢視。

    如果在 LDAP 目錄中定義外部模式,請如建立與配置 LDAP 資料檢視中所述,建立檢視基底為 cn=schema 的 LDAP 資料檢視。

    如果在 LDIF 檔案中定義外部模式,請如建立與配置 LDIF 資料檢視中所述,建立檢視基底為 cn=schema 的 LDIF 資料檢視。

  4. 將此資料檢視增加至連線處理程式顯示的資料檢視清單中。

    依預設,連線處理程式顯示所有資料檢視。如果已定義連線處理程式顯示的自訂資料檢視清單,請將此資料檢視增加至清單中。您必須使用下列指令指定連線處理程式將顯示所有資料檢視。


    $ dpconf set-connection-handler-prop -h host -p port connection-handler \
     data-view-routing-custom-list:data-view-name data-view-routing-custom-list:data-view-name
    

虛擬配置範例

下節提供兩個配置範例。這些配置說明虛擬目錄的主要功能,並指出這些功能的配置方式。

連結 LDAP 目錄與 MySQL 資料庫

本節中的程序說明連結 LDAP 目錄與 MySQL 資料庫的虛擬配置範例。LDAP 目錄是主要的資料來源,包含大部分的使用者資訊。mySQL 資料庫包含關於使用者的其他資訊。下圖說明產生的配置。

圖 24–1 虛擬配置範例

圖中顯示的連結資料檢視包含 LDAP 資料檢視與 JDBC 資料檢視

您可以使用 install-path /ds6/ldif/Example.ldif 中提供的資料範例複寫本範例,或者以自己的資料替代資料範例。

此配置可分為三部分:

為簡便起見,本節中的所有指令假設目錄代理伺服器在本機的 /local/dps 中執行。這些指令還假設已設定下列環境變數:

DIR_PROXY_PORT

1389

LDAP_ADMIN_PWF

pwd.txt,包含管理員密碼的檔案。

DIRSERV_PORT

4389

LDAP_ADMIN_USER

cn=Directory Manager

配置與測試 LDAP 資料檢視

Procedure配置 LDAP 資料檢視

開始之前

本節中的作業假設下列資訊:

  1. 為目錄伺服器實例建立名為 myds1 的 LDAP 資料來源。


    % dpconf create-ldap-data-source myds1 host1:4389
  2. 啟用資料來源,並允許該資料來源的寫入作業。


    % dpconf set-ldap-data-source-prop myds1 is-enabled:true is-read-only:false
  3. 建立名為 myds1-pool 的 LDAP 資料來源池。


    % dpconf create-ldap-data-source-pool myds1-pool
  4. 將 LDAP 資料來源附加至 LDAP 資料來源池。


    % dpconf attach-ldap-data-source myds1-pool myds1
  5. 指定資料來源應從資料來源池接收 100% 的連結、增加、搜尋與修改作業。


    % dpconf set-attached-ldap-data-source-prop myds1-pool myds1 add-weight:100 \
     bind-weight:100 modify-weight:100 search-weight:100
  6. 為資料來源池建立名為 myds1–view 且基底 DN 為 dc=example,dc=com 的 LDAP 資料檢視。


    % dpconf create-ldap-data-view myds1-view myds1-pool dc=example,dc=com

Procedure測試 LDAP 資料檢視

  1. dc=example,dc=com 下使用者的身份搜尋 LDAP 資料來源中的所有項目,來驗證是否可以讀取資料檢視。


    % ldapsearch -p 1389 -D "uid=kvaughan,ou=people,dc=example,dc=com" -w bribery \
     -b dc=example,dc=com "objectclass=*"

    備註 –

    您必須使用 dc=example,dc=com 下使用者的憑證。若要使用 cn=Directory Manager,則必須定義資料檢視以處理該 DN。


  2. dc=example,dc=com 下使用者的身份修改 userPassword 屬性,來驗證是否可以寫入資料檢視。


    % ldapmodify -p 1389 -D "uid=kvaughan,ou=people,dc=example,dc=com" -w bribery
    dn: uid=kvaughan,ou=people,dc=example,dc=com
    changetype: modify
    replace: userPassword
    userPassword: myNewPassword

    備註 –

    目錄伺服器中的預設 ACI 可讓使用者修改自己的密碼。


配置與測試 JDBC 資料檢視

下列作業假設 mySQL 資料庫已安裝、且正在執行並已寫入資料,以及 mySQL 資料庫具有下列特徵:

下表說明資料庫中的表格及其複合欄位。您需要此資訊才能設定 JDBC 資料檢視。

mySQL 表格 

欄位 

EMPLOYEE

IDSURNAMEPASSWORDTITLECOUNTRY_ID

COUNTRY

IDNAME

PHONE

USER_IDNUMBER

Procedure配置 JDBC 資料檢視

  1. 為 SQL 資料庫建立名為 mysql1 的 JDBC 資料來源。


    % dpconf create-jdbc-data-source -b sample_sql -B jdbc:mysql://host2:3306 \
     -J file:/net/host2.example/local/mysql/lib/jdbc.jar -S com.mysql.jdbc.Driver mysql1
  2. 指定 SQL 資料庫的使用者名稱與密碼檔案。


    % dpconf set-jdbc-data-source-prop mysql1 db-pwd-file:sqlpwd.txt db-user:root
  3. 重新啟動代理伺服器。


    % dpadm restart /local/dps
  4. 啟用資料來源,並允許該資料來源的寫入作業。


    % dpconf set-jdbc-data-source-prop mysql1 is-enabled:true is-read-only:false
  5. 建立名為 mysql1–pool 的 JDBC 資料來源池。


    % dpconf create-jdbc-data-source-pool mysql1-pool
  6. 將 JDBC 資料來源附加至資料來源池。


    % dpconf attach-jdbc-data-source mysql1-pool mysql1
  7. 為資料來源池建立名為 myjdbc1–view 且基底 DN 為 o=sql 的 JDBC 資料檢視。


    % dpconf create-jdbc-data-view mysql1-view mysql1-pool o=sql
  8. 為 MySQL 資料庫中的每個表格建立 JDBC 表格。


    % dpconf create-jdbc-table employee1 EMPLOYEE
    % dpconf create-jdbc-table country1 COUNTRY
    % dpconf create-jdbc-table phone1 PHONE

    SQL 資料庫中表格的名稱區分大小寫。請確保使用與 SQL 資料庫中相同的大小寫。

  9. 為各表格中的每一欄建立 JDBC 屬性。

    建立 JDBC 屬性會將 MySQL 欄對映至 LDAP 屬性。


    % dpconf add-jdbc-attr employee1 uid ID
    % dpconf add-jdbc-attr employee1 sn SURNAME
    % dpconf add-jdbc-attr employee1 userPassword PASSWORD
    % dpconf add-jdbc-attr employee1 room ROOM
    % dpconf add-jdbc-attr phone1 tel NUMBER
    % dpconf add-jdbc-attr country1 country NAME

    由於 phone1 user_idcountry1 id 欄僅在 MySQL 資料庫環境中使用,因此無須為這兩欄建立 JDBC 屬性。這兩欄不具有對應的 LDAP 屬性。

  10. 為 LDAP person 物件類別建立 JDBC 物件類別。

    在此步驟中,將 employee1 表格識別為主要表格,而將 country1phone1 表格識別為輔助表格。JDBC 物件類別的建立作業也需要 DN。在此範例中,DN 從資料檢視的 uid 屬性與基底 DN 中建構。


    % dpconf create-jdbc-object-class mysql1-view person employee1 country1 phone1 uid
  11. 定義主要表格與輔助表格之間的連結規則。

    連結規則定義於輔助表格上,並確定輔助表格的資料如何連結至主要表格的資料。


    % dpconf set-jdbc-table-prop country1 filter-join-rule:'ID=${EMPLOYEE.COUNTRY_ID}'
    % dpconf set-jdbc-table-prop phone1 filter-join-rule:'USER_ID=${EMPLOYEE.ID}'
  12. 指定 JDBC 物件類別的超級類別。

    超級類別表示 JDBC 物件類別從其繼承屬性的 LDAP 物件類別。


    % dpconf set-jdbc-object-class-prop mysql1-view person super-class:top

Procedure建立所需的 ACI

您必須透過配置 ACI 以啟用資料檢視的寫入存取,才能測試 JDBC 資料檢視。依預設拒絕對非 LDAP 資料檢視的寫入存取。就本例目的而言,增加一個允許使用者修改其密碼的全域 ACI 即已足夠。

  1. 以代理伺服器管理員的身份將 ACI 池增加至 JDBC 資料來源,並增加一個全域 ACI 以允許使用者修改其項目。


    % ldapmodify -p 1389 -D "cn=proxy manager" -w password
    dn: cn=mysql1,cn=virtual access controls
    changetype: add
    objectclass: acisource
    dpsaci: (targetattr="*") (target = "ldap:///o=sql") \
     (version 3.0; acl "enable all access for all users "; allow(all) userdn="ldap:///self";)
    cn: mysql1
  2. 建立連線處理程式處理與 o=sql 網域的連線。


    % dpconf create-connection-handler mysql1-handler
  3. 啟用連線處理程式,並將其配置為處理來自 o=sql 網域中使用者的所有連結。


    % dpconf set-connection-handler-prop mysql1-handler is-enabled:true \
     bind-dn-filters:"uid=.*,o=sql"
  4. 將連線處理程式配置為使用先前增加的 ACI 池。


    % dpconf set-connection-handler-prop mysql1-handler aci-source:mysql1

Procedure測試 JDBC 資料檢視

  1. o=sql 下使用者的身份搜尋 JDBC 資料來源,來驗證是否可以讀取資料檢視。


    % ldapsearch -p 1389 -D "uid=kvaughan,o=sql" -w mypwd -b o=sql "objectclass=*"

    備註 –

    您必須使用 o=sql 下使用者的憑證或匿名連結。


  2. o=sql 下使用者的身份修改 userPassword 屬性,來驗證是否可以寫入資料檢視。


    % ldapmodify -p 1389 -D "uid=kvaughan,o=sql" -w mypwd
    dn: uid=kvaughan,o=sql
    changetype: modify
    replace: userPassword
    userPassword: myNewpwd

建立與測試連結資料檢視

Procedure建立連結資料檢視

  1. 建立名為 myjoin1–view 的連結資料檢視。

    將 LDAP 資料檢視指定為主要資料檢視,而 JDBC 資料檢視為輔助資料檢視。


    % dpconf create-join-data-view myjoin1-view myds1-view mysql1-view o=join
  2. 在輔助資料檢視上定義連結規則。

    下列連結規則指定輔助資料檢視項目的 uid 屬性應與主要資料檢視項目的 uid 屬性相符。


    % dpconf set-jdbc-data-view-prop mysql1-view filter-join-rule:uid='${myds1-view.uid}'
  3. 定義可以透過連結資料檢視從主要資料檢視讀取及寫入主要資料檢視的一組屬性。


    % dpconf set-ldap-data-view-prop myds1-view viewable-attr:dn viewable-attr:cn \
     viewable-attr:sn viewable-attr:givenName viewable-attr:objectClass viewable-attr:ou \
     viewable-attr:l viewable-attr:uid viewable-attr:mail viewable-attr:telephoneNumber \
     viewable-attr:facsimileTelephoneNumber viewable-attr:roomNumber viewable-attr:userPassword
    % dpconf set-ldap-data-view-prop myds1-view writable-attr:dn writable-attr:cn \
     writable-attr:sn writable-attr:givenName writable-attr:objectClass writable-attr:ou \
     writable-attr:l writable-attr:uid writable-attr:mail writable-attr:telephoneNumber \
     writable-attr:facsimileTelephoneNumber writable-attr:roomNumber writable-attr:userPassword

    這些定義僅套用至連結檢視的環境中。依預設,如果直接存取 LDAP 資料檢視,則可以讀取與寫入所有屬性。

  4. 定義可以透過連結資料檢視從輔助資料檢視讀取及寫入輔助資料檢視的一組屬性。


    % dpconf set-jdbc-data-view-prop mysql1-view viewable-attr:dn viewable-attr:objectclass \
     viewable-attr:sn viewable-attr:room viewable-attr:userpassword viewable-attr:jobtitle \
     viewable-attr:country viewable-attr:tel
    % dpconf set-jdbc-data-view-prop mysql1-view writable-attr:dn writable-attr:objectclass \
     writable-attr:sn writable-attr:room writable-attr:userpassword writable-attr:jobtitle \
     writable-attr:country writable-attr:tel

    這些定義僅會套用到連結檢視的環境中。依預設,如果直接存取 JDBC 資料檢視,則可以讀取與寫入所有屬性。

Procedure建立所需的 ACI

  1. 以代理伺服器管理員的身份增加全域 ACI,來允許對連結資料檢視的匿名存取。


    % ldapmodify -p 1389 -D "cn=proxy manager" -w password
    dn: cn=myjoin1,cn=virtual access controls
    changetype: add
    objectclass: acisource
    dpsaci: (targetattr="*") (target = "ldap:///o=join") \
     (version 3.0; acl "anonymous_access"; allow(all) userdn="ldap:///anyone";)
    cn: myjoin1
  2. 建立連線處理程式處理與 o=join 網域的連線。


    % dpconf create-connection-handler myjoin1-handler
  3. 啟用連線處理程式,並將其配置為處理來自 o=join 下使用者的所有連結。


    % dpconf set-connection-handler-prop myjoin1-handler is-enabled:true \
     bind-dn-filters:"uid=.*,ou=people,o=join"
  4. 將連線處理程式配置為使用先前增加的 ACI 池。


    % dpconf set-connection-handler-prop myjoin1-handler aci-source:myjoin1

Procedure測試連結資料檢視

  1. 以匿名使用者身份搜尋連結資料檢視。

    此步驟將搜尋 Kirsten Vaughan 的項目,以查看是否同時從兩個連結檢視擷取資料。


    % ldapsearch -p 1389 -b o=join "uid=kvaughan"

    請注意,傳回的項目包含 LDAP 資料檢視與 JDBC 資料檢視的屬性。

  2. o=join 下使用者的身份修改 userPassword 屬性,來驗證是否可以寫入連結資料檢視。


    % ldapmodify -p 1389 -D "uid=kvaughan,ou=people,o=join" -w myNewPassword
    dn: uid=kvaughan,ou=people,o=join
    changetype: modify
    replace: userPassword
    userPassword: myPassword

連結多個不同的資料來源

此配置以 Example.com 機構為例,說明虛擬目錄的部分功能可以滿足其特定的目錄服務需求。

資料儲存方案

Example.com 將機構資料儲存在多個不同的資料來源中。為了支援舊版,使用者資料分佈在 LDAP 目錄、平面 LDIF 檔案與 SQL 資料庫中。人力資源部門將使用者資料儲存在基底 DN 為 o=example.com 的 LDAP 目錄中。薪資部門將資料儲存在 SQL 資料庫中。管理部門將部門與大樓編號等管理資料儲存在基底 DN 為 dc=example,dc=com 的 LDIF 檔案中。

此外,Example.com 已買入名為 Company22 的公司。Company22 也將其使用者資料儲存在基底 DN 為 dc=company22,dc=com 的 LDAP 目錄中。

下圖提供如何儲存 Example.com 使用者資料的高階檢視。

圖 24–2 不同來源中的資料儲存

該圖顯示 Example.com 的使用者資料如何儲存在不同的資料來源中

用戶端應用程式需求

Example.com 具有數個必須能夠存取儲存在不同資料來源中的資料的 LDAP 用戶端應用程式。這些用戶端應用程式的需求不盡相同。因此需要不同的資料檢視。在某些情況下,用戶端必須彙總資料。此外,某些用戶端應用程式必須能夠存取 Company22 的使用者資料,以便能夠同時管理 Example.com 的新舊員工。

下圖提供 Example.com 用戶端應用程式需求的高階檢視。

圖 24–3 用戶端應用程式需求

該圖顯示 Example.com 的 LDAP 應用程式需求

以下幾節引導您充分配置目錄代理伺服器資料檢視,以滿足本範例方案中所述之用戶端應用程式需求。如需有關資料檢視如何運作的資訊,請參閱「Sun Java System Directory Server Enterprise Edition 6.0 Reference」中的第 22 章「Directory Proxy Server LDAP Data Views」「Sun Java System Directory Server Enterprise Edition 6.0 Reference」中的第 23 章「Virtual Data Views」

範例方案的配置分為下列幾節:

彙總來自人力資源部門 LDAP 目錄與管理部門 LDIF 檔案的資料

人力資源部門儲存員工姓名、工作開始資料與工作職級等資訊。管理部門儲存其他資料,例如大樓代碼與辦公室編號。處理人力資源部門資料的用戶端應用程式必須能夠存取合併自這兩個來源的資料。這兩個資料來源具有存在於每個項目中的共用屬性 employeeNumber

下圖說明用戶端應用程式的需求。

圖 24–4 來自 LDAP 目錄與 LDIF 檔案的資料彙總

該圖顯示 LDAP 目錄與 LDIF 檔案的連結檢視

若要滿足此應用程式需求,必須為薪資部門的目錄與管理部門的 LDIF 檔案建立資料檢視。然後,連結這兩個資料檢視以提供對彙總資料的存取。此共用屬性可讓目錄代理伺服器彙總每個使用者的資料。

為簡便起見,本節中所用的指令假設下列資訊:

若要取得每個指令的完整語法,請執行不含任何選項的指令。例如:

$ dpconf create-ldap-data-view
Operands are missing
Usage: dpcfg create-ldap-data-view VIEW_NAME POOL_NAME SUFFIX_DN

Procedure建立與啟用薪資部門目錄的 LDAP 資料檢視

  1. 為薪資部門目錄建立 LDAP 資料來源。

    $ dpconf create-ldap-data-source payroll-directory payrollHost:2389
  2. 為薪資部門目錄建立 LDAP 資料來源池。

    $ dpconf create-ldap-data-source-pool payroll-pool
  3. 將薪資部門資料來源附加至資料來源池。

    $ dpconf attach-ldap-data-source payroll-pool payroll-directory
  4. 建立薪資部門目錄的 LDAP 資料檢視。

    $ dpconf create-ldap-data-view payroll-view payroll-pool o=example.com
  5. 啟用 LDAP 資料檢視以將用戶端請求路由至此資料檢視。

    $ dpconf set-ldap-data-view-prop payroll-view is-enabled:true
  6. 重新啟動目錄代理伺服器以使變更生效。

    $ dpadm restart /local/myDPS

Procedure建立與啟用管理部門資料的 LDIF 資料檢視

  1. 建立管理部門資料的 LDIF 資料檢視。

    $ dpconf create-ldif-data-view admin-view example.ldif dc=example,dc=com
  2. 啟用管理部門資料的 LDIF 資料檢視。

    $ dpconf set-ldif-data-view-prop admin-view is-enabled:true
  3. 指定管理部門檢視包含薪資部門檢視中多個項目所使用的項目。

    $ dpconf set-ldif-data-view-prop admin-view contains-shared-entries:true

    當此特性設為 TRUE 時,刪除薪資部門資料檢視中的某項目,不會導致刪除管理部門資料檢視中的共用項目。如果某項目不存在,將該項目增加至薪資部門資料檢視僅會將其增加至輔助資料檢視。

  4. 重新啟動目錄代理伺服器以使變更生效。

    $ dpadm restart /local/myDPS

Procedure連結薪資部門資料檢視與管理部門資料檢視

  1. 建立管理部門資料檢視的篩選連結規則,以指定彙總資料的方式。

    下列連結規則指定應根據使用者項目的 employeeNumber 屬性連結資料。

    $ dpconf set-ldif-data-view-prop admin-view filter-join-rule:'employeeNumber=\${payroll-view.employeeNumber}'
  2. 建立彙總這兩個資料檢視的連結資料檢視。

    對於此連結資料檢視,該機構使用尾碼 DN dc=example,dc=com

    $ dpconf create-join-data-view example-join-view payroll-view admin-view dc=example,dc=com

透過重新命名 DN 將資料從 Company22 增加至 Example.Com 的 DIT

Company22 的使用者資料儲存在 DN dc=company22,dc=com 下。雖然 Example.com 希望在大多數情況下能夠單獨儲存此使用者資料,但卻只有一個用戶端應用程式同時管理 Company 22 員工與其他 Example.com 員工。此用戶端應用程式要求 Company22 的使用者資料必須類似於 Example.com 的資料。

下圖說明用戶端應用程式的需求。

圖 24–5 DN 重新命名

該圖顯示重新命名 DN 以將資料增加至 DIT

若要滿足此應用程式需求,必須為 Company22 的目錄建立虛擬 DN 為 dc=example,dc=com 的資料檢視。

為簡便起見,本節中所用的指令假設下列資訊:

Procedure為 Company 22 的目錄建立含虛擬 DN 的資料檢視

  1. 為 Company 22 的目錄建立 LDAP 資料來源。

    $ dpconf create-ldap-data-source company22-directory company22Host:2389
  2. 為 Company 22 的目錄建立 LDAP 資料來源池。

    $ dpconf create-ldap-data-source-pool company22-pool
  3. 將 Company 22 的資料來源附加至資料來源池。

    $ dpconf attach-ldap-data-source company22-pool company22-directory
  4. 為 Company 22 的目錄建立虛擬 DN 為 dc=example,dc=com 的 LDAP 資料檢視。

    $ dpconf create-ldap-data-view company22-view company22-pool dc=example,dc=com
  5. 指示目錄代理伺服器將此虛擬 DN 對映至 Company 22 目錄中的實際 DN。

    $ dpconf set-ldap-data-view-prop company22-view dn-mapping-source-base-dn:dc=company22,dc=com
  6. 啟用 Company 22 目錄的 LDAP 資料檢視,以將用戶端請求路由至此資料檢視。

    $ dpconf set-ldap-data-view-prop company22-view is-enabled:true
  7. 重新啟動目錄代理伺服器以使變更生效。

    $ dpadm restart /local/myDPS

將 Company 22 的資料增加至人力資源部門的資料

人力資源部門需要 Example.com 與新買入的 Company 22 人力資源部門資料的彙總檢視。下圖說明人力資源部門全域應用程式的需求。

圖 24–6 來自連結資料檢視與 LDAP 資料檢視的資料彙總

該圖顯示 LDAP 目錄與其他連結檢視的複合連結檢視

Procedure連結範例連接資料檢視與 Company 22 資料檢視

  1. 建立 Company 22 資料檢視的篩選連結規則,以指定彙總資料的方式。

    下列連結規則指定應根據使用者項目的 employeeNumber 屬性連結資料。

    $ dpconf set-ldif-data-view-prop company22-view filter-join-rule:'employeeNumber=\${example-join-view.employeeNumber}'
  2. 建立彙總 Company 22 的資料檢視與 Example.com 連結資料檢視的連結資料檢視。

    $ dpconf create-join-data-view global-join-view example-join-view company22-view dc=example,dc=com

讓 LDAP 用戶端存取 SQL 資料庫中的薪資部門資料

Example.com 的薪資部門將薪水資料儲存在 SQL 資料庫中。該資料庫有兩個表格,分別為 employee 表格與 salary 表格。Example.com 具有要求能夠存取那些資料的 LDAP 用戶端應用程式。用戶端應用程式要求 SQL 資料必須類似於 LDAP 資料。

下圖說明用戶端應用程式的需求。

圖 24–7 提供 SQL 資料庫存取的 JDBC 資料檢視

該圖顯示提供 SQL 資料庫存取的 JDBC 資料檢視

若要滿足此應用程式需求,必須建立 JDBC 資料檢視將 SQL 表格中的欄對映至 LDAP 屬性。

為簡便起見,本節中所用的指令假設下列資訊:

Procedure為 Example.com 的薪資部門資料庫建立 JDBC 資料檢視

  1. 為薪資部門資料庫建立 JDBC 資料來源。

    $ dpconf create-jdbc-data-source payroll-src myPassword
  2. 以 SQL 資料庫的特性配置 JDBC 資料來源。

    $ dpconf set-jdbc-data-source-prop payroll-src db-user:proxy
      db-pwd:myPassword
      db-url:jdbc:payrollsqldb:payrollsql://localhost
      driver-url:file://payrollsqldb.jar
      driver-class:org.payrollsqldb.jdbcDriver
      
  3. 啟用 JDBC 資料來源。

    $ dpconf set-jdbc-data-source-prop payroll-src is-enabled:true
  4. 為薪資部門資料庫建立 JDBC 資料來源池。

    $ dpconf create-jdbc-data-source-pool payroll-pool
  5. 將薪資部門資料來源附加至資料來源池。

    $ dpconf attach-jdbc-data-source payroll-pool payroll-src
  6. 為薪資部門資料庫建立虛擬 DN 為 o=payroll 的 JDBC 資料檢視。

    $ dpconf create-jdbc-data-view payroll-view payroll-pool o=payroll
  7. 為 SQL 資料庫中的每個表格建立 JDBC 表格。

    $ dpconf create-jdbc-table jdbc-employee employee
    $ dpconf create-jdbc-table jdbc-salary salary
  8. 為 SQL 表格中的每一欄增加 JDBC 屬性。

    $ dpconf add-jdbc-attr jdbc-employee eid employee_id
    $ dpconf add-jdbc-attr jdbc-employee first firstname
    $ dpconf add-jdbc-attr jdbc-employee last lastname
    $ dpconf add-jdbc-attr jdbc-employee description description
    $ dpconf add-jdbc-attr jdbc-employee spouse spousename
    $ dpconf add-jdbc-attr jdbc-salary salary salary
    $ dpconf add-jdbc-attr jdbc-salary social ssn
  9. 指定可以透過 JDBC 資料檢視進行檢視與寫入的屬性。

    $ dpconf set-jdbc-data-view-prop payroll-view \
     viewable-attr:eid
     viewable-attr:first
     viewable-attr:last
     viewable-attr:desc
     viewable-attr:spouse
     viewable-attr:salary
     viewable-attr:social 
     $ dpconf set-jdbc-data-view-prop payroll-view \
     writable-attr:eid
     writable-attr:first
     writable-attr:last
     writable-attr:description
     writable-attr:spouse
     writable-attr:salary
    writable-attr:social
  10. 建立對映至 LDAP 物件類別的 JDBC 物件類別。

    下列指令建立對映至 LDAP person 物件類別的物件類別。該物件類別指定員工表格應作為主要表格使用,而薪資表格應用做輔助表格。eid 屬性應用來建構 DN。

    $ dpcfg create-jdbc-object-class payroll-view \
     person jdbc-employee jdbc-salary eid
  11. 在輔助表格上建立篩選連結規則,以指定輔助表格的資料如何連結至主要表格的資料。

    下列連結規則指定應根據 employee_id 屬性連結資料。

    $ dpconf set-jdbc-table-prop jdbc-salary filter-join-rule:'employee_id=\${employee.employee_id}'
  12. 建立 JDBC 物件類別的超級類別。

    $ set-jdbc-object-class-prop payroll-view person super-class:extensibleObject

增加虛擬存取控制

透過在 LDAP 目錄中定義 ACI 可處理該目錄的存取控制。透過虛擬資料檢視存取資料來源時,必須定義 ACI 僅會套用至透過這些資料檢視進行檢視的資料。

連線處理程式控制透過目錄代理伺服器的所有存取。如需有關連線處理程式的資訊,請參閱第 25 章, 目錄代理伺服器連線處理程式

Procedure增加允許匿名存取的 ACI

  1. 增加 ACI。

    $ ldapadd -v -D "cn=proxy manager" -w password -p 389
    dn: cn=ldifonly-acis,cn=virtual access controls
    objectclass: top
    objectclass: aciSource
    cn: ldifonly-acis
    dpsaci: (targetattr="*")(version 3.0; acl "anonymous_access"; allow(all) (userdn="ldap:///anyone");)
  2. 將連線處理程式指向虛擬 ACI。

    $ dpconf set-connection-handler-prop anonymous aci-source:ldifonly-acis
  3. 啟用連線處理程式。

    $ dpconf set-connection-handler-prop anonymous is-enabled:true

第 25 章 目錄代理伺服器連線處理程式

如需連線處理程式的角色簡介與連線處理程式中所使用條件與策略的說明,請參閱「Sun Java System Directory Server Enterprise Edition 6.0 Reference」中的第 21 章「Directory Proxy Server Connection Handlers」。F

本章包含下列主題:

建立、配置與刪除連線處理程式

如需有關如何建立、配置與刪除連線處理程式,以及如何配置資料檢視相似性的資訊,請參閱下列程序。

Procedure建立連線處理程式

您可以使用 DSCC 執行此作業。如需有關資訊,請參閱目錄服務控制中心介面與 DSCC 線上說明。

  1. 建立連線處理程式。


    $ dpconf create-connection-handler -h host -p port connection-handler-name
    
  2. (可選擇) 檢視連線處理程式的清單。


    $ dpconf list-connection-handlers -h host -p port
    

Procedure配置連線處理程式

開始之前

連線處理程式的特性必須依據針對目錄代理伺服器實例所定義的其他連線處理程式特性進行定義。請考量所有連線處理程式的特性,以確保這些連線處理程式指定不同的條件集和正確設定優先權。

您可以使用 DSCC 執行此作業。如需有關資訊,請參閱目錄服務控制中心介面與 DSCC 線上說明。

  1. 檢視連線處理程式的詳細清單,以查看這些連線處理程式的主要特性與相關特性。


    $ dpconf list-connection-handlers -h host -p port -v
    Name                        is-enabled  priority  description
    --------------------------  ----------  --------  ---------------------------
    anonymous                   false       99        unauthenticated connections
    default connection handler  true        100       default connection handler

    建立目錄代理伺服器實例時,即會建立連線處理程式 anonymousdefault connection handler

  2. 檢視單一連線處理程式的所有特性。


    $ dpconf get-connection-handler-prop -h host -p port connection-handler-name
    

    新連線處理程式的預設特性如下:


    aci-source                     :  -
    allowed-auth-methods           :  anonymous
    allowed-auth-methods           :  sasl
    allowed-auth-methods           :  simple
    allowed-ldap-ports             :  ldap
    allowed-ldap-ports             :  ldaps
    bind-dn-filters                :  any
    data-view-routing-custom-list  :  -
    data-view-routing-policy       :  all-routable
    description                    :  -
    domain-name-filters            :  any
    enable-data-view-affinity      :  false
    ip-address-filters             :  any
    is-enabled                     :  false
    is-ssl-mandatory               :  false
    priority                       :  99
    request-filtering-policy       :  no-filtering
    resource-limits-policy         :  no-limits
    schema-check-enabled           :  false
    user-filter                    :  any
  3. 配置連線處理程式的優先權。


    $ dpconf set-connection-handler-prop -h host -p port connection-handler-name priority:value
    

    優先權可以是從 1 到 100 的任何數字,其中 1 具有最高的優先權。對於目錄代理伺服器實例,會以優先權順序評估連線處理程式。

  4. (可選擇) 指定連線處理程式的 DN 篩選特性。

    此特性可讓您控制基於部分或所有連結 DN 的存取權。此特性的值是常規表示式。


    $ dpconf set-connection-handler-prop -h host -p port connection-handler-name \
     bind-dn-filters:regular-expression
    

    連結 DN 篩選器採用 JavaTM 常規表示式的格式。如需有關建立 Java 常規表示式的資訊,請參閱 http://java.sun.com/j2se/1.4.2/docs/api/java/util/regex/Pattern.html

    例如,若要從 ou=people,dc=example,dc=com 下的使用者傳送所有連結至名為 secure-handler 的連線處理程式,請依下列方式設定 bind-dn-filters 特性:


    $ dpconf set-connection-handler-prop -h host1 -p 1389 secure-handler \
     bind-dn-filters:"uid=.*,ou=people,dc=example,dc=com"
  5. (可選擇) 指定搭配此連線處理程式使用的請求篩選策略名稱。


    $ dpconf set-connection-handler-prop -h host -p port connection-handler-name \
     request-filtering-policy:policy-name
    

    其中 policy-name 是現有請求篩選策略的名稱。如需有關如何建立與配置請求篩選策略的資訊,請參閱建立與配置請求篩選策略與搜尋資料隱藏規則

  6. (可選擇) 指定搭配此連線處理程式使用的資源限制策略名稱。


    $ dpconf set-connection-handler-prop -h host -p port connection-handler-name \
     resource-limits-policy:policy-name
    

    其中 policy-name 是現有資源限制策略的名稱。如需有關如何建立與配置資源限制策略的資訊,請參閱建立與配置資源限制策略

  7. 配置步驟 2 中列出的所有其他特性。


    $ dpconf set-connection-handler-prop -h host -p port connection-handler-name \
     property:value [property:value ...]

    例如,將連線處理程式配置為僅接受 SSL 連線。


    $ dpconf set-connection-handler-prop -h host -p port connection-handler-name \
     is-ssl-mandatory:true

    如需特性的說明及其有效值清單,請執行此指令:


    $ dpconf help-properties connection-handler
  8. 啟用連線處理程式。


    $ dpconf set-connection-handler-prop -h host -p port connection-handler-name is-enabled:true
  9. 請視需要重新啟動目錄代理伺服器實例以使變更生效。

    如需有關重新啟動目錄代理伺服器的資訊,請參閱重新啟動目錄代理伺服器

Procedure刪除連線處理程式

您可以使用 DSCC 執行此作業。如需有關資訊,請參閱目錄服務控制中心介面與 DSCC 線上說明。

  1. (可選擇) 檢視連線處理程式的清單。


    $ dpconf list-connection-handlers -h host -p port
    
  2. 刪除一或多個連線處理程式。


    $ dpconf delete-connection-handler -h host -p port connection-handler-name [connection-handler-name ... ]

Procedure配置資料檢視的相似性

當連線處理程式配置了連線時,該連線處理程式配置的資料檢視清單或所有已配置資料檢視中,會顯示該連線上的所有請求。該連線上後續的請求僅會顯示在第一次請求所使用的資料檢視中。

您可以使用 DSCC 執行此作業。如需有關資訊,請參閱目錄服務控制中心介面與 DSCC 線上說明。

  1. 啟用資料檢視的相似性。


    $ dpconf set-connection-handler-prop -h host -p port connection-handler-name \
     enable-data-view-affinity:true
  2. (可選擇) 配置連線處理程式,以將請求路由至自訂的資料檢視清單。


    $ dpconf set-connection-handler-prop -h host -p port connection-handler-name data-view-routing-policy:custom
  3. (可選擇) 配置資料檢視清單。


    $ dpconf set-connection-handler-prop -h host -p port connection-handler-name \
     data-view-routing-custom-list:view-name [data-view-routing-custom-list:view-name ...]

建立與配置請求篩選策略與搜尋資料隱藏規則

如需請求篩選策略的簡介,請參閱「Sun Java System Directory Server Enterprise Edition 6.0 Reference」中的「Request Filtering Policies for Connection Handlers」。如需搜尋資料隱藏規則的簡介,請參閱「Sun Java System Directory Server Enterprise Edition 6.0 Reference」中的「Search Data Hiding Rules in the Request Filtering Policy」

如需有關如何建立與配置請求篩選策略和搜尋資料隱藏規則的資訊,請參閱下列程序。

Procedure建立請求篩選策略

您可以使用 DSCC 執行此作業。如需有關資訊,請參閱目錄服務控制中心介面與 DSCC 線上說明。

  1. 建立請求篩選策略。


    $ dpconf create-request-filtering-policy policy-name
    
  2. 將請求篩選策略與連線處理程式關聯。


    $ dpconf set-connection-handler-prop -h host -p port connection-handler-name \
     request-filtering-policy:policy-name
    

Procedure配置請求篩選策略

您可以使用 DSCC 執行此作業。如需有關資訊,請參閱目錄服務控制中心介面與 DSCC 線上說明。

  1. 檢視請求篩選策略的特性。


    $ dpconf get-request-filtering-policy-prop -h host -p port policy-name
    

    請求篩選策略的預設特性如下:


    allow-add-operations                :  true
    allow-bind-operations               :  true
    allow-compare-operations            :  true
    allow-delete-operations             :  true
    allow-extended-operations           :  true
    allow-inequality-search-operations  :  true
    allow-modify-operations             :  true
    allow-rename-operations             :  true
    allow-search-operations             :  true
    allowed-comparable-attrs            :  all
    allowed-search-scopes               :  base
    allowed-search-scopes               :  one-level
    allowed-search-scopes               :  subtree
    allowed-subtrees                    :  ""
    description                         :  -
    prohibited-comparable-attrs         :  none
    prohibited-subtrees                 :  none
  2. 透過設定步驟 1 中所列的一或多個特性,配置請求篩選策略。


    $ dpconf set-request-filtering-policy-prop -h host -p port policy-name \
      property:value [property:value ...]

    透過設定步驟 1 中所列的特性,可以配置請求篩選策略的下列功能:

    • 允許用戶端執行的作業類型

    • 顯示給用戶端或向用戶端隱藏的子樹狀結構

    • 搜尋作業的範圍

    • 搜尋篩選的類型

    • 搜尋和比較作業中可以比較或無法比較的屬性類型

Procedure建立搜尋資料隱藏規則

您可以使用 DSCC 執行此作業。如需有關資訊,請參閱目錄服務控制中心介面與 DSCC 線上說明。

  1. 建立請求篩選策略的一或多個搜尋資料隱藏規則。


    $ dpconf create-search-data-hiding-rule -h host -p port policy-name rule-name \
     [rule-name ...]
  2. 檢視搜尋資料隱藏規則的特性。


    $ dpconf get-search-data-hiding-rule-prop policy-name rule-name
    

    搜尋資料隱藏規則的預設特性如下:


    attrs                              :  -
    rule-action                        :  hide-entry
    target-attr-value-assertions       :  -
    target-dn-regular-expressions      :  -
    target-dns                         :  -
  3. 透過設定步驟 2 中所列的一或多個特性,配置搜尋資料隱藏規則。


    $ dpconf set-search-data-hiding-rule-prop -h host -p port policy-name rule-name \
      property:value [property:value ...]

    可以使用下列規則動作其中之一:

    hide-entry

    不傳回目標項目。

    hide-attributes

    傳回目標項目,但篩選出指定的屬性。

    show-attributes

    傳回目標項目,但篩選出未指定的屬性。

    規則可套用至下列項目:

    target-dns

    具有指定 DN 的項目

    target-dn-regular-expressions

    具有指定 DN 模式的項目

    target-attr-value-assertions

    具有指定屬性名稱與屬性值對 (attrName#attrValue ) 的項目

    下列配置定義了隱藏 inetorgperson 類型項目的搜尋資料隱藏規則。


    $ dpconf set-search-data-hiding-rule-prop -h host1 -p port my-policy my-rule \
      target-attr-value-assertions:objectclass#inetorgperson

請求篩選策略與搜尋資料隱藏規則範例

下列範例包含請求篩選策略與搜尋資料隱藏規則。將請求篩選策略與搜尋資料隱藏規則結合時,存取資料的限制如下:


範例 25–1 請求篩選策略範例


allow-add-operations                :  false
allow-bind-operations               :  true
allow-compare-operations            :  true
allow-delete-operations             :  false
allow-extended-operations           :  false
allow-inequality-search-operations  :  true
allow-modify-operations             :  false
allow-rename-operations             :  false
allow-search-operations             :  true
allowed-comparable-attrs            :  all
allowed-search-scopes               :  base
allowed-search-scopes               :  one-level
allowed-search-scopes               :  subtree
allowed-subtrees                    :  ou=people,dc=sun,dc=com
description                         :  myRequestFilteringPolicy
prohibited-comparable-attrs         :  none
prohibited-subtrees                 :  none


範例 25–2 搜尋資料隱藏規則範例


attrs                              :  -
rule-action                        :  hide-entry
target-attr-value-assertions       :  objectclass:inetorgperson
target-dn-regular-expressions      :  -
target-dns                         :  -

建立與配置資源限制策略

如需資源限制策略的簡介,請參閱「Sun Java System Directory Server Enterprise Edition 6.0 Reference」中的「Resource Limits Policies for Connection Handlers」。如需有關如何建立與配置資源限制策略以及如何自訂搜尋限制的資訊,請參閱下列程序。

Procedure建立資源限制策略

您可以使用 DSCC 執行此作業。如需有關資訊,請參閱目錄服務控制中心介面與 DSCC 線上說明。

  1. 建立資源限制策略。


    $ dpconf create-resource-limits-policy -h host -p port policy-name
    

    如需有關如何修改資源限制策略特性的資訊,請參閱配置資源限制策略

  2. 將資源限制策略與連線處理程式關聯。


    $ dpconf set-connection-handler-prop -h host -p port connection-handler-name \
     resource-limits-policy:policy-name
    

Procedure配置資源限制策略

您可以使用 DSCC 執行此作業。如需有關資訊,請參閱目錄服務控制中心介面與 DSCC 線上說明。

  1. 檢視資源限制策略的特性。


    $ dpconf get-resource-limits-policy-prop -h host -p port policy-name
    

    資源限制策略的預設特性如下:


    description                                 :  -
    max-client-connections                      :  unlimited
    max-connections                             :  unlimited
    max-simultaneous-operations-per-connection  :  unlimited
    max-total-operations-per-connection         :  unlimited
    minimum-search-filter-substring-length      :  unlimited
    referral-bind-policy                        :  default
    referral-hop-limit                          :  default
    referral-policy                             :  default
    search-size-limit                           :  unlimited
    search-time-limit                           :  unlimited
  2. 透過設定步驟 1 中所列的一或多個特性,配置資源限制策略:


    $ dpconf set-resource-limits-policy-prop -h host -p port policy-name \
      property:value [property:value ...]

Procedure自訂搜尋限制

您可以根據搜尋基底與搜尋範圍定義搜尋作業的自訂限制。如果搜尋作業的目標 DN 與範圍符合指定的條件,則限制搜尋結果的大小上限。

您可以使用 DSCC 執行此作業。如需有關資訊,請參閱目錄服務控制中心介面與 DSCC 線上說明。

  1. 建立一或多個自訂搜尋限制。


    $ dpconf create-custom-search-size-limit -h host -p port policy-name \
      custom-search-limit-name [custom-search-limit-name ...]
  2. 設定自訂搜尋限制的條件。


    $ dpconf set-custom-search-size-limit-prop -h host -p port policy-name \
      custom-search-limit-name one-level-search-base-dn:value subtree-search-base-dn:value
    
  3. 設定搜尋滿足步驟 2 的其中一個條件時,所傳回結果數的限制。


    $ dpconf set-custom-search-size-limit-prop -h host -p port policy-name \
     custom-search-limit-name search-size-limit:value
    
  4. 檢視自訂搜尋限制的特性。


    $ dpconf get-custom-search-size-limit-prop -h host -p port policy-name \
      custom-search-limit-name
    

    自訂搜尋限制的預設特性如下:


    one-level-search-base-dn  :  -
    search-size-limit         :  unlimited
    subtree-search-base-dn    :  -

將目錄代理伺服器配置為基於連線的路由器

Directory Proxy Server 5.2 是基於連線的路由器。在 Directory Proxy Server 5.2 中,用戶端連線路由至指定的目錄伺服器。用戶端連線上的所有請求都傳送至相同的目錄伺服器,直到連線中斷或用戶端解除連結為止。

Directory Proxy Server 6.0 是基於作業的路由器。但是,此版本的目錄代理伺服器可能因為相容性而配置為基於連線的路由器,如下列程序所述。

Procedure將目錄代理伺服器配置為基於連線的路由器

  1. 建立、配置與刪除連線處理程式中所述,建立與配置一或多個連線處理程式。

    您也可以使用預設的連線處理程式。

  2. 配置所有連線處理程式將請求僅路由至根資料檢視

    例如:


    $ dpconf set-connection-handler-prop -h host1 -p 1389 myConnectionHandler \
     data-view-routing-policy:custom data-view-routing-custom-list:"root data view"
  3. 建立與配置 LDAP 資料來源中所述,建立與配置每個後端 LDAP 伺服器的資料來源。

    例如:


    $ dpconf create-ldap-data-source -h host1 -p 1389 myDataSource host2:2389
  4. 建立與配置 LDAP 資料來源池中所述,建立與配置資料來源池。

    例如:


    $ dpconf create-ldap-data-source-pool -h host1 -p 1389 myDataSourcePool
  5. 將 LDAP 資料來源附加至資料來源池中所述,將所有資料來源附加至資料來源池。

    例如:


    $ dpconf attach-ldap-data-source -h host1 -p 1389 myDataSourcePool myDataSource
  6. 利用重新執行連結轉寄請求中所述,配置每個資料來源透過使用 BIND 重新執行來認證用戶端。

    例如:


    $ dpconf set-ldap-data-source-prop -h host1 -p 1389 myDataSource \
     client-cred-mode:use-client-identity
  7. 配置用戶端相似性中所述,配置用戶端連線與資料來源池之間的相似性。

    例如:


    $ dpconf set-ldap-data-source-pool-prop -h host1 -p 1389 myDataSourcePool \
     enable-client-affinity:true client-affinity-policy:read-write-affinity-after-write

第 26 章 用戶端與目錄代理伺服器之間的連線

如需用戶端與目錄代理伺服器之間連線的簡介,請參閱「Sun Java System Directory Server Enterprise Edition 6.0 Reference」中的第 20 章「Connecting Clients to Directory Proxy Server」

本章包含下列主題:

配置用戶端與目錄代理伺服器之間的偵聽程式

目錄代理伺服器提供安全和非安全的偵聽程式與用戶端進行通訊。如需有關目錄代理伺服器偵聽程式的資訊,請參閱「Sun Java System Directory Server Enterprise Edition 6.0 Reference」中的「Directory Proxy Server Client Listeners」。本節說明如何配置偵聽程式。

Procedure配置用戶端與目錄代理伺服器之間的偵聽程式


備註 –

本程序配置用戶端與目錄代理伺服器之間的非安全偵聽程式。若要配置安全偵聽程式,請執行相同的程序,但以 ldaps 取代 ldap


您可以使用 DSCC 執行此作業。如需有關資訊,請參閱目錄服務控制中心介面與 DSCC 線上說明。在 DSCC 中,您可以在 [效能] 標籤上配置此特性。

  1. 檢視非安全偵聽程式的特性。


    $ dpconf get-ldap-listener-prop -h host -p port
    

    非安全偵聽程式的預設特性如下:


    connection-idle-timeout          :  1h
    connection-read-data-timeout     :  2s
    connection-write-data-timeout    :  1h
    is-enabled                       :  true
    listen-address                   :  0.0.0.0
    listen-port                      :  port-number
    max-connection-queue-size        :  128
    max-ldap-message-size            :  unlimited
    number-of-threads                :  2
    use-tcp-no-delay                 :  true
  2. 根據需求變更步驟 1 中所列的一或多個特性。


    $ dpconf set-ldap-listener-prop -h host -p port property:new-value
    

    例如,若要停用 host1 上執行的目錄代理伺服器實例之非安全連接埠,請執行下列指令:


    $ dpconf set-ldap-listener-prop -h host1 -p 1389 is-enabled:false

    注意 – 注意 –

    如果您計劃使用未經授權的連接埠號,則必須以超級使用者的身份執行目錄代理伺服器。


    若要變更非安全的連接埠號,請執行下列指令:


    $ dpconf set-ldap-listener-prop -h host -p port listen-port:new-port-number
    
  3. 請視需要重新啟動目錄代理伺服器實例以使變更生效。

    對某些偵聽程式特性所進行的變更,需要重新啟動伺服器才會生效。如果必須重新啟動伺服器,dpconf 會提供警示。如需有關重新啟動目錄代理伺服器的資訊,請參閱重新啟動目錄代理伺服器

認證目錄代理伺服器的用戶端

依預設,目錄代理伺服器配置為進行簡單的連結認證。簡單連結認證不需要其他配置。

如需有關用戶端與目錄代理伺服器之間認證的資訊,請參閱「Sun Java System Directory Server Enterprise Edition 6.0 Reference」中的「Client Authentication Overview」。如需有關如何配置認證的資訊,請參閱下列程序。

Procedure配置基於憑證的認證

如需有關用戶端基於憑證的認證的資訊,請參閱「Sun Java System Directory Server Enterprise Edition 6.0 Reference」中的「Configuring Certificates in Directory Proxy Server」。本節說明如何配置基於憑證的認證。

您可以使用 DSCC 執行此作業。如需有關資訊,請參閱目錄服務控制中心介面與 DSCC 線上說明。


備註 –

基於憑證的認證僅能在 SSL 連線上執行。


    將目錄代理伺服器配置為用戶端建立 SSL 連線時必須出示憑證。


    $ dpconf set-server-prop -h host -p port allow-cert-based-auth:require

Procedure配置匿名存取

如需有關匿名存取的資訊,請參閱「Sun Java System Directory Server Enterprise Edition 6.0 Reference」中的「Anonymous Access」。如需有關如何將匿名用戶端的識別對映到其他識別的資訊,請參閱以替代使用者身份轉寄請求

您可以使用 DSCC 執行此作業。如需有關資訊,請參閱目錄服務控制中心介面與 DSCC 線上說明。

    允許未認證的使用者執行作業。


    $ dpconf set-server-prop -h host -p port allow-unauthenticated-operations:true

Procedure為 SASL 外部連結配置目錄代理伺服器

如需有關 SASL 外部連結的資訊,請參閱「Sun Java System Directory Server Enterprise Edition 6.0 Reference」中的「Using SASL External Bind」

您可以使用 DSCC 執行此作業。如需有關資訊,請參閱目錄服務控制中心介面與 DSCC 線上說明。

  1. 不允許未認證的作業。


    $ dpconf set-server-prop -h host -p port allow-unauthenticated-operations:false
  2. 要求用戶端建立連線時必須出示憑證。


    $ dpconf set-server-prop -h host -p port allow-cert-based-auth:require

    用戶端提供包含 DN 的憑證。

  3. 啟用 SASL 外部連結的用戶端認證。


    $ dpconf set-server-prop -h host -p port allow-sasl-external-authentication:true
  4. 配置目錄代理伺服器使用的識別,以對映至後端 LDAP 伺服器上的用戶端憑證。


    $ dpconf set-server-prop -h host -p port cert-search-bind-dn:bind-DN \
     cert-search-bind-pwd-file:filename
    
  5. 配置目錄代理伺服器搜尋的子樹狀結構之基底 DN。

    目錄代理伺服器搜尋子樹狀結構,以尋找對映至用戶端憑證的使用者項目。


    $ dpconf set-server-prop -h host -p port cert-search-base-dn:base-DN
    
  6. 將用戶端憑證中的資訊對映至 LDAP 伺服器上的憑證。

    1. 在包含憑證的 LDAP 伺服器上命名屬性。


      $ dpconf set-server-prop cert-search-user-attribute:attribute
      
    2. 將用戶端憑證的屬性對映至包含憑證的 LDAP 伺服器上項目的 DN。


      $ dpconf set-server-prop -h host -p port \
       cert-search-attr-mappings:client-side-attribute-name:server-side-attribute-name
      

      例如,若要將 DN 為 cn=user1,o=sun,c=us 的用戶端憑證對映至 DN 為 uid=user1,o=sun 的 LDAP 項目,請執行下列指令:


      $ dpconf set-server-prop -h host1 -p 1389 cert-search-attr-mappings:cn:uid \
       cert-search-attr-mappings:o:o
      
  7. (可選擇) 將 SASL 外部連結作業的請求路由至所有資料檢視或自訂資料檢視清單。

    • 若要將請求路由至所有資料檢視,請執行此指令:


      $ dpconf set-server-prop -h host -p port cert-data-view-routing-policy:all-routable
    • 若要將請求路由至資料檢視清單,請執行此指令:


    $ dpconf set-server-prop -h host -p port cert-data-view-routing-policy:custom \
     cert-data-view-routing-custom-list:view-name [view-name...]
       

第 27 章 目錄代理伺服器記錄

目錄代理伺服器在存取記錄與錯誤記錄中記錄資訊。與目錄伺服器不同,目錄代理伺服器不具有稽核記錄。如需目錄代理伺服器中記錄的說明,請參閱「Sun Java System Directory Server Enterprise Edition 6.0 Reference」中的第 19 章「Directory Proxy Server Logging」

本章包含下列主題:

檢視目錄代理伺服器記錄

您可以直接透過記錄檔或使用目錄服務控制中心 (DSCC) 檢視目錄代理伺服器記錄。

依預設,記錄儲存在此目錄中:


instance-path/logs

下圖顯示 DSCC 上目錄代理伺服器錯誤記錄的螢幕擷取。

圖 27–1 目錄代理伺服器的錯誤記錄視窗

螢幕擷取顯示目錄代理伺服器的錯誤記錄。在表中列出錯誤記錄項目。

配置目錄代理伺服器記錄

透過使用 dpconf 指令或 DSCC,可以配置目錄代理伺服器錯誤記錄與存取記錄。如需有關如何使用 DSCC 配置記錄的資訊,請參閱目錄代理伺服器線上說明。本節說明如何透過使用 dpconf 指令配置目錄代理伺服器記錄。

您可以透過執行下列指令,擷取完整的配置選項清單以及允許的值和預設值:

$ dpconf help-properties error-log
$ dpconf help-properties access-log

Procedure配置目錄代理伺服器存取與錯誤記錄

本程序配置目錄代理伺服器存取記錄。若要配置目錄代理伺服器錯誤記錄,請執行相同的程序,但以 error 取代 access

您可以使用 DSCC 執行此作業。如需有關資訊,請參閱目錄服務控制中心介面與 DSCC 線上說明。

  1. 檢視存取記錄的特性。


    $ dpconf get-access-log-prop -h host -p port
    

    存取記錄的預設特性如下:


    default-log-level                :  info
    enable-log-rotation				  :  true
    log-buffer-size                  :  9.8k
    log-file-name                    :  logs/access
    log-file-perm                    :  600
    log-level-client-connections     :  -
    log-level-client-disconnections  :  -
    log-level-client-operations      :  -
    log-level-connection-handlers    :  -
    log-level-data-sources           :  -
    log-level-data-sources-detailed  :  -
    log-min-size						  :  100M
    log-rotation-frequency           :  1h
    log-rotation-policy              :  size
    log-rotation-size                :  100M
    log-rotation-start-day           :  1
    log-rotation-start-time          :  0000
    log-search-filters               :  false
    max-age                          :  unlimited
    max-log-files                    :  10
    max-size                         :  unlimited
    min-free-disk-space-size         :  1M
  2. 變更步驟 1 中所列的一或多個特性。


    $ dpconf set-access-log-prop -h host -p port property:value \
     [property:value ...]

    例如,若要將所有訊息種類的預設記錄層級設為警告,請將 default-log-level 特性的值設為 warning


    $ dpconf set-access-log-prop -h host1 -p 1389 default-log-level:warning

    若要停用所有記錄,不論各訊息種類的記錄層級為何,都將 default-log-level 特性的值設為 none


    $ dpconf set-access-log-prop -h host1 -p 1389 default-log-level:none

    若要將特定記錄層級重設為預設記錄層級,請將該記錄層級的特性設為 inherited。例如,若要重設用戶端連線的記錄層級,請執行下列指令:


    $ dpconf set-access-log-prop -h host1 -p 1389 log-level-client-connections:inherited

    如需有關可由 set-access-log-prop 子指令設定之特性的資訊,請鍵入:


    $ dpconf help-properties access-log

配置目錄代理伺服器記錄自動重建

依預設,當記錄檔大小到達 100 MB 時自動重建記錄檔。依預設保留十個記錄檔,超過十個之後,自動重建程序會從最舊的記錄檔開始覆寫。本節說明如何配置目錄代理伺服器記錄以排程自動重建、如何手動自動重建記錄,以及如何停用記錄自動重建。如需配置範例,請參閱記錄自動重建的配置範例

Procedure配置定期自動重建存取與錯誤記錄

本程序配置目錄代理伺服器存取記錄。若要配置目錄代理伺服器錯誤記錄,請執行相同的程序,但以 error 取代 access

您可以使用 DSCC 執行此作業。如需有關資訊,請參閱目錄服務控制中心介面與 DSCC 線上說明。

  1. (可選擇) 檢視存取記錄的特性。


    $ dpconf get-access-log-prop -h host -p port
    
  2. (可選擇) 檢視存取記錄特性的有效值。

    $ dpconf help-properties access-log
  3. 若要在記錄到達特定大小時自動重建記錄,請設定下列特性:


    $ dpconf set-access-log-prop -h host -p port \
     log-rotation-policy:size log-rotation-size:maximum file size
    

    如果未指定最大檔案大小的單位,則使用位元組做為預設單位。當記錄檔到達定義的大小時,即自動重建記錄。檔案大小必須最小為 1 MB,最大不超過 2 GB。

    如需有關如何依大小自動重建記錄的範例,請參閱基於記錄大小自動重建記錄

  4. 若要定期自動重建記錄,不論記錄大小為何,都設定下列特性:


    $ dpconf set-access-log-prop -h host -p port \
     log-rotation-frequency:interval in months, weeks, hours, or minutes \
     log-rotation-policy:periodic \
     log-rotation-start-day:day in week (1-7) or day in the month (1-31) \
     log-rotation-start-time:time of day (hhmm)
    

    如果將記錄配置為在某月 31 日自動重建,但該月份少於 31 天,則在次月的第一天自動重建記錄。

    如需有關如何定期自動重建記錄的範例,請參閱基於時間自動重建記錄

  5. 若要在記錄檔足夠大時定期自動重建記錄,請設定 log-rotation-frequencylog-min-size 特性。


    $ dpconf set-access-log-prop -h host -p port \
     log-rotation-frequency:interval in months, weeks, hours, or minutes \
     log-rotation-policy:periodic log-min-size:minimum file size
     log-rotation-start-day:day in week (1-7) or day in the month (1-31) \
     log-rotation-start-time:time of day (hhmm)
    

    log-min-size 特性表示記錄的最小大小。自動重建作業僅在記錄檔大於指定大小時於排程時間執行。

    如果將記錄配置為在某月 31 日自動重建,但該月份少於 31 天,則在次月的第一天自動重建記錄。

    如需有關如何在檔案大小足夠大時定期自動重建記錄的範例,請參閱基於時間和記錄大小自動重建記錄

Procedure手動自動重建存取與錯誤記錄檔

本程序自動重建目錄代理伺服器存取記錄。若要自動重建目錄代理伺服器錯誤記錄,請執行相同的程序,但以 error 取代 access

您可以使用 DSCC 執行此作業。如需有關資訊,請參閱目錄服務控制中心介面與 DSCC 線上說明。

    自動重建存取記錄。


    $ dpconf rotate-log-now -h host -p port access

Procedure停用存取與錯誤記錄自動重建

本程序停用目錄代理伺服器存取記錄的自動重建。若要停用目錄代理伺服器錯誤記錄的自動重建,請執行相同的程序,但以 error 取代 access

    停用記錄檔自動重建。


    $ dpconf set-access-log-prop -h host -p port enable-log-rotation:false

記錄自動重建的配置範例

如何依記錄大小和/或時間配置記錄自動重建的範例。

基於記錄大小自動重建記錄

本節中的範例顯示如何僅基於記錄大小配置記錄自動重建。此配置在記錄到達 10 MB 時自動重建記錄,而不論上次自動重建記錄的時間為何。


$ dpconf set-access-log-prop -h host1 -p 1389 log-rotation-policy:size \
  log-rotation-size:10M

基於時間自動重建記錄

本節中的範例顯示如何基於上次自動重建的時間配置記錄自動重建,而不論記錄大小為何。

如果 log-rotation-start-day 設為 31 而該月僅有 30 天,則在次月的第一天自動重建記錄。如果 log-rotation-start-day 設為 31 而該月僅有 28 天 (二月),則在次月第 3 天自動重建記錄。

基於時間和記錄大小自動重建記錄

本範例顯示如何配置在檔案大小足夠大時,依指定間隔自動重建記錄。

此配置在每天 3:00、11:00 與 19:00 當記錄檔大小超過 1 MB 時,自動重建記錄。如果記錄檔大小未超過 1 MB,則不自動重建記錄檔。


$ dpconf set-access-log-prop -h host1 -p 1389 log-rotation-frequency:8h \
 log-rotation-policy:periodic log-min-size:1M log-rotation-start-time:0300

刪除目錄代理伺服器記錄

目錄代理伺服器可讓您基於時間、大小或可用磁碟空間 (預設值) 配置記錄刪除。如需有關這些刪除策略的詳細資訊,請參閱「Sun Java System Directory Server Enterprise Edition 6.0 Reference」中的「Log File Deletion」

下列程序配置存取記錄的記錄刪除。若要配置錯誤記錄的記錄刪除,請使用相同指令,但以 error 取代 access

Procedure配置基於時間的存取與錯誤記錄刪除

您可以使用 DSCC 執行此作業。如需有關資訊,請參閱目錄服務控制中心介面與 DSCC 線上說明。

    指定記錄檔的最長期限。


    $ dpconf set-access-log-prop -h host -p port max-age:duration
    

    其中 duration 包含天 (d)、週 (w) 或月 (M) 等單位。例如,若要刪除五天前的備份記錄檔,請使用此指令:


    $ dpconf set-access-log-prop -h host1 -p 1389 max-age:5d

Procedure配置基於檔案大小的存取與錯誤記錄刪除

您可以使用 DSCC 執行此作業。如需有關資訊,請參閱目錄服務控制中心介面與 DSCC 線上說明。

    指定記錄檔的大小上限。


    $ dpconf set-access-log-prop -h host -p port max-size:memory-size
    

    例如,若要刪除大於 1 MB 的備份記錄檔,請使用此指令:


    $ dpconf set-access-log-prop -h host1 -p 1389 max-size:1M

Procedure配置基於可用磁碟空間的存取與錯誤記錄刪除

您可以使用 DSCC 執行此作業。如需有關資訊,請參閱目錄服務控制中心介面與 DSCC 線上說明。

    指定最小的可用磁碟空間。


    $ dpconf set-access-log-prop -h host -p port min-free-disk-space-size:memory-size
    

    例如,若要在可用磁碟空間少於 2 MB 時刪除備份記錄檔,請使用此指令:


    $ dpconf set-access-log-prop -h host1 -p 1389 min-free-disk-space-size:2M

將警示記錄至 syslogd 常駐程式

本節說明如何配置將警示訊息記錄至 syslogd 常駐程式,以及如何配置作業系統接受 syslog 警示。

Procedure配置目錄代理伺服器將警示記錄至 syslogd 常駐程式

您可以使用 DSCC 執行此作業。如需有關資訊,請參閱目錄服務控制中心介面與 DSCC 線上說明。

  1. (可選擇) 檢視系統記錄警示特性的目前值。


    $ dpconf get-server-prop -h host -p port syslog-alerts-enabled \
     syslog-alerts-facility syslog-alerts-host

    系統記錄警示的預設特性如下:


    syslog-alerts-enabled   :  false
    syslog-alerts-facility  :  USER
    syslog-alerts-host      :  localhost

    syslog-alerts-host 特性將 syslogd 常駐程式主機名稱定義為向其傳送訊息之主機的名稱。syslog-alerts-facility 特性為唯讀,且可能導致將訊息傳送至系統記錄的 user 類別中。

  2. 啟用將警示訊息記錄至 syslogd 常駐程式。


    $ dpconf set-server-prop -h host -p port syslog-alerts-enabled:true
  3. (可選擇) 傳送警示訊息至不同主機上的 syslogd 常駐程式。


    $ dpconf set-server-prop -h host -p port syslog-alerts-host:hostname
    

配置作業系統接受 syslog 警示

本節提供有關配置 SolarisTM、Linux 與 HP-UX 作業系統接受 syslog 警示的指示。

Procedure配置 Solaris 作業系統接受 syslog 警示

  1. 將適當的功能增加至 syslog 配置檔。

    例如,若要儲存所有使用 USER 功能的警示,請將以下行增加至 /etc/syslog.conf

    user.info       /var/adm/info

    其中 /var/adm/info 是在其中儲存訊息的本機目錄範例。繼續之前,請確保存在 /var/adm/info

  2. 重新啟動 syslogd 常駐程式。

    1. 在 Solaris 8 與 9 上,鍵入以下內容重新啟動 syslogd

      $ /etc/init.d/syslog stop | start
    2. 在 Solaris 10 上,鍵入以下內容重新啟動 syslogd

      $ svcadm restart system/system-log
  3. 驗證是否將訊息記錄在 syslog 中。

    $ logger -p user.info "Test message"
    $ cat /var/adm/info
     Jun 19 17:18:38 host user: [ID 12345 user.info] Test message

Procedure配置 Linux 接受 syslog 警示

  1. 將適當的功能增加至 syslog 配置檔。

    例如,若要儲存所有使用 USER 功能的警示,請將以下行增加至 /etc/syslog.conf

    user.info       /var/adm/info

    其中 /var/adm/info 是在其中儲存訊息的本機目錄範例。繼續之前,請確保存在 /var/adm/info

  2. syslogd 常駐程式配置為使用 -r 選項執行。

    此選項允許 syslogd 接受來自網路的連線。依預設,未設定 -r 選項。

    若要設定 -r 選項,請將以下行增加至 /etc/sysconfig/syslog

    SYSLOGD_OPTIONS="-m 0 -r"

    如果 /etc/sysconfig/syslog 不存在,請將相同行增加至 /etc/init.d/syslog

  3. 重新啟動 syslogd 常駐程式。

    $ /etc/init.d/syslog stop | start
  4. 驗證是否將訊息記錄在 syslog 中。

    $ logger -p user.info "Test message"
    $ cat /var/adm/info
     Jun 19 17:18:38 host user: [ID 12345 user.info] Test message

Procedure配置 HP-UX 接受 syslog 警示

  1. 將適當的功能增加至 syslog 配置檔。

    例如,若要儲存所有使用 USER 功能的警示,請將以下行增加至 /etc/syslog.conf

    user.info       /var/adm/info

    其中 /var/adm/info 是在其中儲存訊息的本機目錄範例。繼續之前,請確保存在 /var/adm/info

  2. 重新啟動 syslogd 常駐程式。

    $ /sbin/init.d/syslogd stop | start
  3. 驗證是否將訊息記錄在 syslog 中。

    $ logger -p user.info "Test message"
    $ cat /var/adm/info
     Jun 19 17:18:38 host user: [ID 12345 user.info] Test message

經由目錄代理伺服器與目錄伺服器存取記錄追蹤用戶端請求

若要追蹤用戶端請求的路徑,您必須瞭解請求如何記錄在目錄代理伺服器存取記錄與目錄伺服器存取記錄中。若要瞭解本節,請先閱讀「Sun Java System Directory Server Enterprise Edition 6.0 Reference」中的「Tracking Client Requests Through Directory Proxy Server and Directory Server Access Logs」

Procedure追蹤由目錄伺服器經目錄代理伺服器至用戶端應用程式的作業

無法使用 DSCC 執行此作業。請依照此程序中的說明使用指令行。

  1. 在目錄伺服器存取記錄中找到要追蹤之作業的連線編號。

    例如,存取記錄中的以下行顯示連線編號為 conn=12839 的作業 op=2


    [20/Jul/2006:18:01:49 -0500] conn=12839 op=2 msgId=4 - SRCH base="dc=example,dc=com" 
     scope=2 filter="(objectClass=organizationalunit)" attrs=ALL
  2. 取得該連線的目錄代理伺服器連線資訊。

    若要取得此資訊,請搜尋目錄伺服器存取記錄,找出具有對應連線編號的所有作業。例如,在 UNIX 系統上,執行下列 grep 指令可找出目錄伺服器存取記錄中對應連線 conn=12839 的所有行:


    $ grep conn=12839 access

    顯示初始 LDAP 連線的行即是您要尋找的行,且與此類似:


    [19/Jul/2006:16:32:51 -0500] conn=12839 op=-1 msgId=-1 - fd=27 slot=27 
     LDAP connection from 129.153.160.175:57153 to 129.153.160.175

    上面一行顯示存在自 129.153.160.175:57153 至目錄伺服器的 LDAP 連線。連接埠號 (57153) 是將連線連結回目錄代理伺服器存取記錄必要的資訊。連接埠號可讓您尋找目錄代理伺服器記錄中對應的連線,並從該連線找出用戶端資訊。

    如果在初次建立連線之後已自動重建記錄檔,您必須同時搜尋歸檔的記錄檔與目前的存取記錄檔。

  3. 找出目錄代理伺服器存取記錄中對應的連線。

    若要取得此資訊,請搜尋目錄代理伺服器存取記錄,找出具有對應連結埠號的所有作業。

    您可能會在記錄檔中找到許多項目皆具有相同的連接埠號。若要確保找到正確的項目,請將目錄伺服器記錄項目的時間戳記納入搜尋中。

    例如,在 UNIX 系統上,執行下列 grep 指令可找出目錄伺服器記錄中找到的時間戳記與連接埠號對應的連線項目:


    $ grep 19/Jul/2006:16:32 access | grep 57153

    請注意,考量到伺服器時間會有些微差異,時間戳記會排除值。

    目錄代理伺服器記錄中對應的行應與此類似:


    [19/Jul/2006:16:32:51 -0500] - SERVER_OP  - INFO  - Created BIND  LDAP connection 
     s_conn=sunds-d1m1-9389:34 client=0.0.0.0:57153 
     server=idm160.central.sun.com:9389 main

    此行顯示目錄代理伺服器已建立 BIND 連線至 s_conn=sunds-d1m1-9389:34。目錄代理伺服器將其本身識別為 TCP 連接埠 57153 上的用戶端 client=0.0.0.0

    要從記錄中此行擷取的重要資訊是伺服器 ID 與連接埠號 (s_conn=sunds-d1m1-9389:34 )。

  4. 找出所有對應到上一步驟中識別的伺服器 ID 與連接埠號的作業。

    若要取得此資訊,請搜尋目錄代理伺服器存取記錄,找出具有對應伺服器 ID 與連結埠號的所有作業。

    例如,在 UNIX 系統上,執行下列 grep 指令可找出上一個步驟中找到的伺服器 ID 對應的作業:


    $ grep s_conn=sunds-d1m1-9389:34 access

    在此狀況下,由於這些作業可能耗時數日,因此搜尋時間戳記毫無作用。但是,您必須確定搜尋是否傳回了正確的作業。如果有多個 Create 連線陳述式,請確保找到對應原始搜尋陳述式的作業。若要執行此項作業,請比較此時間戳記與步驟 1 中找到的時間戳記。

    目錄代理伺服器存取記錄的下列擷取顯示針對 s_conn=sunds-d1m1-9389:34 傳回的所有作業。


    [19/Jul/2006:16:32:51 -0500] - SERVER_OP  - INFO - Created BIND LDAP connection
     s_conn=sunds-d1m1-9389:34 client=0.0.0.0:57153 server=idm160.central.sun.com:9389 main
    [20/Jul/2006:18:01:49 -0500] - SERVER_OP  - INFO  - conn=31 op=0 BIND dn="cn=directory manager"
     method="SIMPLE" s_msgid=3 s_conn=sunds-d1m1-9389:34
    [20/Jul/2006:18:01:49 -0500] - SERVER_OP  - INFO  - conn=31 op=0 BIND RESPONSE err=0 msg=""
     s_conn=sunds-d1m1-9389:34
    [20/Jul/2006:18:01:49 -0500] - SERVER_OP  - INFO  - conn=31 op=1 SEARCH base="dc=example,dc=com"
     scope=2 s_msgid=4 s_conn=sunds-d1m1-9389:34
    [20/Jul/2006:18:01:49 -0500] - SERVER_OP  - INFO  - conn=31 op=1 SEARCH RESPONSE err=0 msg=""
     nentries=1 s_conn=sunds-d1m1-9389:34

    此資訊表明,目錄代理伺服器上此搜尋作業的連線 ID 為 31 (conn=31)。

  5. 找出上一步驟中找到的連線 ID 對應的用戶端連線 IP 位址。

    若要取得此資訊,請搜尋目錄代理伺服器存取記錄,找出具有正確連線 ID 與時間戳記的所有作業。所使用的時間戳記是步驟 1 的原始搜尋陳述式中的時間戳記。

    例如,在 UNIX 系統上,執行下列 grep 指令可找出用戶端連線 IP 位址:


    $ grep "20/Jul/2006:18:01" access | grep conn=31

    您關注的行應類似與此:


    [20/Jul/2006:18:01:49 -0500] - CONNECT - INFO  - conn=31 client=129.150.64.156:2031
    server=0.0.0.0:11389 protocol=LDAP
  6. 確定上一步驟中找到的 IP 位址的擁有者。

    利用此資訊,您可以精確建立目錄伺服器上所執行作業的負責人。

第 28 章 目錄代理伺服器監視與警示

監視功能會偵測目錄代理伺服器與資料來源的失敗。

如需目錄代理伺服器監視架構的說明及 cn=monitor 項目詳細配置的說明,請參閱「Sun Java System Directory Server Enterprise Edition 6.0 Reference」中的「Monitoring Directory Proxy Server」。本章包含下列主題:

擷取關於目錄代理伺服器的監視資料

若要擷取關於目錄代理伺服器的監視資料,請使用 cn=monitor 項目。此項目由目錄代理伺服器在本機常駐記憶體資料庫上進行管理。您可以透過在 cn=monitor 項目上執行 LDAP 搜尋,以擷取 cn=monitor 下的屬性。您必須以代理伺服器管理員身份連結,才能搜尋此項目。

如需有關使用 JVM 擷取監視資料的資訊,請參閱透過使用 JVM 擷取關於目錄代理伺服器的監視資料

擷取關於資料來源的監視資料

如需目錄代理伺服器如何監視資料來源運作狀態的說明,請參閱「Sun Java System Directory Server Enterprise Edition 6.0 Reference」中的「Monitoring Data Sources」。本節說明如何配置對資料來源的監視。

Procedure透過偵聽錯誤監視資料來源

在此監視類型中,目錄代理伺服器偵聽目錄代理伺服器與資料來源之間通訊的錯誤。此監視類型稱為被動監視,因為目錄代理伺服器是在偵測到錯誤時做出反應,而不主動測試資料來源。

您可以使用 DSCC 執行此作業。如需有關資訊,請參閱目錄服務控制中心介面與 DSCC 線上說明。

  1. 將針對資料來源的監視模式設為 reactive


    $ dpconf set-ldap-data-source-prop -h host -p port datasource monitoring-mode:reactive
  2. 配置目錄代理伺服器的管理警示中所述,配置要在偵測到錯誤或資料來源離線或上線時傳送的警示。

Procedure透過定期建立專屬連線監視資料來源

如果資料來源在指定間隔內沒有任何請求或回應,目錄代理伺服器會為資料來源建立專屬連線。

您可以使用 DSCC 執行此作業。如需有關資訊,請參閱目錄服務控制中心介面與 DSCC 線上說明。

  1. 將針對資料來源的監視模式設為 proactive


    $ dpconf set-ldap-data-source-prop -h host -p port datasource monitoring-mode:proactive
  2. 設定在建立專屬連線之前,目錄代理伺服器無法從資料來源偵測到任何活動的最長時間。


    $ dpconf set-ldap-data-source-prop -h host -p port datasource \
     monitoring-inactivity-timeout:time
    

    依預設,無活動逾時為 120 秒。

  3. 配置目錄代理伺服器的管理警示中所述,配置要在偵測到資料來源為離線或上線時傳送的警示。

Procedure透過測試建立的連線監視資料來源

在此監視類型中,目錄代理伺服器依固定間隔在各資料來源的每一連線上執行搜尋。這樣,目錄代理伺服器可偵測關閉的連線,從而避免連線因無活動而遭中斷。

您可以使用 DSCC 執行此作業。如需有關資訊,請參閱目錄服務控制中心介面與 DSCC 線上說明。

  1. 將針對資料來源的監視模式設為 proactive


    $ dpconf set-ldap-data-source-prop -h host -p port datasource monitoring-mode:proactive
  2. 配置監視搜尋請求由目錄代理伺服器執行。


    $ dpconf set-ldap-data-source-prop -h host -p port datasource \
      monitoring-bind-timeout:timeout monitoring-entry-dn:dn \
      monitoring-search-filter:filter monitoring-entry-timeout:timeout
    

    搜尋請求中使用下列特性:

    monitoring-bind-timeout

    目錄代理伺服器與資料來源建立連線之前的等待時間長度。依預設,此特性的值為 5 秒。

    monitoring-entry-dn

    搜尋請求中的目標項目的 DN。依預設,此特性為根 DSE 項目 ("")。

    monitoring-search-filter

    搜尋篩選。

    monitoring-entry-timeout

    目錄代理伺服器等待搜尋回應的時間長度。依預設,此特性的值為 5 秒。

  3. 設定輪詢間隔。


    $ dpconf set-ldap-data-source-prop -h host -p port datasource monitoring-interval:interval
    

    如果連線中斷,目錄代理伺服器會依此間隔輪詢連線以偵測其是否已回復。依預設,監視間隔為 30 秒。

  4. 配置目錄代理伺服器的管理警示中所述,配置要在偵測到資料來源為離線或上線時傳送的警示。

配置目錄代理伺服器的管理警示

如需有關如何配置管理警示的資訊,請參閱下列程序。

Procedure啟用管理警示

您可以使用 DSCC 執行此作業。如需有關資訊,請參閱目錄服務控制中心介面與 DSCC 線上說明。

  1. 檢視啟用的警示。


    % dpconf get-server-prop -h host -p port enabled-admin-alerts
  2. 啟用一或多個管理警示。


    % dpconf set-server-prop -h host -p port enabled-admin-alerts:alert1 \
      [enabled-admin-alerts:alert2 ...]

    例如,若要啟用所有可用的警示,請執行此指令:


    % dpconf set-server-prop -h host -p port \
     enabled-admin-alerts:error-configuration-reload-failure-with-impact \
     enabled-admin-alerts:error-server-shutdown-abrupt \ 
     enabled-admin-alerts:info-configuration-reload \
     enabled-admin-alerts:info-data-source-available \
     enabled-admin-alerts:info-server-shutdown-clean \
     enabled-admin-alerts:info-server-startup \
     enabled-admin-alerts:warning-configuration-reload-failure-no-impact \
     enabled-admin-alerts:warning-data-source-unavailable \
     enabled-admin-alerts:warning-data-sources-inconsistent \
     enabled-admin-alerts:warning-listener-unavailable

    若要停用所有警示,請執行此指令:


    % dpconf set-server-prop -h host -p port enabled-admin-alerts:none

    依預設,不啟用警示。

另請參閱

如需詳細資訊,請參閱 enabled-admin-alerts(5dpconf)

Procedure將管理警示配置為傳送至 Syslog

您可以使用 DSCC 執行此作業。如需有關資訊,請參閱目錄服務控制中心介面與 DSCC 線上說明。

  1. 啟用管理警示中所述,選取要傳送至 syslog 常駐程式的警示。

  2. 啟用要傳送至 syslog 常駐程式的警示。


    $ dpconf set-server-prop -h host -p port syslog-alerts-enabled:true

    使用 USER 功能將所有警示傳送至 syslog

  3. 設定要向其傳送警示之 syslog 常駐程式的主機名稱。


    $ dpconf set-server-prop -h host -p port syslog_hostname:hostname
    

Procedure將管理警示配置為傳送至電子郵件

您可以使用 DSCC 執行此作業。如需有關資訊,請參閱目錄服務控制中心介面與 DSCC 線上說明。

  1. 啟用管理警示中所述,選取要傳送至 syslog 的警示。

  2. 配置電子郵件位址與特性。


    $ dpconf set-server-prop -h host -p port email-alerts-smtp-host:host-name \
      email-alerts-smtp-port:port-number \
      email-alerts-message-from-address:sender-email-address \
      email-alerts-message-to-address:receiver-email-address \
      [email-alerts-message-to-address:receiver-email-address ...] \
      email-alerts-message-subject:email-subject
    
  3. 啟用要傳送至電子郵件的警示。


    $ dpconf set-server-prop -h host -p port email-alerts-enabled:true
  4. (可選擇) 設定旗標以將警示碼納入電子郵件中


    $ dpconf set-server-prop -h host -p port \
     email-alerts-message-subject-includes-alert-code:true

Procedure將管理警示配置為執行程序檔

您可以使用 DSCC 執行此作業。如需有關資訊,請參閱目錄服務控制中心介面與 DSCC 線上說明。

  1. 啟用管理警示中所述,選取要傳送至 syslog 的警示。

  2. 啟用要執行程序檔的警示。


    $ dpconf set-server-prop -h host -p port scriptable-alerts-enabled:true
  3. 設定所要執行程序檔的名稱。


    $ dpconf set-server-prop -h host -p port scriptable-alerts-command:script-name
    

透過使用 JVM 擷取關於目錄代理伺服器的監視資料

目錄代理伺服器在 Java 虛擬機器 (JVM) 內部執行,且依賴 JVM 機器的記憶體。若要確保目錄代理伺服器正常執行,您必須監視 JVM 機器的記憶體使用量。

如需有關如何調校 JVM 機器參數的資訊,請參閱「Sun Java System Directory Server Enterprise Edition 6.0 Deployment Planning Guide」中的「Hardware Sizing For Directory Proxy Server」

依預設,JVM 機器的堆疊大小為 250 MB。如果目錄代理伺服器沒有足夠的實體記憶體,堆疊大小可能小於 250 MB。

目錄代理伺服器執行時,您可以監視 JVM 機器的堆疊大小,以確保足夠的記憶體。若要執行這項作業,請使用 Java 開發工具組 (JDK) 隨附的標準工具。這些工具位於下列目錄:$JAVA_HOME/bin/jps$JAVA_HOME/bin/jstat

Procedure檢視 JVM 堆疊大小

無法使用 DSCC 執行此作業。請依照此程序中的說明使用指令行。

    檢視 JVM 堆疊大小。


    $ dpadm get-flags instance-path jvm-args
    jvm-args: -Xms250M  -Xmx250M

Procedure在目錄代理伺服器執行時監視 JVM 堆疊大小

無法使用 DSCC 執行此作業。請依照此程序中的說明使用指令行。

  1. 檢視目錄代理伺服器實例的 PID


    $ jps
  2. 檢視 JVM 機器使用的記憶體。


    $ jstat -gcutil PID
    
    • 如果零欄接近 100%,則表示 JVM 機器的記憶體不足。

    • FGC 是完整資源回收 (GC) 的事件數。資源回收佔用很大空間。

    • GCT (資源回收時間) 是 GC 耗費的時間量。