Oracle® Fusion Middleware Oracle Directory Integration Platform管理者ガイド 11g リリース1(11.1.1) B65032-03 |
|
前 |
次 |
Oracleバックエンド・ディレクトリは、サポート対象のサード・パーティのメタディレクトリ・ソリューションとの同期を可能にするために変更ログを使用します。Oracle Directory Integration Platformには、サード・パーティのメタディレクトリ・ソリューション用のマッピング・サービスやスケジューリング・サービスは用意されていません。
この章では、変更ログ情報の生成方法およびサポートするソリューションでの変更ログ情報の使用方法について説明します。Oracleバックエンド・ディレクトリと同期化するためにサード・パーティのメタディレクトリ・ソリューションを有効化する方法を示します。
この章は、次の項目を含みます。
Oracleバックエンド・ディレクトリは、各変更をエントリとして変更ログ・コンテナに記録します。サード・パーティのメタディレクトリ・ソリューションは、変更ログ・コンテナから変更を取得し、サード・パーティ・ディレクトリに適用します。これらの変更を取得するために、サード・パーティのメタディレクトリ・ソリューションはOracleバックエンド・ディレクトリの変更ログをサブスクライブする必要があります。
変更ログの各エントリには変更番号があります。サード・パーティのメタディレクトリ・ソリューションは、最後に適用した変更番号を記録しておき、その番号よりも大きい変更番号の変更のみをOracleバックエンド・ディレクトリから取得します。たとえば、サード・パーティのメタディレクトリ・ソリューションが取得した最後の変更の番号が250だった場合、それ以降の変更の番号は251以上になります。
注意: サード・パーティのメタディレクトリ・ソリューションがOracleバックエンド・ディレクトリの変更ログでサブスクライブされず、ソリューションが最初に取得した変更番号が最後に適用した変更番号よりも2以上大きい場合、Oracleバックエンド・ディレクトリ変更ログ内の変更の一部が、すでにパージされています。この場合、サード・パーティのメタディレクトリ・ソリューションは、Oracleバックエンド・ディレクトリ全体を読み取り、そのコピーとOracleバックエンド・ディレクトリの情報とを同期化する必要があります。 |
サード・パーティのメタディレクトリ・ソリューションがOracleバックエンド・ディレクトリから変更を取得できるようにするには、この項で説明するタスクを実行します。
ローカル・ディレクトリとOracleバックエンド・ディレクトリ間のデータを同期化するためにディレクトリをブートストラップするには、次の手順を実行します。
Oracleバックエンド・ディレクトリに記録されている最後の変更番号を検索します。この番号は、DSEルート属性のlastChangeNumber
にあります。
Oracleバックエンド・ディレクトリに記録されている最後の変更番号を検索するには、ldapsearch
コマンドを使用します。次のコマンドを入力します。
ldapsearch -h host_name -p port_number -D binddn -q -s base \ -b "" 'objectclass=*' lastchangenumber
変更ログがすでにパージされているために変更エントリがない場合、取得される変更番号は0
(ゼロ)になります。
ldifwrite
コマンドを使用して、データをOracleバックエンド・ディレクトリからLDIFファイルにエクスポートします。
このLDIFファイルをクライアント・ディレクトリに適した形式に変換し、クライアント・ディレクトリにロードします。
注意: Oracleバックエンド・ディレクトリの新規インストールでは、初期ブートストラップは不要です。この場合、新規にインストールしたOracleバックエンド・ディレクトリの現行の変更番号は |
関連項目: Oracleバックエンド・ディレクトリがOracle Internet Directoryである場合は、『Oracle Identity Managementユーザー・リファレンス』のOracle Internet Directoryデータ管理ツールの章の |
サード・パーティのメタディレクトリ・ソリューションをOracleバックエンド・ディレクトリと同期化できるようにするには、Oracleバックエンド・ディレクトリにそれに対する変更サブスクリプション・オブジェクトを作成する必要があります。この変更サブスクリプション・オブジェクトによって、Oracleバックエンド・ディレクトリに格納されている変更ログ・オブジェクトへのアクセス権限がサード・パーティのメタディレクトリ・ソリューションに付与されます。
Oracle Internet DirectoryがOracleバックエンド・ディレクトリである場合、変更サブスクリプション・オブジェクトは、次のコンテナの下にあるエントリです。
cn=Subscriber Profile,cn=ChangeLog Subscriber,cn=Oracle Internet Directory
Oracle Unified DirectoryまたはOracle Directory Server Enterprise EditionがOracleバックエンド・ディレクトリである場合、変更サブスクリプション・オブジェクトは、次のコンテナの下にあるエントリです。
cn=Subscriber Profile,cn=ChangeLog Subscriber,cn=Directory Integration Platform, <suffix>
この変更サブスクリプション・オブジェクトは、サード・パーティのメタディレクトリ・ソリューションがOracleバックエンド・ディレクトリとバインドして変更を取得するための一意の資格証明を提供します。変更サブスクリプション・オブジェクトを補助オブジェクト・クラスorclChangeSubscriber
と関連付けます。このオブジェクト・クラスには複数の属性がありますが、次の属性が必須です。
userPassword
Oracleバックエンド・ディレクトリの変更ログ・オブジェクトにアクセスするときに、ディレクトリが使用するパスワード。
orclLastAppliedChangeNumber
前回の同期で適用された変更番号。この属性によって、ディレクトリは、Oracleバックエンド・ディレクトリでの変更から未適用の変更のみを取得できます。
変更サブスクリプション・オブジェクトの作成には、ldapadd
コマンドを使用します。次の例では、入力ファイルadd.ldif
を使用して、次のコンテナの下でmy_change_subscription_object
という名前の変更サブスクリプション・オブジェクトの作成および有効化を行っています。
Oracle Internet DirectoryがOracleバックエンド・ディレクトリである場合:
cn=Subscriber Profile,cn=ChangeLog Subscriber,cn=Oracle Internet Directory
Oracle Unified DirectoryまたはOracle Directory Server Enterprise EditionがOracleバックエンド・ディレクトリである場合:
cn=Subscriber Profile,cn=ChangeLog Subscriber,cn=Directory Integration Platform, <suffix>
orclLastAppliedChangeNumber
属性は、初期ブートストラップ前のディレクトリにある現行の変更番号で、この例では250です。
add.ldif
ファイルの編集(この例では、Oracle Internet Directoryがバックエンド・ディレクトリ):
dn: cn=my_change_subscription_object,cn=Subscriber Profile, cn=ChangeLog Subscriber,cn=Oracle Internet Directory userpassword: my_password orclLastAppliedChangeNumber: 250 orclSubscriberDisable: 0 objectclass: orclChangeSubscriber objectclass: top
エントリの追加:
ldapadd -h my_host -D binddn -q -p PORT -f add.ldif
この項の内容は次のとおりです。
次の例では、my_change_subscription_object
という名前の変更サブスクリプション・オブジェクトを持つ接続ディレクトリがOracleバックエンド・ディレクトリから変更を取得します。
ldapsearch -h my_host -D binddn -q -p PORT -b "cn=changeLog" -s one (&(objectclass=changeLogEntry) (changeNumber >= orclLastAppliedChangeNumber ) ( ! (modifiersname =cn=my_change_subscription_object,cn=Subscriber Profile, cn=ChangeLog Subscriber,cn=Oracle Internet Directory ) ) )
ディレクトリが初めて変更を取得する場合、orclLastAppliedChangeNumber
の値は「タスク2: Oracleバックエンド・ディレクトリでのサード・パーティのメタディレクトリ・ソリューション用変更サブスクリプション・オブジェクトの作成」で設定した番号です。
フィルタ内の(!(modifiersname=
client_bind_dn))
引数によって、Oracleバックエンド・ディレクトリからは、接続ディレクトリ自体で行われた変更は返されません。
Oracleバックエンド・ディレクトリから変更を取得した後、接続ディレクトリはOracleバックエンド・ディレクトリ内の対応する変更サブスクリプション・オブジェクトのorclLastAppliedChangeNumber
属性を更新します。これによって、Oracleバックエンド・ディレクトリは接続ディレクトリで適用済の変更をパージできます。また、これによって、接続ディレクトリは適用済の変更を無視して、最新の変更のみを取得できます。
次の例では、接続ディレクトリにmy_change_subscription_object
という名前の変更サブスクリプション・オブジェクトがあり、前回適用した変更番号が121の入力ファイルmod.ldif
を使用します。この接続ディレクトリでは、Oracleバックエンド・ディレクトリ内の対応する変更サブスクリプション・オブジェクトのorclLastAppliedChangeNumber
を次のように更新します。
mod.ldif
ファイルの編集:
dn: cn=my_change_subscription_object,cn=Subscriber Profile,
cn=ChangeLog Subscriber,cn=Oracle Internet Directory changetype:modify replace: orclLastAppliedChangeNumber orclLastAppliedChangeNumber: 121
ldapmodify
コマンドを使用した編集済mod.ldifファイルのロード:
ldapmodify -h host -D binddn -q -p port -f mod.ldif
関連項目: Oracle Internet DirectoryがOracleバックエンド・ディレクトリである場合、変更番号に応じた変更のパージの詳細は、『Oracle Fusion Middleware Oracle Internet Directory管理者ガイド』のガベージ・コレクションに関する章を参照してください。 |
既存の変更サブスクリプション・オブジェクトは、一時的に無効にすることも、削除することもできます。この項の内容は次のとおりです。
サード・パーティのメタディレクトリ・ソリューションにある既存の変更サブスクリプション・オブジェクトを一時的に無効にする場合は、orclSubscriberDisable
属性を1
に設定します。次の例では、入力ファイルmod.ldif
を使用して、変更サブスクリプション・オブジェクトを無効にします。
mod.ldif
ファイルの編集(この例では、Oracle Internet Directoryがバックエンド・ディレクトリ):
dn: cn=my_change_subscription_object,cn=Subscriber Profile, cn=ChangeLog Subscriber,cn=Oracle Internet Directory changetype: modify replace: orclSubscriberDisable orclSubscriberDisable: 1
エントリの変更:
ldapmodify -h my_ldap_host -D binddn -q -p PORT -v -f mod.ldif