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

虛擬配置範例

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

連結 LDAP 目錄與 MySQL 資料庫

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

圖 24–1 虛擬配置範例

圖中顯示的連結資料檢視包含 LDAP 資料檢視與 JDBC 資料檢視

您可以使用 install-path /ds6/ldif/Example.ldif 中提供的資料範例複寫本範例,或者以自己的資料替代資料範例。

此配置可分為三部分:

為簡便起見,本節中的所有指令假設目錄代理伺服器在本機的 /local/dps 中執行。這些指令還假設已設定下列環境變數:

DIR_PROXY_PORT

1389

LDAP_ADMIN_PWF

pwd.txt,包含管理員密碼的檔案。

DIRSERV_PORT

4389

LDAP_ADMIN_USER

cn=Directory Manager

配置與測試 LDAP 資料檢視

Procedure配置 LDAP 資料檢視

開始之前

本節中的作業假設下列資訊:

  1. 為目錄伺服器實例建立名為 myds1 的 LDAP 資料來源。


    % dpconf create-ldap-data-source myds1 host1:4389
  2. 啟用資料來源,並允許該資料來源的寫入作業。


    % dpconf set-ldap-data-source-prop myds1 is-enabled:true is-read-only:false
  3. 建立名為 myds1-pool 的 LDAP 資料來源池。


    % dpconf create-ldap-data-source-pool myds1-pool
  4. 將 LDAP 資料來源附加至 LDAP 資料來源池。


    % dpconf attach-ldap-data-source myds1-pool myds1
  5. 指定資料來源應從資料來源池接收 100% 的連結、增加、搜尋與修改作業。


    % dpconf set-attached-ldap-data-source-prop myds1-pool myds1 add-weight:100 \
     bind-weight:100 modify-weight:100 search-weight:100
  6. 為資料來源池建立名為 myds1–view 且基底 DN 為 dc=example,dc=com 的 LDAP 資料檢視。


    % dpconf create-ldap-data-view myds1-view myds1-pool dc=example,dc=com

Procedure測試 LDAP 資料檢視

  1. dc=example,dc=com 下使用者的身份搜尋 LDAP 資料來源中的所有項目,來驗證是否可以讀取資料檢視。


    % ldapsearch -p 1389 -D "uid=kvaughan,ou=people,dc=example,dc=com" -w bribery \
     -b dc=example,dc=com "objectclass=*"

    備註 –

    您必須使用 dc=example,dc=com 下使用者的憑證。若要使用 cn=Directory Manager,則必須定義資料檢視以處理該 DN。


  2. dc=example,dc=com 下使用者的身份修改 userPassword 屬性,來驗證是否可以寫入資料檢視。


    % ldapmodify -p 1389 -D "uid=kvaughan,ou=people,dc=example,dc=com" -w bribery
    dn: uid=kvaughan,ou=people,dc=example,dc=com
    changetype: modify
    replace: userPassword
    userPassword: myNewPassword

    備註 –

    目錄伺服器中的預設 ACI 可讓使用者修改自己的密碼。


配置與測試 JDBC 資料檢視

下列作業假設 mySQL 資料庫已安裝、且正在執行並已寫入資料,以及 mySQL 資料庫具有下列特徵:

下表說明資料庫中的表格及其複合欄位。您需要此資訊才能設定 JDBC 資料檢視。

mySQL 表格 

欄位 

EMPLOYEE

IDSURNAMEPASSWORDTITLECOUNTRY_ID

COUNTRY

IDNAME

PHONE

USER_IDNUMBER

