JavaScriptが検索に必要です。
ナビゲーション・リンクをスキップ
印刷ビューの終了
Oracle Directory Server Enterprise Edition管理ガイド 11gリリース1(11.1.1.5.0)
検索フィルタ・アイコン
検索アイコン

ドキュメントの情報

はじめに

第1部 Directory Serverの管理

1.  Directory Serverのツール

2.  Directory Serverのインスタンスと接尾辞

3.  Directory Serverの構成

4.  Directory Serverのエントリ

5.  Directory Serverのセキュリティ

6.  Directory Serverのアクセス制御

7.  Directory Serverのパスワード・ポリシー

8.  Directory Serverのバックアップとリストア

9.  Directory Serverのグループ、ロールおよびCoS

10.  Directory Serverのレプリケーション

11.  Directory Serverのスキーマ

12.  Directory Serverの索引作成

13.  Directory Serverの属性値の一意性

14.  Directory Serverのロギング

15.  Directory Serverの監視

第2部 Directory Proxy Serverの管理

16.  Directory Proxy Serverのツール

17.  Directory Proxy Serverのインスタンス

18.  LDAPデータ・ビュー

19.  Directory Proxy Serverの証明書

20.  Directory Proxy Serverのロード・バランシングとクライアント・アフィニティ

21.  Directory Proxy Serverの配布

22.  Directory Proxy Serverによる仮想化

LDIFデータ・ビューの作成および構成

LDIFデータ・ビューを作成するには:

LDIFデータ・ビューを構成するには:

仮想データ・ビューのアクセス制御の定義

新しいACIストレージ・リポジトリを定義するには:

仮想アクセス制御を構成するには:

仮想データ・ビューのスキーマ・チェックの定義

スキーマ・チェックを定義するには:

結合データ・ビューの作成および構成

結合データ・ビューを作成するには:

結合データ・ビューを構成するには:

複数の結合データ・ビューによるデータ・ビューの参照を有効にするように結合データ・ビューを構成するには:

結合ビューのセカンダリ・ビューを構成するには:

コーディネータ・データ・ビューの作成および構成

コーディネータ・データ・ビューを作成するには:

コーディネータ・データ・ビューを構成するには:

JDBCデータ・ビューの作成および構成

JDBCデータ・ビューを作成するには:

JDBCデータ・ビューを構成するには:

JDBC表、属性およびオブジェクト・クラスを構成するには:

JDBC表の関係の定義

仮想構成の例

LDAPディレクトリとMySQLデータベースの結合

LDAPデータ・ビューの構成およびテスト

JDBCデータ・ビューの構成およびテスト

結合データ・ビューの作成およびテスト

複数の異種データソースの結合

データ・ストレージ・シナリオ

クライアント・アプリケーションの要件

HR LDAPディレクトリと管理LDIFファイルからのデータの集約

DNの名前変更によるCompany 22のデータのExample.ComのDITへの追加

Company 22のデータのHRデータへの追加

LDAPクライアントを有効化してSQLデータベースの給与データにアクセス

仮想アクセス制御の追加

23.  仮想データ変換

24.  Directory Proxy ServerとバックエンドLDAPサーバーの接続

25.  クライアントとDirectory Proxy Serverの接続

26.  Directory Proxy Serverのクライアント認証

27.  Directory Proxy Serverのロギング

28.  Directory Proxy Serverの監視とアラート

第3部 Directory Service Control Centerの管理

29.  Directory Service Control Centerの構成

索引

仮想構成の例

次の項では、2つの構成例を示します。これらの構成では、仮想ディレクトリの主な機能およびこれらの機能の構成方法を示します。

LDAPディレクトリとMySQLデータベースの結合

この項の手順では、LDAPディレクトリとMySQLデータベースを結合する仮想構成の例について説明します。LDAPディレクトリは、ほとんどのユーザー情報を含むプライマリ・データソースです。MySQLデータベースには、ユーザーに関する追加の情報が含まれています。構成例を次の図に示します。

