38 他のデータ・リポジトリからのデータの移行

次のトピックでは、LDAPバージョン3準拠のディレクトリとアプリケーション固有のデータ・リポジトリの両方からOracle Internet Directoryにデータを移行する方法について説明します。

38.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コンテキストにポインタが格納されます。

このデフォルトのアイデンティティ管理レルムは、デプロイメント要件に応じて変更してもかまいません。

38.2 LDAP準拠のディレクトリからのデータの移行

すでに確立された構造を持つディレクトリが存在し、データをそのディレクトリからデフォルトのディレクトリ構造の環境に移行する場合は、この項の指示に従ってください。

次のトピックでは、LDAP準拠のサード・パーティのディレクトリからOracle Internet Directoryにデータを移行する際に役立つ情報を提供します。

38.2.1 データ移行ツールの理解

次のトピックでは、データの移行によく使用される各ツールについて説明し、それらの機能を比較します。

38.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データ管理ツール」を参照してください。

38.2.1.2 ディレクトリ統合アシスタント

ディレクトリ統合アシスタントであるsyncProfileBootstrapは、Oracle Directory Integration Serverによってスケジュールされた同期プロファイルを管理するためのコマンド行ツールです。管理者は、Oracle Directory Integration Serverで継続的に同期を実行するように構成する際に、syncProfileBootstrap操作を使用して、接続ディレクトリとOracle Internet Directoryとの間で初期のデータ移行を実行できます。この操作は、継続した同期のない、1回かぎりのデータの移行にも使用できます。

syncProfileBootstrapの詳細は、『Oracle Directory Integration Platformの管理』syncProfileBootstrapを使用したディレクトリ・ブートストラップに関する項を参照してください。

38.2.1.3 バルク・ローダーとディレクトリ統合アシスタントの機能比較

表38-1に、bulkloadsyncProfileBootstrapの機能の比較を示します。

表38-1 bulkloadとsyncProfileBootstrapの機能

機能 bulkload syncProfileBootstrap

速度

高速

低速

データ転送方式

SQL

LDAP

受け入れ可能な入力のタイプ

LDIFファイルのみ

LDIFファイル、LDAPディレクトリ、タグ付きファイル、CSVファイル

データの変換

なし

はい

LDIF入力の検証

はい

なし

38.2.1.4 LDIFファイル

LDIFは、LDAP準拠のディレクトリのデータをファイルとして表現するためのASCII交換フォーマットで、IETFによる承認を受けています。すべてのLDAP準拠のディレクトリには、エクスポート時にDITを表す1つ以上のLDIFファイルにその内容をエクスポートするツールがあります。

関連項目:

IETFのRFC 2849は、http://www.ietf.orgで入手可能です。

38.2.2 LDIFファイルおよびバルク・ローダーを使用したLDAPデータの移行

この方法を使用する場合は、まずサード・パーティのディレクトリからLDIFファイルにデータをエクスポートする必要があります。

図38-1を参照してください。

図38-1 LDIFファイルとバルク・ローダーの使用

この図はテキストで説明します。

