37 他のデータ・リポジトリからのデータの移行
37.1 他のデータ・リポジトリからのデータ移行の理解
Oracle Internet Directoryのインストール時に、Oracle Identity Management 11gインストーラによって、デフォルトのスキーマとディレクトリ情報ツリー(DIT)が作成されます。
このデフォルトのDITフレームワークの詳細は、「Oracle Internet Directoryの概念およびアーキテクチャの理解」および「レルムの計画、デプロイおよび管理」を参照してください。このフレームワークには柔軟性があるため、デプロイメント要件に応じて適切に変更できます。
Oracle Internet Directoryでは、次のディレクトリ要素がデフォルトで作成されます。
-
ルートOracleコンテキスト(
cn=OracleContext
): 企業全体の構成データがOracle製品によって格納されるコンテナです。 -
デフォルトのアイデンティティ管理レルム(
dc=
dns_domain_of_host
,dc=com
): Oracle製品によるエンタープライズ・ユーザーおよび企業グループの検索対象となるコンテナです。これは、企業DIT構造に類似しています。たとえば、my_computer.us.my_company.com
というホスト名のコンピュータにOracle Internet Directoryをインストールする場合、Oracle Internet Directoryのインストール時に作成されるデフォルトのアイデンティティ管理レルムは、dc=us,
dc=my_company,dc=com
となります。Oracle製品による検索対象となるのは、コンテナcn=users,dc=us,dc=my_company,dc=com
の下のすべてのユーザー、およびcn=groups,dc=us,dc=my_company,dc=com
の下のすべてのグループです。デフォルトのアイデンティティ管理レルム・エントリの作成に加えて、他のOracle Internet Directory対応コンポーネントが自動的にブートストラップされるよう、Oracle Internet Directoryコンフィギュレーション・アシスタントによってルートOracleコンテキストにポインタが格納されます。
このデフォルトのアイデンティティ管理レルムは、デプロイメント要件に応じて変更してもかまいません。
37.2 LDAP準拠のディレクトリからのデータの移行
すでに確立された構造を持つディレクトリが存在し、データをそのディレクトリからデフォルトのディレクトリ構造の環境に移行する場合は、この項の指示に従ってください。
次のトピックでは、LDAP準拠のサード・パーティのディレクトリからOracle Internet Directoryにデータを移行する際に役立つ情報を提供します。
37.2.1 データ移行ツールの理解
次のトピックでは、データの移行によく使用される各ツールについて説明し、それらの機能を比較します。
37.2.1.1 バルク・ローダー
バルク・ローダー(bulkload
)は、大量のエントリをディレクトリ・サーバーにロードするためのコマンド行ツールです。このツールでは、Oracle SQL*Loaderを使用してディレクトリ・エントリをロードします。bulkload
ツールの入力ファイルの形式は、LDAP Data Interchange Format(LDIF)である必要があります。bulkload
ツールでは、LDIF入力の参照整合性を検証できますが、データに対してマッピングやその他の変換を実行することはできません。
変換が不要でデータが非常に大きい(50万件以上)場合、サード・パーティのディレクトリからOracle Internet Directoryにデータを移行するにはbulkload
が最も適しています。これは高速で、LDIF入力の検証が可能です。
bulkload
構文の詳細と例は、『Oracle Identity Managementリファレンス』の「Oracle Internet Directoryデータ管理ツール」を参照してください。
37.2.1.2 ディレクトリ統合アシスタント
ディレクトリ統合アシスタントであるsyncProfileBootstrap
は、Oracle Directory Integration Serverによってスケジュールされた同期プロファイルを管理するためのコマンド行ツールです。管理者は、Oracle Directory Integration Serverで継続的に同期を実行するように構成する際に、syncProfileBootstrap
操作を使用して、接続ディレクトリとOracle Internet Directoryとの間で初期のデータ移行を実行できます。この操作は、継続した同期のない、1回かぎりのデータの移行にも使用できます。
syncProfileBootstrap
の詳細は、『Oracle Directory Integration Platformの管理』のsyncProfileBootstrapを使用したディレクトリ・ブートストラップに関する項を参照してください。
37.2.1.3 バルク・ローダーとディレクトリ統合アシスタントの機能比較
表37-1に、bulkload
とsyncProfileBootstrap
の機能の比較を示します。
表37-1 bulkloadとsyncProfileBootstrapの機能
機能 | bulkload | syncProfileBootstrap |
---|---|---|
速度 |
高速 |
低速 |
データ転送方式 |
SQL |
LDAP |
受け入れ可能な入力のタイプ |
LDIFファイルのみ |
LDIFファイル、LDAPディレクトリ、タグ付きファイル、CSVファイル |
データの変換 |
なし |
はい |
LDIF入力の検証 |
はい |
なし |
37.2.1.4 LDIFファイル
LDIFは、LDAP準拠のディレクトリのデータをファイルとして表現するためのASCII交換フォーマットで、IETFによる承認を受けています。すべてのLDAP準拠のディレクトリには、エクスポート時にDITを表す1つ以上のLDIFファイルにその内容をエクスポートするツールがあります。
関連項目:
IETFのRFC 2849は、http://www.ietf.org
で入手可能です。
37.2.3 ディレクトリ統合アシスタントを使用したLDAPデータの直接の移行
syncProfileBootstrap
操作では、データをサード・パーティのLDAP準拠ディレクトリから直接受け取るか、LDIFファイル、タグ付きファイルまたはCSVファイルから受け取ることができます。同期プロファイルまたは構成ファイルのいずれかで、マッピング・ルールを指定する必要があります。
syncProfileBootstrap
の構文情報、構成ファイルのプロパティ、入力ファイルのタイプに関する情報および例の詳細は、『Oracle Identity Managementリファレンス』のOracle Directory Integration Platformツールに関する項、および『Oracle Directory Integration Platformの管理』のsyncProfileBootstrapを使用したディレクトリ・ブートストラップに関する項を参照してください。
サード・パーティのディレクトリからOracle Internet Directoryにデータを移行するときにマッピングを実行する必要があり、データのサイズが小さい場合は、syncProfileBootstrap
を使用できます。図37-2に示すように、サード・パーティのディレクトリ自体をsyncProfileBootstrap
への入力として使用できます。
図37-2 syncProfileBootstrapの直接の使用

