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

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

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

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

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

如需有關管理架構的更多資訊,請參閱「Sun Java System Directory Server Enterprise Edition 6.2 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

-e, --unsecured

指定 dpconf 預設應開啟一個無障礙連線。環境變數:DIR_PROXY_UNSECURED。若未設定此變數,dpconf 預設會開啟安全連線。

如需更多詳細資訊,請參閱 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 \
 property:value [property:value]

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


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

若要將值增加至已包含值的多重值特性,請鍵入下列指令:


$ dpconf set-container-prop -h host -p port \
 property+:value

若要從已包含值的多重值特性移除值,請鍵入下列指令:


$ dpconf set-container-prop -h host -p port\
 property-:value

例如,在上述方案中,若要將 sn 增加至可寫入屬性的清單,請鍵入下列指令:


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

若要從可寫入屬性的清單中移除 cn,請鍵入下列指令:


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

取得有關使用 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 線上說明。

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


    $ dpadm info instance-path
    

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

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

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

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

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

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


      $ dpadm start instance-path
      

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


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


      $ dpadm stop instance-path
      

      例如:


      $ dpadm stop /local/dps

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

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

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


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

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

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

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

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


    $ dpadm restart instance-path
    

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


    $ dpadm restart /local/dps

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

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

本章包含下列主題:

配置範例

本節示範兩個目錄代理伺服器配置範例,其中一個針對負載平衡,另一個針對資料分佈。如需有關虛擬目錄的更多資訊,請參閱虛擬配置範例

配置目錄代理伺服器執行負載平衡

簡單舉例來說,負載平衡就是將搜尋和比較作業傳送至一組目錄,並將其他作業傳送至另一組目錄。目錄代理伺服器會接收所有用戶端作業。伺服器必須決定哪一組取得讀取,而哪一組取得其他作業。

    以下是配置目錄代理伺服器處理此負載平衡方案中的重要階段。

  1. 增加目錄做為目錄代理伺服器的資料來源。

  2. 將資料來源增加至資料來源池。

  3. 配置某些資料來源接受搜尋和比較作業,而其他資料來源則接受增加、連結、刪除、修改及修改 DN 作業。

  4. 將資料來源池增加至資料檢視。

下列範例會用到偵聽連接埠 9389 的目錄代理伺服器。在此會如下所述配置代理伺服器以平衡負載。一個目錄伺服器實例 ds1:1389處理搜尋和比較作業,而另一個目錄伺服器實例 ds2:2389 則處理其他作業。

第一步是建立並啟用資料來源。此步驟需要重新啟動代理伺服器。


$ dpconf create-ldap-data-source -p 9389 ds1 localhost:1389
$ dpconf create-ldap-data-source -p 9389 ds2 localhost:2389
$ dpconf set-ldap-data-source-prop -p 9389 ds1 is-enabled:true
$ dpconf set-ldap-data-source-prop -p 9389 ds2 is-enabled:true
$ dpadm restart /local/dps

第二步是將資料來源增加至資料來源池。


$ dpconf create-ldap-data-source-pool -p 9389 "Directory Pool"
$ dpconf attach-ldap-data-source -p 9389 "Directory Pool" ds1 ds2

第三步是配置 ds1 接受搜尋和比較作業,而 ds2 接受其他作業。


$ dpconf set-attached-ldap-data-source-prop -p 9389 "Directory Pool" ds1 \
add-weight:disabled bind-weight:disabled compare-weight:1 delete-weight:disabled \
modify-dn-weight:disabled modify-weight:disabled search-weight:1
$ dpconf set-attached-ldap-data-source-prop -p 9389 "Directory Pool" ds2 \
add-weight:1 bind-weight:1 compare-weight:disabled delete-weight:1 \
modify-dn-weight:1 modify-weight:1 search-weight:disabled

第四步是將資料來源池增加至資料檢視,如此一來,用戶端應用程式的請求便會路由至該池。


$ dpconf create-ldap-data-view -p 9389 "Balanced View" "Directory Pool" \
dc=example,dc=com

配置目錄代理伺服器以分佈尾碼資料

簡單舉例來說,資料分佈就是將 UID 開頭為 A 到 M 的項目儲存至一組目錄,並將 UID 開頭為 N 到 Z 的項目儲存至另一組目錄。目錄代理伺服器會接收所有用戶端作業。伺服器必須決定哪一組目錄處理 A 到 M,而哪一組目錄處理 N 到 Z。

    以下是配置目錄代理伺服器以處理此資料分佈方案中的重要階段。

  1. 增加目錄做為目錄代理伺服器的資料來源。

  2. 將資料來源增加至資料來源池,以處理不同的資料分佈。

  3. 建立資料檢視,其設計目的是將用戶端請求分佈至適當的資料池。

  4. 分割要載入至適當資料來源的 LDIF。

  5. 將分割的 LDIF 匯入適當的資料來源。

  6. 為附加至適當資料池的資料來源,調整作業型加權。