LDIFファイルおよびバルク・ローダーを使用してOracle Internet Directoryにデータを移行するには:

  1. 非Oracle Internet DirectoryサーバーからLDIFファイル形式にデータをエクスポートします。

    エクスポートの方法については、ベンダーが提供するマニュアルを参照してください。外部のディレクトリからデータをエクスポートするためのフラグまたはオプションが存在する場合は、必ず次の方法を選択してください。

    • 最小の独自情報が含まれるLDIF出力を生成する方法

    • http://www.ietf.orgで入手可能なIETF RFC 2849に最も準拠している方法

  2. LDIFデータで参照される必須スキーマの追加のためにLDIFユーザー・データを分析します。

    Oracle Internet Directoryベース・スキーマ内で検索できない属性については、LDIFファイルをインポートする前に、Oracle Internet Directoryベース・スキーマの拡張が必要です。一部のディレクトリでは、そのベース・スキーマへの拡張を定義するための構成ファイルの使用をサポートしている場合があります(Oracle Internet Directoryではサポートしていません)。構成ファイルがある場合は、Oracle Internet Directory内のベース・スキーマを拡張するためのガイドラインとしてそのファイルを使用できます。

  3. Oracle Internet Directoryでスキーマを拡張します。

    Oracle Internet Directoryにおけるディレクトリ・スキーマの拡張方法に関するヒントは、「ディレクトリ・スキーマの管理」を参照してください。この作業は、Oracle Directory Services ManagerまたはSchemaSynchツール(『Oracle Identity Managementリファレンス』を参照)を使用して実行できます。

    他のOracle製品を使用するユーザーがいる場合は、オブジェクト・クラスがorclUserV2で必須属性を持ったユーザーを作成する必要があります。Active Directoryとの統合には、オブジェクト・クラスがorclADUserで必須属性を持ったユーザーを作成する必要があります。これらのオブジェクト・クラスとその属性の詳細は、『Oracle Identity Managementリファレンス』Oracle Identity Managementオブジェクト・クラスのリファレンスに関する項を参照してください。

  4. LDIFファイルから独自のディレクトリ・データを削除します。

    ACI属性など、LDAP v3標準の一部の要素は、まだ正式なものではありません。その結果、様々なディレクトリ・ベンダーがベンダー間で正常に変換できない方法で、ACIポリシー・オブジェクトを実装しています。

    クリーンアップされたLDIFファイルからOracle Internet Directoryに基本エントリ・データをインポートした後、Oracle Internet Directory環境でセキュリティ・ポリシーを明示的に再適用する必要があります。この作業は、Oracle Directory Services Managerまたはコマンド行ツールと、必要なACP情報を含むLDIFファイルを使用して実行できます。

    この他にもアクセス制御に関連しない独自のメタデータが含まれている場合があります。これも同様に削除する必要があります。様々なIETF RFCを理解することで、どのディレクトリ・メタデータが特定のベンダー独自のものであり、どれがLDAP規格に準拠していてLDIFファイルによって移植できるかを判断できます。

  5. LDIFファイルから操作属性を削除します。

    エントリが作成またはインポートされるたびに、標準のLDAPバージョン3の操作属性のうち、creatorsNamecreateTimestampmodifiersNameおよびmodifyTimestampの4つの属性が、Oracle Internet Directoryによって自動的に生成されます。たとえば、LDIFファイルのインポートを使用して、既存のディレクトリ・データからこれらの値をインスタンス化することはできません。したがって、インポートを試行する前に、これらの属性をファイルから削除する必要があります。

  6. LDIFファイルから非互換のuserPassword属性値を削除します。

    Oracle Internet DirectoryでサポートされているuserPassword属性のハッシュ・アルゴリズムの詳細は、「DSEの属性」orclcryptoschemeエントリを参照してください。

    一部のベンダー製品で使用されているuserPassword属性のハッシュ値は、Oracle Internet Directoryと互換性がありません。このため、プレーン・テキストで表されているか、または値が含まれていない場合を除き、userPassword属性と値に対応する行はすべてLDIFデータ・ファイルから削除する必要があります。LDIFデータをインポートした後、手動で再入力するか、またはハッシュされたuserPassword情報を別途ディレクトリにアップロードする必要があります。パスワードがOracle Internet Directoryパスワード・ポリシーに準拠し、クリアテキストになっていることを確認します。

  7. bulkload check =TRUE"モードを実行し、スキーマ違反または重複エラーが残っているかどうかを判断します。

    LDIFファイルを生成してロードする前に、必ずbulkloadユーティリティのチェック・モードを使用してLDIFファイルのチェックを実行してください。bulkloadの出力によって、データにおける不整合が報告されます。

関連項目:

bulkloadのチェック・モードの使用方法は、『Oracle Identity Managementリファレンス』bulkloadコマンド行ツールのリファレンスを参照してください

38.2.3 ディレクトリ統合アシスタントを使用したLDAPデータの直接の移行

syncProfileBootstrap操作では、データをサード・パーティのLDAP準拠ディレクトリから直接受け取るか、LDIFファイル、タグ付きファイルまたはCSVファイルから受け取ることができます。同期プロファイルまたは構成ファイルのいずれかで、マッピング・ルールを指定する必要があります。

syncProfileBootstrapの構文情報、構成ファイルのプロパティ、入力ファイルのタイプに関する情報および例の詳細は、『Oracle Identity Managementリファレンス』Oracle Directory Integration Platformツールに関する項、および『Oracle Directory Integration Platformの管理』syncProfileBootstrapを使用したディレクトリ・ブートストラップに関する項を参照してください。