37.2.4 LDIFファイルおよびディレクトリ統合アシスタントを使用したLDAPデータの移行
サード・パーティのディレクトリに直接アクセスできない場合は、管理者に依頼してデータをLDIFファイルにエクスポートすることができます。
図37-3に示すように、syncProfileBootstrap
はLDIFファイルから入力を受け取ることができます。また、Oracle Directory Integration Serverを使用してデータを移行することもできます。
図37-3 LDIFファイルとsyncProfileBootstrapの使用

LDIFファイルとbulkloadを使用してデータをOracle Internet Directoryに移行する場合には、いくつかのタスクを実行する必要があります。この使用例では、syncProfileBootstrap
またはOracle Directory Integration Platformとともにマッピング・ファイルを使用するため、「LDIFファイルとbulkloadを使用したLDAPデータの移行」に示されているすべてのタスクを実行する必要はありません。
次の表に、LDIFファイルおよびディレクトリ統合アシスタントを使用してOracle Internet Directoryにデータを移行するタスクを示します。
表37-2 LDIFファイルおよびディレクトリ統合アシスタントを使用してOracle Internet Directoryにデータを移行するタスクのリスト
タスク番号 | タスクの説明 |
---|---|
タスク1 |
非Oracle Internet DirectoryサーバーからLDIFファイル形式にデータをエクスポートします。 |
タスク2 |
LDIFデータで参照される必須スキーマの追加のためにLDIFユーザー・データを分析します。 |
タスク3 |
Oracle Internet Directoryでスキーマを拡張します。 |
37.2.5 ディレクトリ統合アシスタント、バルク・ローダーおよびLDIFファイルを使用したLDAPデータの移行
大量のデータがあり、データにマッピングを実行する必要がある場合は、ツールを組み合せて使用することができます。
図37-4に示すように、サード・パーティのディレクトリからLDIFファイルにデータをエクスポートし、syncProfileBootstrap
を使用して別のLDIFファイルにデータをマッピングして、そのファイルをbulkload
でロードできます。
図37-4 syncProfileBootstrap、bulkloadおよびLDIFファイルの使用