下列範例會用到偵聽連接埠 9389 的目錄代理伺服器。為了簡化範例,代理伺服器在此會如下所述,配置為僅分佈在三個目錄伺服器實例之間。如需可用性與讀取延展性,請使用複寫的目錄拓樸來儲存 LDAP 資料。其中一個目錄伺服器實例 dsA-M:1389 會處理 UID 開頭為 A 到 M 的使用者項目。另一個目錄伺服器實例 dsN-Z:2389 會處理 UID 開頭為 N 到 Z 的使用者項目。最後一個目錄實例 dsBase:3389,則會處理尾碼的基底項目。

第一步是建立並啟用資料來源。基底資料來源內含不具有 UID 之尾碼根目錄附近的項目。在一般部署中,這些項目數會比分佈的項目數少很多。


$ dpconf create-ldap-data-source -p 9389 dsA-M localhost:1389
$ dpconf set-ldap-data-source-prop -p 9389 dsA-M is-enabled:true

$ dpconf create-ldap-data-source -p 9389 dsN-Z localhost:2389
$ dpconf set-ldap-data-source-prop -p 9389 dsN-Z is-enabled:true

$ dpconf create-ldap-data-source -p 9389 dsBase localhost:3389
$ dpconf set-ldap-data-source-prop -p 9389 dsBase is-enabled:true

第二步是將資料來源增加至資料來源池。


$ dpconf create-ldap-data-source-pool -p 9389 "Base Pool"
$ dpconf attach-ldap-data-source -p 9389 "Base Pool" dsBase

$ dpconf create-ldap-data-source-pool -p 9389 "A-M Pool"
$ dpconf attach-ldap-data-source -p 9389 "A-M Pool" dsA-M

$ dpconf create-ldap-data-source-pool -p 9389 "N-Z Pool"
$ dpconf attach-ldap-data-source -p 9389 "N-Z Pool" dsN-Z

第三步是建立資料檢視,其設計目的是將用戶端請求分佈至適當的資料池。請注意基底池處理 dc=example,dc=com 的方式,以及內含根據 UID 值分佈之資料的池處理 ou=people,dc=example,dc=com 的方式。此步驟需要重新啟動伺服器。


$ dpconf create-ldap-data-view -p 9389 "Base View" "Base Pool" \
dc=example,dc=com

$ dpconf create-ldap-data-view -p 9389 "A-M View" "A-M Pool" \
ou=people,dc=example,dc=com
$ dpconf set-ldap-data-view-prop -p 9389 "A-M View" \
distribution-algorithm:lexicographic lexicographic-attrs:uid \
lexicographic-lower-bound:a lexicographic-upper-bound:m
The proxy server will need to be restarted in order for the changes to take effect

$ dpconf create-ldap-data-view -p 9389 "N-Z View" "N-Z Pool" \
ou=people,dc=example,dc=com
$ dpconf set-ldap-data-view-prop -p 9389 "N-Z View" \
distribution-algorithm:lexicographic lexicographic-attrs:uid \
lexicographic-lower-bound:n lexicographic-upper-bound:z
The proxy server will need to be restarted in order for the changes to take effect
$ dpadm restart /local/dps

第四步是分割要載入至適當資料來源的 LDIF。此範例使用 dsadm split-ldif 指令執行初始分割及部分檔案編輯,以保留所有資料來源的頂端項目。如此即可保留指定存取控制指令的頂端項目,又可以為每個資料來源使用單一匯入指令。


$ dpadm split-ldif /local/dps /local/ds6/ldif/Example.ldif /tmp/
[14/May/2007:21:14:13 +0200] - STARTUP    - INFO  - Java Version: 1.5.0_09
 (Java Home: /local/jre)
[14/May/2007:21:14:13 +0200] - STARTUP    - INFO  - Java Heap Space: Total Memory
 (-Xms) = 3MB,
 Max Memory (-Xmx) = 63MB
[14/May/2007:21:14:13 +0200] - STARTUP    - INFO  - Operating System: SunOS/sparc 5.10
[14/May/2007:21:14:15 +0200] - INTERNAL   - ERROR - Entry starting at line 0 does not
 start with a DN
[14/May/2007:21:14:15 +0200] - INTERNAL   - ERROR - Unable to parse line "# Kirsten is
 a Directory Administrator and therefore should not" of entry "uid=kvaughan, ou=People,
 dc=example,dc=com" starting at line 112 as an attribute/value pair -- no colon found.
[14/May/2007:21:14:15 +0200] - INTERNAL   - ERROR - Unable to parse line "# Robert is
 a Directory Administrator and therefore should not" of entry "uid=rdaugherty,
 ou=People, dc=example,dc=com" starting at line 298 as an attribute/value pair --
 no colon found.