サード・パーティのディレクトリからOracle Internet Directoryにデータを移行するときにマッピングを実行する必要があり、データのサイズが小さい場合は、syncProfileBootstrapを使用できます。図38-2に示すように、サード・パーティのディレクトリ自体をsyncProfileBootstrapへの入力として使用できます。

図38-2 syncProfileBootstrapの直接の使用

dipassistantの直接の使用

38.2.4 LDIFファイルおよびディレクトリ統合アシスタントを使用したLDAPデータの移行

サード・パーティのディレクトリに直接アクセスできない場合は、管理者に依頼してデータをLDIFファイルにエクスポートすることができます。

図38-3に示すように、syncProfileBootstrapはLDIFファイルから入力を受け取ることができます。また、Oracle Directory Integration Serverを使用してデータを移行することもできます。

図38-3 LDIFファイルとsyncProfileBootstrapの使用

この図はテキストで説明します。

LDIFファイルとbulkloadを使用してデータをOracle Internet Directoryに移行する場合には、いくつかのタスクを実行する必要があります。この使用例では、syncProfileBootstrapまたはOracle Directory Integration Platformとともにマッピング・ファイルを使用するため、「LDIFファイルとbulkloadを使用したLDAPデータの移行」に示されているすべてのタスクを実行する必要はありません。

次の表に、LDIFファイルおよびディレクトリ統合アシスタントを使用してOracle Internet Directoryにデータを移行するタスクを示します。

表38-2 LDIFファイルおよびディレクトリ統合アシスタントを使用してOracle Internet Directoryにデータを移行するタスクのリスト

タスク番号 タスクの説明

タスク1

非Oracle Internet DirectoryサーバーからLDIFファイル形式にデータをエクスポートします。

タスク2

LDIFデータで参照される必須スキーマの追加のためにLDIFユーザー・データを分析します。

タスク3

Oracle Internet Directoryでスキーマを拡張します。

38.2.5 ディレクトリ統合アシスタント、バルク・ローダーおよびLDIFファイルを使用したLDAPデータの移行

大量のデータがあり、データにマッピングを実行する必要がある場合は、ツールを組み合せて使用することができます。

図38-4に示すように、サード・パーティのディレクトリからLDIFファイルにデータをエクスポートし、syncProfileBootstrapを使用して別のLDIFファイルにデータをマッピングして、そのファイルをbulkloadでロードできます。

図38-4 syncProfileBootstrap、bulkloadおよびLDIFファイルの使用

この図はテキストで説明します。

次の表に、LDIFファイル、バルク・ローダーおよびディレクトリ統合アシスタントを使用してOracle Internet Directoryにデータを移行するタスクを示します。

表38-3 ディレクトリ統合アシスタント、バルク・ローダーおよびLDIFファイルを使用してデータを移行するタスクのリスト

タスク番号 タスクの説明

タスク1

非Oracle Internet DirectoryサーバーからLDIFファイル形式にデータをエクスポートします。

タスク2

LDIFデータで参照される必須スキーマの追加のためにLDIFユーザー・データを分析します。

タスク3

Oracle Internet Directoryでスキーマを拡張します。

38.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を使用すると、図38-5に示すように、Oracle Internet Directoryとサード・パーティのディレクトリの間に双方向で継続的な統合を構成できます。詳細は、『Oracle Directory Integration Platformの管理』「Oracle Directory Synchronization Serviceの理解」を参照してください。

図38-5 Oracle Directory Integration Serverの使用

この図はテキストで説明します。

38.3 ユーザー・データのアプリケーション固有リポジトリからの移行

この項では、ユーザー・データをアプリケーション固有のリポジトリから移行する方法について説明します。

ユーザー・データをアプリケーション固有のリポジトリから移行するには、次の処理が必要です。

  • ユーザー・データをアプリケーション固有のリポジトリから収集し、ディレクトリが読み込める書式に設定します。

  • ディレクトリ管理者がそのデータを使用できるようにします。ディレクトリ管理者は、次の作業を行う必要があります。

    • ディレクトリ内でデータを格納する場所を指定します。

    • データをディレクトリにインポートします。

次のトピックでは、アプリケーション固有のリポジトリからのデータ移行を有効にするための汎用的な手順を示します。

38.3.1 アプリケーション固有のリポジトリからのデータ移行の有効化

この移行を実行するには、DSPSはアプリケーション固有のリポジトリを使用してそのデータを中間テンプレート・ファイルにエクスポートする必要があります。このテンプレート・ファイル内のレコードは、完全なLDIFにはなっておらず、情報が最終的に格納されるディレクトリ内の場所などに関連する置換変数が含まれています。これらの変数はアプリケーションにより未定義のまま残されるため、ディレクトリ管理者は後で定義できます。