次の表に、LDIFファイル、バルク・ローダーおよびディレクトリ統合アシスタントを使用してOracle Internet Directoryにデータを移行するタスクを示します。
表37-3 ディレクトリ統合アシスタント、バルク・ローダーおよびLDIFファイルを使用してデータを移行するタスクのリスト
タスク番号 | タスクの説明 |
---|---|
タスク1 |
非Oracle Internet DirectoryサーバーからLDIFファイル形式にデータをエクスポートします。 |
タスク2 |
LDIFデータで参照される必須スキーマの追加のためにLDIFユーザー・データを分析します。 |
タスク3 |
Oracle Internet Directoryでスキーマを拡張します。 |
37.2.6 Oracle Directory Integration Platform Serverを使用したLDAPデータの移行
場合によっては、管理者はOracle Directory Integration Serverを構成するときに、syncProfileBootstrap
を使用しないことがあります。Oracle Directory Integration Serverの構成後は、このサーバー自体で接続ディレクトリからOracle Internet Directoryにデータを移行できます。また、Oracle Directory Integration Serverを1回かぎりのデータの移行に使用することもできます。
Oracle Directory Integration Serverを使用すると、図37-5に示すように、Oracle Internet Directoryとサード・パーティのディレクトリの間に双方向で継続的な統合を構成できます。詳細は、『Oracle Directory Integration Platformの管理』の「Oracle Directory Synchronization Serviceの理解」を参照してください。
図37-5 Oracle Directory Integration Serverの使用

