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