図22-1 仮想構成の例

図: 図は、LDAPデータ・ビューとJDBCデータ・ビューから構成される結合データ・ビューを示しています

install-path/resources/ldif/Example.ldifで提供されているサンプル・データを使用して、この例を複製するか、サンプル・データを独自のデータに置き換えることができます。

この構成は、3つのセクションに分解できます。

簡潔にするために、この項のすべてのコマンドは、Directory Proxy Serverが/local/dpsのローカル・ホストで実行されていることを前提とします。コマンドは、次の環境変数が設定済であることも前提とします。

DIR_PROXY_PORT

1389

LDAP_ADMIN_PWF

pwd.txt。管理者のパスワードを含むファイル。

DIRSERV_PORT

4389

LDAP_ADMIN_USER

cn=Directory Manager

LDAPデータ・ビューの構成およびテスト

LDAPデータ・ビューを構成するには:

始める前に

この項のタスクは、次の情報を前提としています。

  1. Directory Serverのインスタンスの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というLDAPデータ・ビューを作成し、ベースDNをdc=example,dc=comにします。
    % dpconf create-ldap-data-view myds1-view myds1-pool dc=example,dc=com

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

    注意: Directory ServerのデフォルトのACIを使用すると、ユーザーは独自のパスワードを変更できます。


JDBCデータ・ビューの構成およびテスト

次のタスクは、MySQLデータベースがインストールされていて、実行中かつデータが移入されていて、MySQLデータベースに次の特性が備わっていることを前提にしています。

次の表では、データベース内の表およびそのコンポジット・フィールドを説明します。JDBCデータ・ビューを設定するには、この情報が必要です。

MySQL表
フィールド
EMPLOYEE
IDSURNAMEPASSWORDROOMCOUNTRY_ID
COUNTRY
IDNAME
PHONE
USER_IDNUMBER

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

    注意: num-connection-incr(5dpconf)num-connection-init(5dpconf)およびnum-connection-limit(5dpconf)のJDBCデータソースのプロパティを使用して、JDBCデータソースの接続数を設定できます。


  2. SQLデータベースのユーザー名およびパスワード・ファイルを指定します。
    % dpconf set-jdbc-data-source-prop mysql1 db-pwd:sqlpwd db-user:rootUser

    sqlpwdおよびrootUserは、認証ユーザーのパスワードおよびユーザー名で、これらの資格証明はデータベースに格納されています。JDBCデータソースを構成するとき、ユーザー名とパスワードを使用してプロキシ・サーバーを構成する必要があります。

    DBベンダーによって提供されたドライバ以外のサード・パーティJDBCドライバを使用してRDBMSバックエンドに接続する場合、JDBCデータソースのdb-vendorプロパティは、set-jdbc-data-source-propを使用して設定する必要があります。このデータは、可能な場合には必ずベンダー固有のSQL文を構成するために使用され、パフォーマンスを向上させます。詳細は、db-vendor(5dpconf)」を参照してください。

  3. プロキシ・サーバーを再起動します。
    % dpadm restart /local/dps
  4. このデータソースを有効にし、データソースへの書込み操作を許可します。
    % dpconf set-jdbc-data-source-prop mysql1 is-enabled:true is-read-only:false
  5. (オプション)開いている接続およびデータソースの監視を向上させるために、monitoring-inactivity-timeoutmonitoring-intervalおよびmonitoring-modeを設定します。

    詳細は、monitoring-inactivity-timeout(5dpconf)」monitoring-interval(5dpconf)」およびmonitoring-mode(5dpconf)」を参照してください。

  6. mysql1–poolというJDBCデータソース・プールを作成します。
    % dpconf create-jdbc-data-source-pool mysql1-pool
  7. JDBCデータソースをデータソース・プールにアタッチします。
    % dpconf attach-jdbc-data-source mysql1-pool mysql1
  8. データソース・プール用にmyjdbc1–viewというJDBCデータ・ビューを作成し、ベースDNをo=sqlにします。
    % dpconf create-jdbc-data-view mysql1-view mysql1-pool o=sql
  9. MySQLデータベース内の各表に対してJDBC表を作成します。
    % dpconf create-jdbc-table employee1 EMPLOYEE
    % dpconf create-jdbc-table country1 COUNTRY
    % dpconf create-jdbc-table phone1 PHONE

    SQLデータベース内の表の名前では、大文字と小文字が区別されます。大文字/小文字は、SQLデータベースで使用されているものと同じにしてください。

  10. 各表の各列に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 roomNumber ROOM
    % dpconf add-jdbc-attr phone1 telephoneNumber NUMBER
    % dpconf add-jdbc-attr country1 countryName NAME

    phone1 user_id列とcountry1 id列にJDBC属性を作成する必要はありません。これは、これらの列には、EMPLOYEE.IDにある値のみが含まれており、このLDAP属性uidはすでに作成済であるためです。

  11. LDAPpersonオブジェクト・クラスのJDBCオブジェクト・クラスを作成します。

    この手順では、employee1表がプライマリ表として識別され、country1表とphone1表がセカンダリ表として識別されます。JDBCオブジェクト・クラスの作成には、DNも必要です。この例では、DNは、uid属性およびデータ・ビューのベースDNから構成されます。

    % dpconf create-jdbc-object-class mysql1-view person employee1 country1 phone1 uid
  12. プライマリ表とセカンダリ表の間の結合ルールを定義します。

    結合ルールは、セカンダリ表で定義され、その表からのデータをプライマリ表からのデータとどのようにリンクするかが決定されます。

    % 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}
  13. JDBCオブジェクト・クラスのスーパー・クラスを指定します。

    スーパー・クラスは、JDBCオブジェクト・クラスの属性の継承元のLDAPオブジェクト・クラスを示しています。

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