Procedure配置 JDBC 資料檢視

  1. 為 SQL 資料庫建立名為 mysql1 的 JDBC 資料來源。


    % dpconf create-jdbc-data-source -b sample_sql -B jdbc:mysql://host2:3306 \
     -J file:/net/host2.example/local/mysql/lib/jdbc.jar -S com.mysql.jdbc.Driver mysql1
  2. 指定 SQL 資料庫的使用者名稱與密碼檔案。


    % dpconf set-jdbc-data-source-prop mysql1 db-pwd-file:sqlpwd.txt db-user:root
  3. 重新啟動代理伺服器。


    % dpadm restart /local/dps
  4. 啟用資料來源,並允許該資料來源的寫入作業。


    % dpconf set-jdbc-data-source-prop mysql1 is-enabled:true is-read-only:false
  5. 建立名為 mysql1–pool 的 JDBC 資料來源池。


    % dpconf create-jdbc-data-source-pool mysql1-pool
  6. 將 JDBC 資料來源附加至資料來源池。


    % dpconf attach-jdbc-data-source mysql1-pool mysql1
  7. 為資料來源池建立名為 myjdbc1–view 且基底 DN 為 o=sql 的 JDBC 資料檢視。


    % dpconf create-jdbc-data-view mysql1-view mysql1-pool o=sql
  8. 為 MySQL 資料庫中的每個表格建立 JDBC 表格。


    % dpconf create-jdbc-table employee1 EMPLOYEE
    % dpconf create-jdbc-table country1 COUNTRY
    % dpconf create-jdbc-table phone1 PHONE

    SQL 資料庫中表格的名稱區分大小寫。請確保使用與 SQL 資料庫中相同的大小寫。

  9. 為各表格中的每一欄建立 JDBC 屬性。

    建立 JDBC 屬性會將 MySQL 欄對映至 LDAP 屬性。


    % dpconf add-jdbc-attr employee1 uid ID
    % dpconf add-jdbc-attr employee1 sn SURNAME
    % dpconf add-jdbc-attr employee1 userPassword PASSWORD
    % dpconf add-jdbc-attr employee1 room ROOM
    % dpconf add-jdbc-attr phone1 tel NUMBER
    % dpconf add-jdbc-attr country1 country NAME

    由於 phone1 user_idcountry1 id 欄僅在 MySQL 資料庫環境中使用,因此無須為這兩欄建立 JDBC 屬性。這兩欄不具有對應的 LDAP 屬性。

  10. 為 LDAP person 物件類別建立 JDBC 物件類別。

    在此步驟中,將 employee1 表格識別為主要表格,而將 country1phone1 表格識別為輔助表格。JDBC 物件類別的建立作業也需要 DN。在此範例中,DN 從資料檢視的 uid 屬性與基底 DN 中建構。


    % dpconf create-jdbc-object-class mysql1-view person employee1 country1 phone1 uid
  11. 定義主要表格與輔助表格之間的連結規則。

    連結規則定義於輔助表格上,並確定輔助表格的資料如何連結至主要表格的資料。


    % dpconf set-jdbc-table-prop country1 filter-join-rule:'ID=${EMPLOYEE.COUNTRY_ID}'
    % dpconf set-jdbc-table-prop phone1 filter-join-rule:'USER_ID=${EMPLOYEE.ID}'
  12. 指定 JDBC 物件類別的超級類別。

    超級類別表示 JDBC 物件類別從其繼承屬性的 LDAP 物件類別。


    % dpconf set-jdbc-object-class-prop mysql1-view person super-class:top

Procedure建立所需的 ACI

您必須透過配置 ACI 以啟用資料檢視的寫入存取,才能測試 JDBC 資料檢視。依預設拒絕對非 LDAP 資料檢視的寫入存取。就本例目的而言,增加一個允許使用者修改其密碼的全域 ACI 即已足夠。

  1. 以代理伺服器管理員的身份將 ACI 池增加至 JDBC 資料來源,並增加一個全域 ACI 以允許使用者修改其項目。


    % ldapmodify -p 1389 -D "cn=proxy manager" -w password
    dn: cn=mysql1,cn=virtual access controls
    changetype: add
    objectclass: acisource
    dpsaci: (targetattr="*") (target = "ldap:///o=sql") \
     (version 3.0; acl "enable all access for all users "; allow(all) userdn="ldap:///self";)
    cn: mysql1
  2. 建立連線處理程式處理與 o=sql 網域的連線。


    % dpconf create-connection-handler mysql1-handler
  3. 啟用連線處理程式,並將其配置為處理來自 o=sql 網域中使用者的所有連結。


    % dpconf set-connection-handler-prop mysql1-handler is-enabled:true \
     bind-dn-filters:"uid=.*,o=sql"
  4. 將連線處理程式配置為使用先前增加的 ACI 池。


    % dpconf set-connection-handler-prop mysql1-handler aci-source:mysql1