37.3 ユーザー・データのアプリケーション固有リポジトリからの移行
この項では、ユーザー・データをアプリケーション固有のリポジトリから移行する方法について説明します。
ユーザー・データをアプリケーション固有のリポジトリから移行するには、次の処理が必要です。
-
ユーザー・データをアプリケーション固有のリポジトリから収集し、ディレクトリが読み込める書式に設定します。
-
ディレクトリ管理者がそのデータを使用できるようにします。ディレクトリ管理者は、次の作業を行う必要があります。
-
ディレクトリ内でデータを格納する場所を指定します。
-
データをディレクトリにインポートします。
-
次のトピックでは、アプリケーション固有のリポジトリからのデータ移行を有効にするための汎用的な手順を示します。
37.3.1 アプリケーション固有のリポジトリからのデータ移行の有効化
この移行を実行するには、DSPSはアプリケーション固有のリポジトリを使用してそのデータを中間テンプレート・ファイルにエクスポートする必要があります。このテンプレート・ファイル内のレコードは、完全なLDIFにはなっておらず、情報が最終的に格納されるディレクトリ内の場所などに関連する置換変数が含まれています。これらの変数はアプリケーションにより未定義のまま残されるため、ディレクトリ管理者は後で定義できます。
ユーザー・データをこの中間テンプレート・ファイルから適切なLDIFに変換するには、OID移行ツール(ldifmigrator)を使用します。LDIFに変換されたデータは、ディレクトリにロードできます。
要約すると、アプリケーション固有のリポジトリからデータを移行するには、通常、次のステップを実行します。
- アプリケーション固有のデータを中間テンプレート・ファイルとしてエクスポートします。
- ディレクトリ管理者は、OID移行ツール(ldifmigrator)を使用して、不完全なLDIFエントリをテンプレート・ファイルからロードし、デプロイメントの選択に基づいて完全なLDIFエントリに変換します
- ディレクトリ管理者は、この完全なLDIFのデータをOracle Internet Directoryにロードします
- アプリケーションは、独自の仕様に従って移行処理を完了します。
37.3.2 アプリケーション・リポジトリ内のデータとディレクトリ内の既存データとの調停
アプリケーション固有のリポジトリから移行しているデータが、Oracle Internet Directoryにすでに存在している場合があります。この場合、OID移行ツール(ldifmigrator)の調停機能を使用して、2つのディレクトリ間の差分を調整できます。
OID移行ツールの調停機能の詳細は、『Oracle Identity Managementリファレンス』のldifmigrator
コマンド行ツールのリファレンスを参照してください。
37.3.3 アプリケーション固有のリポジトリからのデータ移行の管理
次のトピックでは、アプリケーション固有のリポジトリからデータを移行する際に、中間テンプレート・ファイルを作成し、移行ツールを実行する方法について説明します。
37.3.3.1 中間テンプレート・ファイルの作成
次のトピックでは、中間テンプレート・ファイルの書式および構造について説明し、さらにユーザー・エントリの属性について説明します。
37.3.3.1.1 中間テンプレート・ファイル
各国語のデータを生成するアプリケーションでは、中間テンプレート・ファイルにデータをAL32UTF8で格納する必要があります。詳細は、http://www.ietf.org
で、IETFのRFC 2849「The LDAP Data Interchange Format (LDIF)- Technical Specification」を参照してください。
中間テンプレート・ファイルの生成時に、移行を実行するアプリケーションでは、RFC 2849で定義されているレコード・セパレータを使用して、すべてのユーザー・レコードを順にリストする必要があります。OID移行ツール(ldifmigrator)は、デフォルトのアイデンティティ管理レルム(企業自体に対応しています)にすべてのユーザーを割り当てます。
図37-6に、ユーザー・エントリが格納される中間テンプレート・ファイルの全体構造を示します。
中間テンプレート・ファイルでは、次の形式を使用して、有効なユーザー・エントリが生成されます。太字の文字列は、すべてアプリケーション固有のリポジトリから提供されます。
dn: cn=UserID, %s_UserContainerDN% sn: Last_Name orclGlobalID: GUID_for_User %s_UserNicknameAttribute%: UserID objectClass: inetOrgPerson objectClass: orclUserV2
このテンプレートの文字列%s_UserContainerDN%と%s_UserNicknameAttribute%は置換変数で、OID移行ツールによって値が提供されます。OID移行ツールは、デプロイメントに固有な考慮事項に従ってこれらの値を判別します。引数は、アプリケーションがOID移行ツールに渡すか、ツールがディレクトリから取得します。
37.3.3.1.2 中間テンプレート・ファイル内のユーザー・エントリの例
次の中間テンプレート・ファイルには、アプリケーション固有の移行ロジックによって生成されたユーザー・エントリが格納されます。この例にある太字のデータは、すべてアプリケーション固有のユーザー・リポジトリから提供されます。
dn: cn=jdoe, %s_UserContainerDN% sn: Doe %s_UserNicknameAttribute%: jdoe objectClass: inetOrgPerson objectClass: orclUserV2 title: Member of Technical Staff homePhone: 415-584-5670 homePostalAddress: 234 Lez Drive$ Redwood City$ CA$ 94402
dn: cn=jsmith, %s_UserContainerDN% sn: Smith %s_UserNicknameAttribute%: jsmith objectClass: inetOrgPerson objectClass: orclUserV2 title: Member of Technical Staff homePhone: 650-584-5670 homePostalAddress: 232 Gonzalez Drive$ San Francisco$ CA$ 94404
dn: cn=lrider, %s_UserContainerDN% sn: Rider %s_UserNicknameAttribute%: lrider objectClass: inetOrgPerson objectClass: orclUserV2 title: Senior Member of Technical Staff homePhone: 650-584-5670
中間ファイルの形式に変換されたすべてのユーザー・データは、さらに、OID移行ツールによって、Oracle Internet Directoryにロード可能な適切なLDIFファイルに変換されます。
中間テンプレート・ファイルの例は、$
ORACLE_HOME
/ldap/schema/oid
にあります。
37.3.3.1.3 ユーザー・エントリの属性
各ユーザー・エントリには、必須とオプションの属性があります。
表37-4に、ユーザー・エントリの必須属性を示します。
表37-4 ユーザー・エントリの必須属性
属性 | 説明 |
---|---|
|
適切な置換変数を持つユーザー・エントリの識別名。エントリの相対識別名には、必ず |
|
ユーザーの姓。 |
|
エントリが最小限、属する必要があるオブジェクト・クラス。 |
関連項目:
-
inetOrgPerson
オブジェクト・クラスの各属性については、http://www.ietf.org
で、IETFのRFC 2798「Definition of theinetOrgPerson
LDAP Object Class」を参照してください -
詳細は、『Oracle Identity Managementリファレンス』の
orclUserV2
オブジェクト・クラスを参照してください。
37.3.3.2 OID移行ツールの実行
中間テンプレート・ファイルを設定すると、OID移行ツールによって、すべての関連データをアプリケーション固有のリポジトリからOracle Internet Directoryに移行できます。データの移行後は、そのアプリケーションとOracle Internet Directoryを同期化することによって、アプリケーションに関連するあらゆるデータを更新できます。同期化には、Oracle Directory Synchronization Serviceを使用します。
関連項目:
OID移行ツールの使用方法は、『Oracle Identity Managementリファレンス』のldifmigrator
コマンド行ツールのリファレンスを参照してください