必要なACIを作成するには:

JDBCデータ・ビューをテストするには、その前に、ACIを構成してデータ・ビューへの書込みアクセスを有効にする必要があります。デフォルトでは、非LDAPデータ・ビューへの書込みアクセスは拒否されます。この例の目的のためには、独自のパスワードの変更をユーザーに許可する1つのグローバル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

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

結合データ・ビューの作成およびテスト

結合データ・ビューを作成するには:

  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:roomNumber \
     viewable-attr:userpassword viewable-attr:jobtitle viewable-attr:countryName \
     viewable-attr:telephoneNumber
    % dpconf set-jdbc-data-view-prop mysql1-view writable-attr:dn \
    writable-attr:objectclass writable-attr:sn writable-attr:roomNumber \
    writable-attr:userpassword writable-attr:jobtitle \
    writable-attr:countryName writable-attr:telephoneNumber

    これらの定義は、結合ビューのコンテキストでのみ適用されます。デフォルトでは、すべての属性は、JDBCデータ・ビューに直接アクセスする場合には、読取りおよび書込みが可能です。

必要な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. 前に追加したACIのプールを使用するように、接続ハンドラを構成します。
    % dpconf set-connection-handler-prop default-connection-handler aci-source:myjoin1

結合データ・ビューをテストするには:

  1. 匿名ユーザーとして、結合データ・ビューを検索します。

    この手順では、Kirsten Vaughanのエントリを検索し、両方の結合ビューからデータを取得できるかどうか確認します。

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

    返されるエントリには、LDAPデータ・ビューとJDBCデータ・ビューの両方の属性が含まれていることに注意してください。

  2. o=joinの下のユーザーとして、userPassword属性を変更し、結合データ・ビューに書き込むことができることを確認します。
    % ldapmodify -p 1389
    dn: uid=kvaughan,ou=people,o=join
    changetype: modify
    replace: userPassword
    userPassword: myPassword