Procedure測試 JDBC 資料檢視

  1. o=sql 下使用者的身份搜尋 JDBC 資料來源,來驗證是否可以讀取資料檢視。


    % ldapsearch -p 1389 -D "uid=kvaughan,o=sql" -w mypwd -b o=sql "objectclass=*"

    備註 –

    您必須使用 o=sql 下使用者的憑證或匿名連結。


  2. o=sql 下使用者的身份修改 userPassword 屬性,來驗證是否可以寫入資料檢視。


    % ldapmodify -p 1389 -D "uid=kvaughan,o=sql" -w mypwd
    dn: uid=kvaughan,o=sql
    changetype: modify
    replace: userPassword
    userPassword: myNewpwd

建立與測試連結資料檢視

Procedure建立連結資料檢視

  1. 建立名為 myjoin1–view 的連結資料檢視。

    將 LDAP 資料檢視指定為主要資料檢視,而 JDBC 資料檢視為輔助資料檢視。


    % dpconf create-join-data-view myjoin1-view myds1-view mysql1-view o=join
  2. 在輔助資料檢視上定義連結規則。

    下列連結規則指定輔助資料檢視項目的 uid 屬性應與主要資料檢視項目的 uid 屬性相符。


    % dpconf set-jdbc-data-view-prop mysql1-view filter-join-rule:uid='${myds1-view.uid}'
  3. 定義可以透過連結資料檢視從主要資料檢視讀取及寫入主要資料檢視的一組屬性。


    % dpconf set-ldap-data-view-prop myds1-view viewable-attr:dn viewable-attr:cn \
     viewable-attr:sn viewable-attr:givenName viewable-attr:objectClass viewable-attr:ou \
     viewable-attr:l viewable-attr:uid viewable-attr:mail viewable-attr:telephoneNumber \
     viewable-attr:facsimileTelephoneNumber viewable-attr:roomNumber viewable-attr:userPassword
    % dpconf set-ldap-data-view-prop myds1-view writable-attr:dn writable-attr:cn \
     writable-attr:sn writable-attr:givenName writable-attr:objectClass writable-attr:ou \
     writable-attr:l writable-attr:uid writable-attr:mail writable-attr:telephoneNumber \
     writable-attr:facsimileTelephoneNumber writable-attr:roomNumber writable-attr:userPassword

    這些定義僅套用至連結檢視的環境中。依預設,如果直接存取 LDAP 資料檢視,則可以讀取與寫入所有屬性。

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


    % dpconf set-jdbc-data-view-prop mysql1-view viewable-attr:dn viewable-attr:objectclass \
     viewable-attr:sn viewable-attr:room viewable-attr:userpassword viewable-attr:jobtitle \
     viewable-attr:country viewable-attr:tel
    % dpconf set-jdbc-data-view-prop mysql1-view writable-attr:dn writable-attr:objectclass \
     writable-attr:sn writable-attr:room writable-attr:userpassword writable-attr:jobtitle \
     writable-attr:country writable-attr:tel

    這些定義僅會套用到連結檢視的環境中。依預設,如果直接存取 JDBC 資料檢視,則可以讀取與寫入所有屬性。

Procedure建立所需的 ACI

  1. 以代理伺服器管理員的身份增加全域 ACI,來允許對連結資料檢視的匿名存取。


    % ldapmodify -p 1389 -D "cn=proxy manager" -w password
    dn: cn=myjoin1,cn=virtual access controls
    changetype: add
    objectclass: acisource
    dpsaci: (targetattr="*") (target = "ldap:///o=join") \
     (version 3.0; acl "anonymous_access"; allow(all) userdn="ldap:///anyone";)
    cn: myjoin1
  2. 建立連線處理程式處理與 o=join 網域的連線。


    % dpconf create-connection-handler myjoin1-handler
  3. 啟用連線處理程式,並將其配置為處理來自 o=join 下使用者的所有連結。


    % dpconf set-connection-handler-prop myjoin1-handler is-enabled:true \
     bind-dn-filters:"uid=.*,ou=people,o=join"
  4. 將連線處理程式配置為使用先前增加的 ACI 池。


    % dpconf set-connection-handler-prop myjoin1-handler aci-source:myjoin1