[14/May/2007:21:14:16 +0200] - INTERNAL   - ERROR - Unable to parse line "# Harry is
 a Directory Administrator and therefore should not" of entry "uid=hmiller, ou=People,
 dc=example,dc=com" starting at line 556 as an attribute/value pair -- no colon found.
[14/May/2007:21:14:16 +0200] - INTERNAL   - INFO  - SplitLDIF processing complete.
  Processed 156 entries.
$ ls /tmp/*ldif
/tmp/a-m view.ldif    /tmp/base view.ldif   /tmp/n-z view.ldif

在進行匯入作業之前,此步驟還需要加至 LDIF 的頂端項目。


$ cp /local/ds6/ldif/Example.ldif /tmp/top.ldif
$ vi /tmp/top.ldif 
$ cat /tmp/top.ldif  
dn: dc=example,dc=com
objectclass: top
objectclass: domain
dc: example
aci: (target ="ldap:///dc=example,dc=com")(targetattr !=
 "userPassword")(version 3.0;acl "Anonymous read-search access";
 allow (read, search, compare)(userdn = "ldap:///anyone");)
aci: (target="ldap:///dc=example,dc=com") (targetattr =
  "*")(version 3.0; acl "allow all Admin group"; allow(all) groupdn =
  "ldap:///cn=Directory Administrators,ou=Groups,dc=example,dc=com";)

$ cat /tmp/top.ldif /tmp/base\ view.ldif > /tmp/top\ and\ base\ view.ldif
$ cat /tmp/top.ldif /tmp/a-m\ view.ldif > /tmp/top\ and\ a-m\ view.ldif
$ cat /tmp/top.ldif /tmp/n-z\ view.ldif > /tmp/top\ and\ n-z\ view.ldif

第五步是將分割的 LDIF 匯入適當資料來源。在此,處理基底項目的目錄位在連接埠 3389 上。處理 A-M 的目錄會偵聽連接埠 1389。處理 N-Z 的目錄會偵聽連接埠 2389。


$ dsconf import -p 1389 /tmp/top\ and\ a-m\ view.ldif dc=example,dc=com
...
Task completed (slapd exit code: 0).

$ dsconf import -p 2389 /tmp/top\ and\ n-z\ view.ldif dc=example,dc=com
...
Task completed (slapd exit code: 0).
$ dsconf import -p 3389 /tmp/top\ and\ base\ view.ldif dc=example,dc=com
...
Task completed (slapd exit code: 0).

第六步是為附加至適當資料池的資料來源,調整作業型加權。如果用戶端應用程式執行搜尋以外的作業,也必須為這些作業設定加權。


$ dpconf set-attached-ldap-data-source-prop -p 9389 "Base Pool" dsBase search-weight:1
$ dpconf set-attached-ldap-data-source-prop -p 9389 "A-M Pool" dsA-M search-weight:1
$ dpconf set-attached-ldap-data-source-prop -p 9389 "N-Z Pool" dsN-Z search-weight:1

設定作業型加權之後,用戶端應用程式便可透過目錄代理伺服器進行搜尋,而不會感到資料實際已進行了分佈。

下列搜尋會尋找 UID 開頭為 R 的使用者。


$ ldapsearch -p 9389 -b dc=example,dc=com uid=rfisher
version: 1
dn: uid=rfisher, ou=People, dc=example,dc=com
cn: Randy Fisher
sn: Fisher
givenName: Randy
objectClass: top
objectClass: person
objectClass: organizationalPerson
objectClass: inetOrgPerson
ou: Human Resources
ou: People
l: Cupertino
uid: rfisher
mail: rfisher@example.com
telephoneNumber: +1 408 555 1506
facsimileTelephoneNumber: +1 408 555 1992
roomNumber: 1579

下一個搜尋會尋找基底項目之一。


$ ldapsearch -p 9389 -b ou=groups,dc=example,dc=com cn=hr\ managers
version: 1
dn: cn=HR Managers,ou=groups,dc=example,dc=com
objectClass: top
objectClass: groupOfUniqueNames
cn: HR Managers
ou: groups
uniqueMember: uid=kvaughan, ou=People, dc=example,dc=com
uniqueMember: uid=cschmith, ou=People, dc=example,dc=com
description: People who can manage HR entries

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

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

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. 請視需要重新啟動目錄代理伺服器實例以使變更生效。

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

顯示目錄代理伺服器實例配置資訊

若要顯示目錄代理伺服器實例配置,請鍵入 dpconf info


$ dpconf info
Instance Path           :  instance path
Host Name               :  host
Secure listen address   :  IP address
Port                    :  port
Secure port             :  secure port
SSL server certificate  :  defaultServerCert

Directory Proxy Server needs to be restarted.

只有 Secure listen addressNon-secure listen address 設定為非預設值時,dpconf info 才會顯示這些特性。上述輸出不會顯示 Non-secure listen address,因為此特性並未設定為非預設值。

如果需要重新啟動實例,dpconf info 也會提醒使用者重新啟動。

您也可以使用 dpadm info 來顯示目錄代理伺服器實例配置資訊。

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

當您使用 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
    

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

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

aci-data-view
bind-dn
client-cred-mode
custom-distribution-algorithm
db-name
db-pwd
db-url
db-user
distribution-algorithm
ldap-address
ldap-port
ldaps-port
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
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=config

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

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

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

本章包含下列主題:

預設的自行簽署憑證

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

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

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

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


    $ dpadm show-cert instance-path defaultservercert

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

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

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

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

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

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

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

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

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


    $ 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 線上說明。

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


    $ 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 線上說明。

  1. 列出目錄代理伺服器實例憑證資料庫中的 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.2 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
    

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

將 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 章 目錄代理伺服器負載平衡與用戶端相似性

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

配置負載平衡

如需有關負載平衡的資訊,請參閱「Sun Java System Directory Server Enterprise Edition 6.2 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.2 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.2 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.2 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.2 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.2 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.2 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.2 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 線上說明。

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


    $ 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 線上說明。

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


    $ 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

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


    $ 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

第 22 章 目錄代理伺服器分佈

如需目錄代理伺服器分佈的簡介與使用案例範例的描述,請參閱「Sun Java System Directory Server Enterprise Edition 6.2 Reference」中的第 17 章「Directory Proxy Server Distribution」

本章包含下列主題:

建立與配置 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               :  ""
    attr-name-mappings                          :  none
    base-dn                                     :  suffix-DN
    contains-shared-entries                     :  false
    custom-distribution-algorithm-class         :  none
    description                                 :  -
    distribution-algorithm                      :  none
    dn-join-rule                                :  none
    dn-mapping-attrs                            :  none
    dn-mapping-source-base-dn                   :  none
    excluded-subtrees                           :  -
    filter-join-rule                            :  none
    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                           :  none
    non-writable-attr                           :  none
    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

    若要將值增加至多值特性,請使用此指令:


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

    若要從多值特性中移除值,請使用此指令:


    $ dpconf set-ldap-data-view-prop -h host -p port view-name property-:value
    
  3. 請視需要重新啟動目錄代理伺服器實例以使變更生效。

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

Procedure配置自訂分佈演算法

您可以為所有的資料檢視類型配置自訂分佈演算法,包含 ldap-data-viewjdbc-data-viewldif-data-viewjoin-data-view 等資料檢視類型。在下列程序中,僅設定 ldap-data-view 的演算法。

  1. extension-jar-file-url 特性設定為包含內有分佈演算法類別之 Java 歸檔 (JAR) 檔案的路徑。


    $ dpconf set-server-prop -h host -p port extension-jar-file-url:jar file path
    

    jar file path 會被有效的 JAR 檔案路徑取代,例如 file:/expt/dps/custom_plugin/myjar.jar

  2. 在配置 custom-distribution-algorithm 之前,請將 distribution-algorithm 設定為 none


    $ dpconf set-ldap-data-view-prop view name distribution-algorithm:none
  3. custom-distribution-algorithm 特性設定為您的自訂分佈演算法類別。


    $ dpconf set-ldap-data-view-prop view name custom-distribution-algorithm:PackageName.AlgoClassName
    

重新命名屬性與 DN

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

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

Procedure配置屬性重新命名

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

  1. 在您要配置屬性對映的資料檢視上設定一或多個 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

    若要將屬性對映增加至現有的對映清單中,請使用此指令:


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

    若要從現有的對映清單中移除屬性對映,請使用此指令:


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

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

    若要將 DN 對映增加至現有的對映清單中,請使用此指令:


    $ dpconf set-ldap-data-view-prop -h host -p port view-name dn-mapping-attrs+:attribute-name
    

    若要從現有的對映清單中移除 DN 對映,請使用此指令:


    $ dpconf set-ldap-data-view-prop -h host -p port view-name dn-mapping-attrs-:attribute-name
    
  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.2 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.2 Reference」中的「Data Views to Route Requests When a List of Subtrees Are Stored on Multiple, Data-Equivalent Data Sources」

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

圖 22–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.2 Reference」中的「Data Views to Provide a Single Point of Access When Different Subtrees Are Stored on Different Data Sources」

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

圖 22–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.2 Reference」中的「Data Views to Route Requests When Different Parts of a Subtree Are Stored in Different Data Sources」

圖 22–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.2 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 中子樹狀結構的子樹狀結構。下圖顯示部署範例。

圖 22–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.2 Reference」中的「Data Views With Hierarchy and a Distribution Algorithm」

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

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

下圖顯示部署範例。

圖 22–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. 重新啟動目錄代理伺服器實例,變更方可生效。

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

第 23 章 目錄代理伺服器虛擬

本章說明如何建立虛擬資料檢視。虛擬資料檢視會轉換資料來源,再對用戶端應用程式呈現不同的資料檢視。虛擬資料檢視包含轉換的 LDAP 資料檢視、LDIF 資料檢視、連結資料檢視及 JDBCTM 資料檢視。如需虛擬資料檢視的功能簡介與使用案例範例的說明,請參閱「Sun Java System Directory Server Enterprise Edition 6.2 Reference」中的第 18 章「Directory Proxy Server Virtualization」

您無法使用目錄服務控制中心 (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.2 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...]

    請注意,parameters 可能是必要項目,視 transformation-modeltransformation-action 而定。如需有關轉換模式、轉換動作與轉換參數的資訊,請參閱「Sun Java System Directory Server Enterprise Edition 6.2 Reference」中的「Virtual Data Transformations」

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

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

建立與配置連結資料檢視

連結資料檢視是多個資料檢視的彙總。如需有關連結資料檢視運作方式的資訊,請參閱「Sun Java System Directory Server Enterprise Edition 6.2 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
    join-rule-control-enabled                   :  false
    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. 配置連結資料檢視時,請在主要資料檢視和輔助資料檢視上設定 viewable-attrwritable-attr 特性。

    設定這些特性有助於在主要資料檢視與輔助資料檢視上適當地分割搜尋篩選。否則,當搜尋篩選包含輔助資料檢視的屬性時,搜尋結果可能會不一致。

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

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

Procedure配置連結資料檢視,以啟用多個連結資料檢視對單一資料檢視的參照

在連結資料檢視中設定連結規則的配置資訊,使多個連結資料檢視可參照該資料檢視。若要達成目的,請執行下列作業:

  1. 將連結資料檢視的 join-rule-control-enabled 設為 true


    $ dpconf set-join-data-view-prop view-name join-rule-control-enabled:true

    join-rule-control-enabled 設為 true 之後,伺服器會使用儲存在連結資料檢視中的連結規則配置資訊。如果在輔助資料檢視中儲存了連結規則配置資訊的連結資料檢視,則伺服器不會使用此資訊。若要讓伺服器使用此資訊,必須在連結資料檢視層級手動增加此配置資訊。

  2. 定義連結規則以決定輔助檢視如何與主要檢視相關聯。

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

    • DN 連結規則


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


      $ dpconf set-join-data-view-prop view-name \
      filter-join-rule:uid=\${primary-view-name.uid}

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

必須配置輔助資料檢視上的特定特性,以允許其做為連結檢視的來源。由於輔助檢視可以是任何類型的資料檢視,您使用的指令依賴於資料檢視類型。下列指令範例假設輔助檢視為 LDAP 資料檢視。如需有關此處所述之特性的更多資訊,請參閱「Sun Java System Directory Server Enterprise Edition 6.2 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}

    只有在連結資料檢視上的 join-rule-control-enabled 特性設為 false 時,伺服器才使用 dn-join-rulefilter-join-rule 特性的配置。否則,如果連結資料檢視上的 join-rule-control-enabled 特性設為 true,則會忽略輔助檢視上所設定的資訊。

  2. 如果在連結資料檢視上設定篩選連結規則,則必須在輔助資料檢視上設定虛擬轉換規則,才能在連結資料檢視上增加項目。


    dpconf add-virtual-transformation secondary-view-name \
    write add-attr-value dn uid=\${uid}

    備註 –

    若未設定此規則,則不可能在連結資料檢視上增加項目。


  3. (可選擇) 指定輔助檢視上是否允許連結。

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


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

    如需有關此特性的更多資訊,請參閱「Sun Java System Directory Server Enterprise Edition 6.2 Reference」中的「Handling of Binds」

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


    $ 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.2 Reference」中的「Handling of Shared Entries」

建立與配置 JDBC 資料檢視

JDBC 資料檢視可讓 LDAP 用戶端應用程式得以存取關聯式資料庫。如需有關 JDBC 資料檢視運作方式的資訊,請參閱「Sun Java System Directory Server Enterprise Edition 6.2 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 \
    [-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 特性指定。)

    若是 MySQL、DB2 和 Derby 資料庫,db-url 必須尾隨 /;若是 Oracle 資料庫,則必須尾隨 :

    driver-class

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

    driver-url

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

    driver-url 特性為多值特性。因此,driver-url 對 JDBC 驅動程式支援多重 JAR 檔案,以確保可對不同平台上之 JDBC 來源進行連線。

  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 篩選可能會使用的索引。


    備註 –

    若關聯式資料庫不會區分大小寫,請使用 ldap-syntax 的預設值 cis。不區分大小寫的資料庫不支援 ldap-syntax:ces


  4. 為 LDAP 關聯式資料庫表格建立 JDBC 物件類別。


    % dpconf create-jdbc-object-class view-name objectclass primary-table \
      [secondary-table... ] DN-pattern
    

    建立 JDBC 物件類別本質上是指定將與這些表格相關聯的 LDAP 物件類別。JDBC 物件類別還指定主要表格與輔助表格 (如果存在)。

    在建立 JDBC 物件類別時,指定 DN 模式。DN 模式顯示項目 DN 的建構方式。

    在 JDBC 物件類別的 DN 模式中定義的所有子樹狀結構元件,均應有為其定義的 JDBC 物件類別。例如,如果 JDBC 物件類別中有 DN 模式 uid,ou,應有 DN 模式為 ou 的 JDBC 物件類別定義。這是目錄代理伺服器建構正確結構化之 DIT 的必要條件。否則,在搜尋結果中不會傳回含有 ou=xxx,base-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 物件類別僅包含單一 (主要) 表格。由於沒有輔助表格,因此無須定義表格之間的關係。

如果物件類別包含多個表格,必須清楚地定義這些表格之間的關係。表格之間的關係一律定義於輔助表格上。輔助表格的下列特性可讓您定義這些關係:

以下範例說明如何根據前兩個特性的值定義篩選連結規則。這些範例假設物件類別具有一個主要表格與一個輔助表格。


範例 23–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 作業的運作方式如下:



範例 23–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



範例 23–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}"


範例 23–4 is-single-row-table:falsecontains-shared-entries:true

目錄代理伺服器目前不支援此案例。


定義虛擬資料檢視的存取控制

虛擬資料檢視上的 ACI 可以儲存在 LDAP 目錄或 LDIF 檔案中。如需有關虛擬 ACI 運作方式的資訊,請參閱「Sun Java System Directory Server Enterprise Edition 6.2 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.2 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
    

虛擬配置範例

下一節提供兩個配置範例。這些配置說明虛擬目錄的主要功能,並指出這些功能的配置方式。

連結 LDAP 目錄與 MySQL 資料庫

本節程序說明的虛擬配置範例,會連結 LDAP 目錄與 MySQL 資料庫。LDAP 目錄是主要的資料來源,包含大部分的使用者資訊。mySQL 資料庫包含關於使用者的其他資訊。下圖說明產生的配置。

圖 23–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. 建立資料來源池的 LDAP 資料檢視,名稱為 myds1–view,基底 DN 為 dc=example,dc=com


    % 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.example.com: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:///uid=kvaughan,o=sql";)
    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 add-virtual-transformation secondary-view-name \
    write add-attr-value dn uid=\${uid}

    備註 –

    若未設定此規則,則不可能在連結資料檢視上增加項目。


  4. 定義可以透過連結資料檢視從主要資料檢視讀取及寫入主要資料檢視的一組屬性。


    % 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 資料檢視,則可以讀取與寫入所有屬性。

  5. 定義可以透過連結資料檢視從輔助資料檢視讀取及寫入輔助資料檢視的一組屬性。


    % 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 使用者資料的高階檢視。

圖 23–2 不同來源中的資料儲存

該圖顯示 Example.com 的使用者資料如何儲存在不同的資料來源中

用戶端應用程式需求

Example.com 具有數個必須能夠存取儲存在不同資料來源中的資料的 LDAP 用戶端應用程式。這些用戶端應用程式的需求不盡相同。因此需要不同的資料檢視。在某些情況下,用戶端必須彙總資料。此外,某些用戶端應用程式必須能夠存取 Company22 的使用者資料,以便能夠同時管理 Example.com 的新舊員工。

下圖提供 Example.com 用戶端應用程式需求的高階檢視。

圖 23–3 用戶端應用程式需求

該圖顯示 Example.com 的 LDAP 應用程式需求

以下幾節引導您充分配置目錄代理伺服器資料檢視,以滿足本範例方案中所述之用戶端應用程式需求。如需有關資料檢視運作方式的資訊,請參閱「Sun Java System Directory Server Enterprise Edition 6.2 Reference」中的第 17 章「Directory Proxy Server Distribution」「Sun Java System Directory Server Enterprise Edition 6.2 Reference」中的第 18 章「Directory Proxy Server Virtualization」

範例方案的配置分為下列幾節:

彙總來自人力資源部門 LDAP 目錄與管理部門 LDIF 檔案的資料

人力資源部門儲存員工姓名、開始工作日期與職等等資訊。管理部門儲存其他資料,例如大樓代碼與辦公室編號。處理人力資源部門資料的用戶端應用程式必須能夠存取合併自這兩個來源的資料。這兩個資料來源具有存在於每個項目中的共用屬性 employeeNumber

下圖說明用戶端應用程式的需求。

圖 23–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. 配置附加資料來源的加權。

    $ dpconf set-attached-ldap-data-source-prop -h payrollHost -p 2389 \
    payroll-pool payroll-directory add-weight:2 \
    bind-weight:2 compare-weight:2 delete-weight:2 \
    modify-dn-weight:2 modify-weight:2 search-weight:2
  5. 建立薪資部門目錄的 LDAP 資料檢視。

    $ dpconf create-ldap-data-view payroll-view payroll-pool o=example.com
  6. 啟用 LDAP 資料檢視以將用戶端請求路由至此資料檢視。

    $ dpconf set-ldap-data-view-prop payroll-view is-enabled:true
  7. 重新啟動目錄代理伺服器以使變更生效。

    $ 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 的資料。

下圖說明用戶端應用程式的需求。

圖 23–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. 配置附加資料來源的加權。

    $ dpconf set-attached-ldap-data-source-prop -h company22Host -p 2389 \
    company22-pool company22-directory add-weight:2 \
    bind-weight:2 compare-weight:2 delete-weight:2 \
    modify-dn-weight:2 modify-weight:2 search-weight:2
  5. 為 Company 22 的目錄建立虛擬 DN 為 dc=example,dc=com 的 LDAP 資料檢視。

    $ dpconf create-ldap-data-view company22-view company22-pool dc=example,dc=com
  6. 指示目錄代理伺服器將此虛擬 DN 對映至 Company 22 目錄中的實際 DN。

    $ dpconf set-ldap-data-view-prop company22-view \
    dn-mapping-source-base-dn:dc=company22,dc=com
  7. 啟用 Company 22 目錄的 LDAP 資料檢視,以將用戶端請求路由至此資料檢視。

    $ dpconf set-ldap-data-view-prop company22-view is-enabled:true
  8. 重新啟動目錄代理伺服器以使變更生效。

    $ dpadm restart /local/myDPS

將 Company 22 的資料增加至人力資源部門的資料

人力資源部門需要 Example.com 與新買入的 Company 22 人力資源部門資料的彙總檢視。下圖說明人力資源部門全域應用程式的需求。

圖 23–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 資料。

下圖說明用戶端應用程式的需求。

圖 23–7 提供 SQL 資料庫存取的 JDBC 資料檢視

該圖顯示提供 SQL 資料庫存取的 JDBC 資料檢視

若要滿足此應用程式需求,必須建立 JDBC 資料檢視將 SQL 表格中的欄對映至 LDAP 屬性。

為簡便起見,本節中所用的指令假設下列資訊:

Procedure為 Example.com 的薪資部門資料庫建立 JDBC 資料檢視

  1. 為薪資部門資料庫建立 JDBC 資料來源。

    $ dpconf create-jdbc-data-source -b payrollsqldb \
      -B jdbc:payrollsqldb:payrollsql://localhost/ \
      -J file://payrollsqldb.jar \
      -S org.payrollsqldb.jdbcDriver payroll-src 
  2. 以 SQL 資料庫的特性配置 JDBC 資料來源。

    $ dpconf set-jdbc-data-source-prop payroll-src \
      db-user:proxy
      db-pwd-file:password-file-location/myPasswordFile
  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

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

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

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

建立 LDAP 資料來源時,預設為 LDAP 資料來源開啟的連線數為六個,亦即每個讀取、連結及寫入作業各有兩個連線。若要驗證預設連線數,請輸入下列指令:


dpconf get-ldap-data-source-prop src-name num-read-init num-write-init num-bind-init
num-bind-init   :  2
num-read-init   :  2
num-write-init  :  2

當流量增加時,連線數會自動增加。

如需有關如何配置目錄代理伺服器與後端 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 線上說明。

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


    $ 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 線上說明。

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


    $ 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 ...]

      若要將密碼增加至現有支援的密碼清單,請使用此指令:


      $ dpconf set-server-prop -h host -p port \
       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 ...]

      若要將協定增加至現有支援的協定清單,請使用此指令:


      $ dpconf set-server-prop -h host -p port \
       enabled-ssl-cipher-protocols+:supported-ssl-cipher-protocol
      
  4. (可選擇) 停用支援的密碼或協定。


    $ dpconf set-server-prop -h host -p port \
     enabled-ssl-cipher-protocols-:supported-ssl-cipher-protocol
    

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

本節包含各種方法的相關資訊,您可用來將目錄代理伺服器的請求轉寄至後端 LDAP 伺服器。

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

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

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

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

  1. 配置資料來源用戶端憑證,以透過使用由用戶端提供的憑證認證後端 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.2 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. 將目錄代理伺服器配置為接受代理授權控制版本 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 線上說明。

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


    $ 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 伺服器不包含匿名用戶端的項目,因此在目錄代理伺服器中配置匿名用戶端的對映。

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

第 25 章 用戶端與目錄代理伺服器之間的連線

如需用戶端與目錄代理伺服器之間的連線和連線處理程式之簡介,以及連線處理程式中使用的條件和策略說明,請參閱「Sun Java System Directory Server Enterprise Edition 6.2 Reference」中的第 20 章「Connections Between Clients and Directory Proxy Server」

本章包含下列主題:

建立、配置與刪除連線處理程式

如需有關如何建立、配置與刪除連線處理程式的資訊,以及有關如何配置資料檢視相似性的資訊,請參閱下列程序。

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 ...]

    若要將資料檢視增加至現有的資料檢視清單中,請使用此指令:


    $ dpconf set-connection-handler-prop -h host -p port connection-handler-name \
     data-view-routing-custom-list+:view-name
    

    若要將資料檢視從現有的資料檢視清單中移除,請使用此指令:


    $ dpconf set-connection-handler-prop -h host -p port connection-handler-name \
     data-view-routing-custom-list-:view-name
    

建立與配置請求篩選策略與搜尋資料隱藏規則

如需請求篩選策略的簡介,請參閱「Sun Java System Directory Server Enterprise Edition 6.2 Reference」中的「Request Filtering Policies for Connection Handlers」。如需搜尋資料隱藏規則的簡介,請參閱「Sun Java System Directory Server Enterprise Edition 6.2 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.2 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.2 是以作業為基礎的路由器。但是,此版本的目錄代理伺服器可能因為相容性而設為以連線為基礎的路由器,如下列程序所述。

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.2 Reference」中的第 21 章「Directory Proxy Server Client Authentication」

本章包含下列主題:

配置用戶端與目錄代理伺服器之間的偵聽程式

目錄代理伺服器提供安全偵聽程式與非安全偵聽程式以與用戶端通訊。如需有關目錄代理伺服器偵聽程式的資訊,請參閱「Sun Java System Directory Server Enterprise Edition 6.2 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.2 Reference」中的「Client Authentication Overview」。如需有關如何配置認證的資訊,請參閱下列程序。

Procedure配置憑證型認證

如需有關憑證型用戶端認證的資訊,請參閱「Sun Java System Directory Server Enterprise Edition 6.2 Reference」中的「Configuring Certificates in Directory Proxy Server」。本節說明如何配置憑證型認證。

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


備註 –

憑證型認證僅能在 SSL 連線上執行。


  1. 將目錄代理伺服器配置為用戶端建立 SSL 連線時必須出示憑證。


    $ dpconf set-server-prop -h host -p port allow-cert-based-auth:require

Procedure配置匿名存取

如需有關匿名存取的資訊,請參閱「Sun Java System Directory Server Enterprise Edition 6.2 Reference」中的「Anonymous Access」。如需有關如何將匿名用戶端的識別對映到其他識別的資訊,請參閱以替代使用者身份轉寄請求

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

  1. 允許未認證的使用者執行作業。


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

Procedure為 SASL 外部連結配置目錄代理伺服器

如需有關 SASL 外部連結的資訊,請參閱「Sun Java System Directory Server Enterprise Edition 6.2 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.2 Reference」中的第 23 章「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 線上說明。

  1. 自動重建存取記錄。


    $ dpconf rotate-log-now -h host -p port access

Procedure停用存取與錯誤記錄自動重建

此程序會停用目錄代理伺服器存取記錄的自動重建。若要停用目錄代理伺服器錯誤記錄的自動重建,請執行相同的程序,但以 error 取代 access

  1. 停用記錄檔自動重建。


    $ 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.2 Reference」中的「Log File Deletion」

下列程序配置存取記錄的記錄刪除。若要配置錯誤記錄的記錄刪除,請使用相同指令,但以 error 取代 access

Procedure配置根據時間刪除存取與錯誤記錄

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

  1. 指定記錄檔的最長期限。


    $ 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 線上說明。

  1. 指定記錄檔的大小上限。


    $ 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 線上說明。

  1. 指定最小的可用磁碟空間。


    $ 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.2 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.2 Reference」中的「Monitoring Directory Proxy Server」。本章包含下列主題:

擷取關於目錄代理伺服器的監視資料

若要擷取有關目錄代理伺服器的監視資料,請使用 cn=monitor 項目。此項目由目錄代理伺服器在本機常駐記憶體資料庫上進行管理。您可以在 cn=monitor 項目上執行 LDAP 搜尋,以擷取 cn=monitor 下的屬性。您必須以代理伺服器管理員身份連結,才能搜尋此項目。

如需有關使用 JVM 擷取監視資料的資訊,請參閱透過使用 JVM 擷取關於目錄代理伺服器的監視資料

擷取關於資料來源的監視資料

如需目錄代理伺服器如何監視資料來源運作狀態的描述,請參閱「Sun Java System Directory Server Enterprise Edition 6.2 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

    若要將警示增加至現有已啟用的警示清單,請執行此指令:


    % dpconf set-server-prop -h host -p port enabled-admin-alerts+:alert-name
    

    若要從現有已啟用的警示清單中移除警示,請執行此指令:


    % dpconf set-server-prop -h host -p port enabled-admin-alerts-:alert-name
    

    依預設,不啟用警示。

另請參閱

如需詳細資訊,請參閱 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.2 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 執行此作業。請依照此程序中的說明使用指令行。

  1. 檢視 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 耗費的時間量。