複数の異種データソースの結合

この構成では、特定のディレクトリ・サービス要件が仮想ディレクトリの一部の機能によって満たされている組織Example.comについて説明します。

データ・ストレージ・シナリオ

Example.comは、組織データを複数の異なるデータソースに格納します。旧来の理由によって、ユーザー・データは、LDAPディレクトリ、フラットLDIFファイルおよびSQLデータベースに拡散されます。HR部門は、ユーザー・データをLDAPディレクトリに格納し、ベースDNをo=example.comに設定します。給与部門は、データをSQLデータベースに格納します。部門やビルディング番号のような管理データは、管理部門によってLDIFファイルに格納されベースDNがdc=example,dc=comに設定されます。

また、Example.comは、Company22という会社を取得済です。Company 22も、そのユーザー・データをLDAPディレクトリに格納し、ベースDNをdc=company22,dc=comに設定します。

次の図は、Example.comのユーザー・データが格納される方法の概要レベルのビューを示しています。

図22-2 異なるソースのデータ・ストレージ

図: 図は、Example.comのユーザー・データが異なるデータソースに格納される方法を示しています。

クライアント・アプリケーションの要件

Example.comには、異なるデータソースに格納されているデータにアクセスする必要がある、いくつかのLDAPクライアント・アプリケーションがあります。クライアント・アプリケーションの要件は、すべてが同じというわけではありません。データの異なるビューが必要です。クライアントは、データを集約する必要がある場合があります。また、一部のクライアント・アプリケーションは、Example.comのこれらの新しい従業員を古い従業員とともに管理できるように、Company22のユーザー・データにアクセスする必要があります。

次の図は、Example.comのクライアント・アプリケーションの要件の概要レベルのビューを示しています。

図22-3 クライアント・アプリケーションの要件

図: 図は、Example.comのLDAPアプリケーションの要件を示しています。

次の各項は、このサンプル・シナリオで説明したクライアント・アプリケーションの要件を満たすために十分なDirectory Proxy Serverのデータ・ビューの構成について説明します。データ・ビューがどのように機能するかに関する詳細は、Oracle Directory Server Enterprise Editionリファレンスの第17章「Directory Proxy Serverの配布」およびOracle Directory Server Enterprise Editionリファレンスの第18章「Directory Proxy Serverの仮想化」を参照してください。

サンプル・シナリオの構成は、次の各項に分解されます。

HR LDAPディレクトリと管理LDIFファイルからのデータの集約

HR部門は、従業員名、ジョブ開始データ、ジョブ・レベルなどの情報を格納します。管理部門は、ビルディング・コードやオフィス番号などの追加データを格納します。HRデータを処理するクライアント・アプリケーションは、両方のソースからの結合データにアクセスする必要があります。両方のデータソースには、各エントリに存在している共通の属性employeeNumberがあります。

次の図は、クライアント・アプリケーションの要件を示しています。

図22-4 LDAPディレクトリとLDIFファイルからのデータの集約

図: 図は、LDAPディレクトリとLDIFファイルの結合ビューを示しています。

このアプリケーションの要件を満たすために、データ・ビューは、給与ディレクトリおよび管理LDIFファイルに対して作成されます。これら2つのデータ・ビューは結合され、集約データへのアクセスを提供します。この共通の属性を使用すると、Directory Proxy Serverで各ユーザーのデータを集約できます。

簡潔にするために、この項で使用されるコマンドは、次の情報を前提とします。

各コマンドの完全な構文を取得するには、オプションを指定せずにコマンドを実行します。たとえば、次のようになります。

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

給与ディレクトリに対する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. Directory Proxy Serverを再起動して、変更を有効にします。
    $ dpadm restart /local/myDPS

管理データに対する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. Directory Proxy Serverを再起動して、変更を有効にします。
    $ dpadm restart /local/myDPS