Procedure測試連結資料檢視

  1. 以匿名使用者身份搜尋連結資料檢視。

    此步驟將搜尋 Kirsten Vaughan 的項目,以查看是否同時從兩個連結檢視擷取資料。


    % ldapsearch -p 1389 -b o=join "uid=kvaughan"

    請注意,傳回的項目包含 LDAP 資料檢視與 JDBC 資料檢視的屬性。

  2. o=join 下使用者的身份修改 userPassword 屬性,來驗證是否可以寫入連結資料檢視。


    % ldapmodify -p 1389 -D "uid=kvaughan,ou=people,o=join" -w myNewPassword
    dn: uid=kvaughan,ou=people,o=join
    changetype: modify
    replace: userPassword
    userPassword: myPassword

連結多個不同的資料來源

此配置以 Example.com 機構為例,說明虛擬目錄的部分功能可以滿足其特定的目錄服務需求。

資料儲存方案

Example.com 將機構資料儲存在多個不同的資料來源中。為了支援舊版,使用者資料分佈在 LDAP 目錄、平面 LDIF 檔案與 SQL 資料庫中。人力資源部門將使用者資料儲存在基底 DN 為 o=example.com 的 LDAP 目錄中。薪資部門將資料儲存在 SQL 資料庫中。管理部門將部門與大樓編號等管理資料儲存在基底 DN 為 dc=example,dc=com 的 LDIF 檔案中。

此外,Example.com 已買入名為 Company22 的公司。Company22 也將其使用者資料儲存在基底 DN 為 dc=company22,dc=com 的 LDAP 目錄中。

下圖提供如何儲存 Example.com 使用者資料的高階檢視。

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

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

用戶端應用程式需求

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

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

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

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

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

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

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

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

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

圖 24–4 來自 LDAP 目錄與 LDIF 檔案的資料彙總

該圖顯示 LDAP 目錄與 LDIF 檔案的連結檢視

若要滿足此應用程式需求,必須為薪資部門的目錄與管理部門的 LDIF 檔案建立資料檢視。然後,連結這兩個資料檢視以提供對彙總資料的存取。此共用屬性可讓目錄代理伺服器彙總每個使用者的資料。

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

若要取得每個指令的完整語法,請執行不含任何選項的指令。例如:

$ dpconf create-ldap-data-view
Operands are missing
Usage: dpcfg create-ldap-data-view VIEW_NAME POOL_NAME SUFFIX_DN

Procedure建立與啟用薪資部門目錄的 LDAP 資料檢視

  1. 為薪資部門目錄建立 LDAP 資料來源。

    $ dpconf create-ldap-data-source payroll-directory payrollHost:2389
  2. 為薪資部門目錄建立 LDAP 資料來源池。

    $ dpconf create-ldap-data-source-pool payroll-pool
  3. 將薪資部門資料來源附加至資料來源池。

    $ dpconf attach-ldap-data-source payroll-pool payroll-directory
  4. 建立薪資部門目錄的 LDAP 資料檢視。

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

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

    $ dpadm restart /local/myDPS

Procedure建立與啟用管理部門資料的 LDIF 資料檢視

  1. 建立管理部門資料的 LDIF 資料檢視。

    $ dpconf create-ldif-data-view admin-view example.ldif dc=example,dc=com
  2. 啟用管理部門資料的 LDIF 資料檢視。

    $ dpconf set-ldif-data-view-prop admin-view is-enabled:true
  3. 指定管理部門檢視包含薪資部門檢視中多個項目所使用的項目。

    $ dpconf set-ldif-data-view-prop admin-view contains-shared-entries:true

    當此特性設為 TRUE 時,刪除薪資部門資料檢視中的某項目,不會導致刪除管理部門資料檢視中的共用項目。如果某項目不存在,將該項目增加至薪資部門資料檢視僅會將其增加至輔助資料檢視。

  4. 重新啟動目錄代理伺服器以使變更生效。

    $ dpadm restart /local/myDPS

