この章では、LDAPバージョン3準拠のディレクトリおよびアプリケーション固有のデータ・リポジトリからOracle Internet Directoryにデータを移行する方法について説明します。
この章の内容は次のとおりです。
Oracle Internet Directoryのインストール時に、Oracle Identity Management 11gインストーラによって、デフォルトのスキーマとディレクトリ情報ツリー(DIT)が作成されます。このデフォルトのDITフレームワークの詳細は、第3章「Oracle Internet Directoryの概念およびアーキテクチャの理解」および第34章「レルムの計画、デプロイおよび管理」を参照してください。このフレームワークには柔軟性があるため、デプロイメント要件に応じて適切に変更できます。
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コンテキストにポインタが格納されます。
このデフォルトのアイデンティティ管理レルムは、デプロイメント要件に応じて変更してもかまいません。
この項では、LDAP準拠のサード・パーティのディレクトリからOracle Internet Directoryにデータを移行する際に役立つ情報を提供します。すでに確立された構造を持つディレクトリが存在し、データをそのディレクトリからデフォルトのディレクトリ構造の環境に移行する場合は、この項の指示に従ってください。
データの移行に使用される一般的なツールには、bulkload
およびsyncProfileBootstrap
の2つがあります。表37-1「bulkloadとsyncProfileBootstrapの機能」では、bulkload
とsyncProfileBootstrap
の機能の比較を示します。
表37-1 bulkloadとsyncProfileBootstrapの機能
機能 | bulkload | syncProfileBootstrap |
---|---|---|
速度 |
高速 |
低速 |
データ転送方式 |
SQL |
LDAP |
受け入れ可能な入力のタイプ |
LDIFファイルのみ |
LDIFファイル、LDAPディレクトリ、タグ付きファイル、CSVファイル |
データの変換 |
いいえ |
はい |
LDIF入力の検証 |
はい |
いいえ |
関連項目:
|
バルク・ローダー(bulkload
)は、大量のエントリをディレクトリ・サーバーにロードするためのコマンド行ツールです。このツールでは、Oracle SQL*Loaderを使用してディレクトリ・エントリをロードします。bulkload
ツールの入力ファイルの形式は、LDAP Data Interchange Format(LDIF)である必要があります。bulkload
ツールでは、LDIF入力の参照整合性を検証できますが、データに対してマッピングやその他の変換を実行することはできません。
変換が不要でデータが非常に大きい(50万件以上)場合、サード・パーティのディレクトリからOracle Internet Directoryにデータを移行するにはbulkload
が最も適しています。これは高速で、LDIF入力の検証が可能です。
この方法を使用する場合は、図37-1「LDIFファイルとbulkloadの使用」に示すように、まずサード・パーティのディレクトリからLDIFファイルにデータをエクスポートする必要があります。
LDIFは、LDAP準拠のディレクトリのデータをファイルとして表現するためのASCII交換フォーマットで、IETFによる承認を受けています。すべてのLDAP準拠のディレクトリには、エクスポート時にDITを表す1つ以上のLDIFファイルにその内容をエクスポートするツールがあります。
LDIFファイルとbulkloadを使用してデータを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ではサポートしていません)。構成ファイルがある場合は、「タスク3: Oracle Internet Directory内のスキーマの拡張」において、Oracle Internet Directory内のベース・スキーマを拡張するためのガイドラインとしてそのファイルを使用できます。
タスク3: Oracle Internet Directory内のスキーマの拡張
Oracle Internet Directoryにおけるディレクトリ・スキーマの拡張方法に関するヒントは、第21章「ディレクトリ・スキーマの管理」を参照してください。この作業は、Oracle Directory Services ManagerまたはSchemaSynchツール(『Oracle Fusion Middleware Oracle Identity Managementリファレンス』を参照)を使用して実行できます。
他のOracle製品を使用するユーザーがいる場合は、オブジェクト・クラスがorclUserV2
で必須属性を持ったユーザーを作成する必要があります。Active Directoryとの統合には、オブジェクト・クラスがorclADUser
で必須属性を持ったユーザーを作成する必要があります。これらのオブジェクト・クラスとその属性の詳細は、『Oracle Fusion Middleware 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の操作属性のうち、creatorsName
、createTimestamp
、modifiersName
およびmodifyTimestamp
の4つの属性が、Oracle Internet Directoryによって自動的に生成されます。たとえば、LDIFファイルのインポートを使用して、既存のディレクトリ・データからこれらの値をインスタンス化することはできません。したがって、インポートを試行する前に、これらの属性をファイルから削除する必要があります。
タスク6: LDIFファイルからの非互換のuserPassword属性値の削除
Oracle Internet DirectoryでサポートされているuserPassword属性のハッシュ・アルゴリズムの詳細は、第9.1.5項「DSEの属性」のorclcryptoscheme
エントリを参照してください。
一部のベンダー製品で使用されているuserPassword属性のハッシュ値は、Oracle Internet Directoryと互換性がありません。このため、プレーン・テキストで表されているか、または値が含まれていない場合を除き、userPassword
属性と値に対応する行はすべてLDIFデータ・ファイルから削除する必要があります。LDIFデータをインポートした後、手動で再入力するか、またはハッシュされたuserPassword情報を別途ディレクトリにアップロードする必要があります。パスワードがOracle Internet Directoryパスワード・ポリシーに準拠し、クリアテキストになっていることを確認します。
タスク7: bulkload check =TRUE"モードの実行とスキーマ違反または重複エラーが残っているかどうかの判断
LDIFファイルを生成してロードする前に、必ずbulkloadユーティリティのチェック・モードを使用してLDIFファイルのチェックを実行してください。bulkloadの出力によって、データにおける不整合が報告されます。
関連項目: bulkloadのチェック・モードの使用方法は、 『Oracle Fusion Middleware Oracle Identity Managementリファレンス』のbulkloadコマンド行ツールのリファレンスを参照 |
ディレクトリ統合アシスタントであるsyncProfileBootstrap
は、Oracle Directory Integration Serverによってスケジュールされた同期プロファイルを管理するためのコマンド行ツールです。管理者は、Oracle Directory Integration Serverで継続的に同期を実行するように構成する際に、syncProfileBootstrap
操作を使用して、接続ディレクトリとOracle Internet Directoryとの間で初期のデータ移行を実行できます。この操作は、継続した同期のない、1回かぎりのデータの移行にも使用できます。
syncProfileBootstrap
操作では、データをサード・パーティのLDAP準拠ディレクトリから直接受け取るか、LDIFファイル、タグ付きファイルまたはCSVファイルから受け取ることができます。同期プロファイルまたは構成ファイルのいずれかで、マッピング・ルールを指定する必要があります。
syncProfileBootstrap
の構文情報、構成ファイルのプロパティ、入力ファイルのタイプに関する情報および例の詳細は、『Oracle Fusion Middleware Oracle Identity Managementリファレンス』のOracle Directory Integration Platformツールに関する説明、および『Oracle Fusion Middleware Oracle Directory Integration Platform管理者ガイド』を参照してください。
サード・パーティのディレクトリからOracle Internet Directoryにデータを移行するときにマッピングを実行する必要があり、データのサイズが小さい場合は、syncProfileBootstrap
を使用できます。図37-2「syncProfileBootstrapの直接の使用」に示すように、サード・パーティのディレクトリ自体をsyncProfileBootstrap
への入力として使用できます。
使用例3は、使用例2のバリエーションです。サード・パーティのディレクトリに直接アクセスできない場合は、管理者に依頼してデータをLDIFファイルにエクスポートすることができます。図37-3「LDIFファイルとsyncProfileBootstrapの使用」に示すように、syncProfileBootstrap
はLDIFファイルから入力を受け取ることができます。また、Oracle Directory Integration Serverを使用してデータを移行することもできます。
LDIFファイルとbulkloadを使用してデータをOracle Internet Directoryに移行する場合には、いくつかのタスクを実行する必要があります。この使用例では、syncProfileBootstrap
またはOracle Directory Integration Platformとともにマッピング・ファイルを使用するため、「LDIFファイルとbulkloadを使用したLDAPデータの移行」に示されているすべてのタスクを実行する必要はありません。実行する必要のあるタスクは、次のとおりです。
大量のデータがあり、データにマッピングを実行する必要がある場合は、ツールを組み合せて使用することができます。図37-4「syncProfileBootstrap、bulkloadおよびLDIFファイルの使用」に示すように、サード・パーティのディレクトリからLDIFファイルにデータをエクスポートし、syncProfileBootstrap
を使用して別のLDIFファイルにデータをマッピングして、そのファイルをbulkload
でロードできます。
第37.2.3項「LDIFファイルとsyncProfileBootstrapを使用したLDAPデータの移行」に示すように、実行する必要のあるタスクは、次のとおりです。
場合によっては、管理者はOracle Directory Integration Serverを構成するときに、syncProfileBootstrap
を使用しないことがあります。Oracle Directory Integration Serverの構成後は、このサーバー自体で接続ディレクトリからOracle Internet Directoryにデータを移行できます。また、Oracle Directory Integration Serverを1回かぎりのデータの移行に使用することもできます。詳細は、『Oracle Fusion Middleware Oracle Directory Integration Platform管理者ガイド』を参照してください。
Oracle Directory Integration Serverを使用すると、図37-5「Oracle Directory Integration Serverの使用」に示すように、Oracle Internet Directoryとサード・パーティのディレクトリの間に双方向で継続的な統合を構成できます。詳細は、『Oracle Fusion Middleware Oracle Directory Integration Platform管理者ガイド』を参照してください。
ユーザー・データをアプリケーション固有のリポジトリから移行するには、次の処理が必要です。
ユーザー・データをアプリケーション固有のリポジトリから収集し、ディレクトリが読み込める書式に設定します。
ディレクトリ管理者がそのデータを使用できるようにします。ディレクトリ管理者は、次の作業を行う必要があります。
ディレクトリ内でデータを格納する場所を指定します。
データをディレクトリにインポートします。
この移行を実行するには、Oracle Directory Provisioning Integration Serviceで、アプリケーション固有のリポジトリを使用してそのデータを中間テンプレート・ファイルにエクスポートする必要があります。このテンプレート・ファイル内のレコードは、完全なLDIFにはなっておらず、情報が最終的に格納されるディレクトリ内の場所などに関連する置換変数が含まれています。これらの変数はアプリケーションにより未定義のまま残されるため、ディレクトリ管理者は後で定義できます。
ユーザー・データをこの中間テンプレート・ファイルから適切なLDIFに変換するには、OID移行ツール(ldifmigrator)を使用します。LDIFに変換されたデータは、ディレクトリにロードできます。
要約すると、アプリケーション固有のリポジトリからデータを移行するには、通常、次の手順を実行します。
アプリケーション固有のデータを中間テンプレート・ファイルとしてエクスポートします。
ディレクトリ管理者は、OID移行ツール(ldifmigrator)を使用して、不完全なLDIFエントリをテンプレート・ファイルからロードし、デプロイメントの選択に基づいて完全なLDIFエントリに変換します。
ディレクトリ管理者は、この完全なLDIFのデータをOracle Internet Directoryにロードします。
アプリケーションは、独自の仕様に従って移行処理を完了します。
アプリケーション固有のリポジトリから移行しているデータが、Oracle Internet Directoryにすでに存在している場合があります。この場合、OID移行ツール(ldifmigrator)の調停機能を使用して、2つのディレクトリ間の差分を調整できます。
関連項目: OID移行ツールの調停機能の詳細は、 『Oracle Fusion Middleware Oracle Identity Managementリファレンス』のldifmigratorコマンド行ツールのリファレンスを参照 |
アプリケーション固有のリポジトリからデータを移行するには、中間テンプレート・ファイルを作成してから、OID移行ツールを実行します。
各国語のデータを生成するアプリケーションでは、中間テンプレート・ファイルにデータをAL32UTF8で格納する必要があります。詳細は、http://www.ietf.org
で、IETFのRFC 2849「The LDAP Data Interchange Format(LDIF)- Technical Specification(LDAP Data Interchange Format(LDIF) - 技術仕様)」を参照してください。
中間テンプレート・ファイルの生成時に、移行を実行するアプリケーションでは、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移行ツールに渡すか、ツールがディレクトリから取得します。
次の中間テンプレート・ファイルには、アプリケーション固有の移行ロジックによって生成されたユーザー・エントリが格納されます。この例にある太字のデータは、すべてアプリケーション固有のユーザー・リポジトリから提供されます。
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-2に、ユーザー・エントリの必須属性を示します。
表37-2 ユーザー・エントリの必須属性
属性 | 説明 |
---|---|
|
適切な置換変数を持つユーザー・エントリの識別名。エントリの相対識別名には、必ず |
|
ユーザーの姓。 |
|
エントリが最小限、属する必要があるオブジェクト・クラス。 |
関連項目:
|
中間テンプレート・ファイルを設定すると、OID移行ツールによって、すべての関連データをアプリケーション固有のリポジトリからOracle Internet Directoryに移行できます。データの移行後は、そのアプリケーションとOracle Internet Directoryを同期化することによって、アプリケーションに関連するあらゆるデータを更新できます。同期化には、Oracle Directory Synchronization Serviceを使用します。
関連項目: OID移行ツールの使用方法は、 『Oracle Fusion Middleware Oracle Identity Managementリファレンス』のldifmigratorコマンド行ツールのリファレンスを参照 |