給与データ・ビューと管理者データ・ビューの結合

  1. データの集約方法を指定する管理者データ・ビューのフィルタ結合ルールを作成します。

    次の結合ルールは、ユーザー・エントリのemployeeNumber属性に基づいてデータを結合することを指定します。

    $ dpconf set-ldif-data-view-prop admin-view \
    filter-join-rule:employeeNumber=\${payroll-view.employeeNumber}
  2. 2つのデータ・ビューを集約する結合データ・ビューを作成します。

    結合データ・ビューに対して、組織は、接尾辞DN dc=example,dc=comを使用します。

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

DNの名前変更によるCompany 22のデータのExample.ComのDITへの追加

Company 22のユーザー・データは、DN dc=company22,dc=comの下に格納されます。Example.comは、ほとんどの場合、このユーザー・データを別個に保持しますが、あるクライアント・アプリケーションでは、Company 22の従業員および残りのExample.comの従業員を管理する必要があります。このクライアント・アプリケーションでは、Company 22のユーザー・データがExample.comのデータのように見える必要があります。

次の図は、クライアント・アプリケーションの要件を示しています。

図22-5 DNの名前変更

図: 図は、DNの名前変更によるデータのDITへの追加を示しています。

このアプリケーションの要件を満たすために、仮想DNがdc=example,dc=comであるデータ・ビューがCompany 22のディレクトリ用に作成されます。

簡潔にするために、この項で使用されるコマンドは、次の情報を前提とします。

仮想DN付きのCompany 22のディレクトリのデータ・ビューを作成します。

  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 -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のディレクトリ用にLDAPデータ・ビューを作成し、仮想DNをdc=example,dc=comにします。
    $ dpconf create-ldap-data-view company22-view company22-pool dc=example,dc=com
  6. この仮想DNをCompany 22のディレクトリにある実際のDNにマップするようにDirectory Proxy Serverに指示します。
    $ 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. Directory Proxy Serverを再起動して、変更を有効にします。
    $ dpadm restart /local/myDPS

Company 22のデータのHRデータへの追加

HR部門には、Example.comのHRデータと新しく取得したCompany 22のHRデータの集約ビューが必要です。次の図は、グローバルHRアプリケーションの要件を示しています。

図22-6 結合データ・ビューとLDAPデータ・ビューのデータの集約

図: 図は、LDAPディレクトリと別の結合ビューの複合結合ビューを示しています。

Example結合データ・ビューと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表の2つの表があります。Example.comには、そのデータにアクセスする必要があるLDAPクライアント・アプリケーションがあります。クライアント・アプリケーションでは、SQLデータがLDAPデータのように見える必要があります。

次の図は、クライアント・アプリケーションの要件を示しています。

図22-7 SQLデータベースへのアクセスを提供するJDBCデータ・ビュー

図: 図は、SQLデータベースへのアクセスを提供するJDBCデータ・ビューを示しています。

このアプリケーションの要件を満たすために、SQL表の列をLDAP属性にマップするJDBCデータ・ビューが作成されます。

簡潔にするために、この項で使用されるコマンドは、次の情報を前提とします。

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. 給与データベース用にJDBCデータ・ビューを作成し、仮想DNをo=payrollにします。
    $ 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を構成するために使用する必要があります。

    $ dpconf 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オブジェクト・クラスのスーパー・クラスを作成します。
    $ dpconf set-jdbc-object-class-prop payroll-view person super-class:extensibleObject

仮想アクセス制御の追加

LDAPディレクトリのアクセス制御は、ディレクトリ自体にACIを定義することによって処理されます。データソースが仮想データ・ビューを介してアクセスされる場合、これらのデータ・ビューを介して表示されるデータに対してのみ適用されるACIを定義する必要があります。

Directory Proxy Serverを介する任意のアクセスは、接続ハンドラによって制御されます。接続ハンドラの詳細は、第25章「クライアントとDirectory Proxy Server間の接続」を参照してください。

匿名アクセスを許可する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