Procedure連結薪資部門資料檢視與管理部門資料檢視

  1. 建立管理部門資料檢視的篩選連結規則,以指定彙總資料的方式。

    下列連結規則指定應根據使用者項目的 employeeNumber 屬性連結資料。

    $ dpconf set-ldif-data-view-prop admin-view filter-join-rule:'employeeNumber=\${payroll-view.employeeNumber}'
  2. 建立彙總這兩個資料檢視的連結資料檢視。

    對於此連結資料檢視,該機構使用尾碼 DN dc=example,dc=com

    $ dpconf create-join-data-view example-join-view payroll-view admin-view dc=example,dc=com

透過重新命名 DN 將資料從 Company22 增加至 Example.Com 的 DIT

Company22 的使用者資料儲存在 DN dc=company22,dc=com 下。雖然 Example.com 希望在大多數情況下能夠單獨儲存此使用者資料,但卻只有一個用戶端應用程式同時管理 Company 22 員工與其他 Example.com 員工。此用戶端應用程式要求 Company22 的使用者資料必須類似於 Example.com 的資料。

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

圖 24–5 DN 重新命名

該圖顯示重新命名 DN 以將資料增加至 DIT

若要滿足此應用程式需求,必須為 Company22 的目錄建立虛擬 DN 為 dc=example,dc=com 的資料檢視。

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

Procedure為 Company 22 的目錄建立含虛擬 DN 的資料檢視

  1. 為 Company 22 的目錄建立 LDAP 資料來源。

    $ dpconf create-ldap-data-source company22-directory company22Host:2389
  2. 為 Company 22 的目錄建立 LDAP 資料來源池。

    $ dpconf create-ldap-data-source-pool company22-pool
  3. 將 Company 22 的資料來源附加至資料來源池。

    $ dpconf attach-ldap-data-source company22-pool company22-directory
  4. 為 Company 22 的目錄建立虛擬 DN 為 dc=example,dc=com 的 LDAP 資料檢視。

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

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

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

    $ dpadm restart /local/myDPS

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

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

圖 24–6 來自連結資料檢視與 LDAP 資料檢視的資料彙總

該圖顯示 LDAP 目錄與其他連結檢視的複合連結檢視

Procedure連結範例連接資料檢視與 Company 22 資料檢視

  1. 建立 Company 22 資料檢視的篩選連結規則,以指定彙總資料的方式。

    下列連結規則指定應根據使用者項目的 employeeNumber 屬性連結資料。

    $ dpconf set-ldif-data-view-prop company22-view filter-join-rule:'employeeNumber=\${example-join-view.employeeNumber}'
  2. 建立彙總 Company 22 的資料檢視與 Example.com 連結資料檢視的連結資料檢視。

    $ dpconf create-join-data-view global-join-view example-join-view company22-view dc=example,dc=com

讓 LDAP 用戶端存取 SQL 資料庫中的薪資部門資料