ユーザー・データをこの中間テンプレート・ファイルから適切なLDIFに変換するには、OID移行ツール(ldifmigrator)を使用します。LDIFに変換されたデータは、ディレクトリにロードできます。

要約すると、アプリケーション固有のリポジトリからデータを移行するには、通常、次のステップを実行します。

  1. アプリケーション固有のデータを中間テンプレート・ファイルとしてエクスポートします。
  2. ディレクトリ管理者は、OID移行ツール(ldifmigrator)を使用して、不完全なLDIFエントリをテンプレート・ファイルからロードし、デプロイメントの選択に基づいて完全なLDIFエントリに変換します
  3. ディレクトリ管理者は、この完全なLDIFのデータをOracle Internet Directoryにロードします
  4. アプリケーションは、独自の仕様に従って移行処理を完了します。

38.3.2 アプリケーション・リポジトリ内のデータとディレクトリ内の既存データとの調停

アプリケーション固有のリポジトリから移行しているデータが、Oracle Internet Directoryにすでに存在している場合があります。この場合、OID移行ツール(ldifmigrator)の調停機能を使用して、2つのディレクトリ間の差分を調整できます。

OID移行ツールの調停機能の詳細は、『Oracle Identity Managementリファレンス』ldifmigratorコマンド行ツールのリファレンスを参照してください。

38.3.3 アプリケーション固有のリポジトリからのデータ移行の管理

次のトピックでは、アプリケーション固有のリポジトリからデータを移行する際に、中間テンプレート・ファイルを作成し、移行ツールを実行する方法について説明します。

38.3.3.1 中間テンプレート・ファイルの作成

次のトピックでは、中間テンプレート・ファイルの書式および構造について説明し、さらにユーザー・エントリの属性について説明します。

38.3.3.1.1 中間テンプレート・ファイル

各国語のデータを生成するアプリケーションでは、中間テンプレート・ファイルにデータをAL32UTF8で格納する必要があります。詳細は、http://www.ietf.orgで、IETFのRFC 2849「The LDAP Data Interchange Format (LDIF)- Technical Specification」を参照してください。

中間テンプレート・ファイルの生成時に、移行を実行するアプリケーションでは、RFC 2849で定義されているレコード・セパレータを使用して、すべてのユーザー・レコードを順にリストする必要があります。OID移行ツール(ldifmigrator)は、デフォルトのアイデンティティ管理レルム(企業自体に対応しています)にすべてのユーザーを割り当てます。

図38-6に、ユーザー・エントリが格納される中間テンプレート・ファイルの全体構造を示します。

図38-6 中間ユーザー・ファイルの構造

図38-6の説明が続きます
「図38-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移行ツールに渡すか、ツールがディレクトリから取得します。

38.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にあります。

38.3.3.1.3 ユーザー・エントリの属性

各ユーザー・エントリには、必須とオプションの属性があります。

表38-4に、ユーザー・エントリの必須属性を示します。

表38-4 ユーザー・エントリの必須属性

属性 説明

dn

適切な置換変数を持つユーザー・エントリの識別名。エントリの相対識別名には、必ずcn属性を含める必要があります。

sn

ユーザーの姓。

objectclass

エントリが最小限、属する必要があるオブジェクト・クラス。inetOrgPersonおよびorclUserV2があります。

関連項目:

  • inetOrgPersonオブジェクト・クラスの各属性については、http://www.ietf.orgで、IETFのRFC 2798「Definition of the inetOrgPerson LDAP Object Class」を参照してください

  • 詳細は、『Oracle Identity Managementリファレンス』orclUserV2オブジェクト・クラスを参照してください。

38.3.3.2 OID移行ツールの実行

中間テンプレート・ファイルを設定すると、OID移行ツールによって、すべての関連データをアプリケーション固有のリポジトリからOracle Internet Directoryに移行できます。データの移行後は、そのアプリケーションとOracle Internet Directoryを同期化することによって、アプリケーションに関連するあらゆるデータを更新できます。同期化には、Oracle Directory Synchronization Serviceを使用します。

関連項目:

OID移行ツールの使用方法は、『Oracle Identity Managementリファレンス』ldifmigratorコマンド行ツールのリファレンスを参照してください