Example.com 的薪資部門將薪水資料儲存在 SQL 資料庫中。該資料庫有兩個表格,分別為 employee 表格與 salary 表格。Example.com 具有要求能夠存取那些資料的 LDAP 用戶端應用程式。用戶端應用程式要求 SQL 資料必須類似於 LDAP 資料。

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

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

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

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

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

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

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

    $ dpconf create-jdbc-data-source payroll-src myPassword
  2. 以 SQL 資料庫的特性配置 JDBC 資料來源。

    $ dpconf set-jdbc-data-source-prop payroll-src db-user:proxy
      db-pwd:myPassword
      db-url:jdbc:payrollsqldb:payrollsql://localhost
      driver-url:file://payrollsqldb.jar
      driver-class:org.payrollsqldb.jdbcDriver
      
  3. 啟用 JDBC 資料來源。

    $ dpconf set-jdbc-data-source-prop payroll-src is-enabled:true
  4. 為薪資部門資料庫建立 JDBC 資料來源池。

    $ dpconf create-jdbc-data-source-pool payroll-pool
  5. 將薪資部門資料來源附加至資料來源池。

    $ dpconf attach-jdbc-data-source payroll-pool payroll-src
  6. 為薪資部門資料庫建立虛擬 DN 為 o=payroll 的 JDBC 資料檢視。

    $ dpconf create-jdbc-data-view payroll-view payroll-pool o=payroll
  7. 為 SQL 資料庫中的每個表格建立 JDBC 表格。

    $ dpconf create-jdbc-table jdbc-employee employee
    $ dpconf create-jdbc-table jdbc-salary salary
  8. 為 SQL 表格中的每一欄增加 JDBC 屬性。

    $ dpconf add-jdbc-attr jdbc-employee eid employee_id
    $ dpconf add-jdbc-attr jdbc-employee first firstname
    $ dpconf add-jdbc-attr jdbc-employee last lastname
    $ dpconf add-jdbc-attr jdbc-employee description description
    $ dpconf add-jdbc-attr jdbc-employee spouse spousename
    $ dpconf add-jdbc-attr jdbc-salary salary salary
    $ dpconf add-jdbc-attr jdbc-salary social ssn
  9. 指定可以透過 JDBC 資料檢視進行檢視與寫入的屬性。

    $ dpconf set-jdbc-data-view-prop payroll-view \
     viewable-attr:eid
     viewable-attr:first
     viewable-attr:last
     viewable-attr:desc
     viewable-attr:spouse
     viewable-attr:salary
     viewable-attr:social 
     $ dpconf set-jdbc-data-view-prop payroll-view \
     writable-attr:eid
     writable-attr:first
     writable-attr:last
     writable-attr:description
     writable-attr:spouse
     writable-attr:salary
    writable-attr:social
  10. 建立對映至 LDAP 物件類別的 JDBC 物件類別。

    下列指令建立對映至 LDAP person 物件類別的物件類別。該物件類別指定員工表格應作為主要表格使用,而薪資表格應用做輔助表格。eid 屬性應用來建構 DN。

    $ dpcfg create-jdbc-object-class payroll-view \
     person jdbc-employee jdbc-salary eid
  11. 在輔助表格上建立篩選連結規則,以指定輔助表格的資料如何連結至主要表格的資料。

    下列連結規則指定應根據 employee_id 屬性連結資料。

    $ dpconf set-jdbc-table-prop jdbc-salary filter-join-rule:'employee_id=\${employee.employee_id}'
  12. 建立 JDBC 物件類別的超級類別。

    $ set-jdbc-object-class-prop payroll-view person super-class:extensibleObject

增加虛擬存取控制

透過在 LDAP 目錄中定義 ACI 可處理該目錄的存取控制。透過虛擬資料檢視存取資料來源時,必須定義 ACI 僅會套用至透過這些資料檢視進行檢視的資料。

連線處理程式控制透過目錄代理伺服器的所有存取。如需有關連線處理程式的資訊,請參閱第 25 章, 目錄代理伺服器連線處理程式

Procedure增加允許匿名存取的 ACI

  1. 增加 ACI。

    $ ldapadd -v -D "cn=proxy manager" -w password -p 389
    dn: cn=ldifonly-acis,cn=virtual access controls
    objectclass: top
    objectclass: aciSource
    cn: ldifonly-acis
    dpsaci: (targetattr="*")(version 3.0; acl "anonymous_access"; allow(all) (userdn="ldap:///anyone");)
  2. 將連線處理程式指向虛擬 ACI。

    $ dpconf set-connection-handler-prop anonymous aci-source:ldifonly-acis
  3. 啟用連線處理程式。

    $ dpconf set-connection-handler-prop anonymous is-enabled:true