8 Oracle Directory Synchronization Serviceの理解

Oracleバックエンド・ディレクトリと接続ディレクトリをリンクする同期プロファイルとコネクタについて理解します。

トピック:

関連項目:

Oracle Directory Integration Platformの概念は、「Oracle Directory Integration Platformの概要」を参照してください

8.1 Oracleディレクトリの同期に必要なコンポーネント

このトピックでは、Oracleディレクトリの同期に必要なコンポーネントについて説明します。

8.1.1 ディレクトリ同期のコネクタの概要

Oracleバックエンド・ディレクトリと接続ディレクトリを同期化するため、Oracle Directory Integration Platformはコネクタと呼ばれるあらかじめパッケージされた接続ソリューションを使用します。

このコネクタは最小でも、同期に必要な全設定情報を含む1つのディレクトリ統合プロファイルで構成されます。

  • コネクタとサポート対象インタフェースの使用

    Oracleバックエンド・ディレクトリと接続ディレクトリを同期化するとき、Oracle Directory Integration Platformは、DB、LDAP、タグ付きまたはLDIFのいずれかのインタフェースを使用します。接続ディレクトリがこれらのインタフェースの1つを使用するときにコネクタに必要なものは、同期させるためのディレクトリ統合プロファイルのみです。たとえば、Oracle Directory Integration Platformとともに提供されるOracle Directory Server Enterprise Editionコネクタは、LDAPインタフェースを使用して、Oracle Directory Server Enterprise Editionから変更を読み取ります。この変更は、Oracle Directory Server Enterprise Editionに固有の形式であり、Oracle Directory Server Enterprise Edition内でldapsearchを実行することによって判別できます。

  • サポート対象インタフェースなしのコネクタの使用

    接続ディレクトリでは、Oracle Directory Integration Platformによってサポートされているインタフェースの1つを使用できない場合、ディレクトリ統合プロファイルに加えてエージェントが必要です。エージェントは、Oracle Directory Integration Platformがサポートする書式の1つから、接続ディレクトリがサポートする書式に、データを変換します。Oracle Human Resourcesコネクタは一例です。これには、事前パッケージ済の統合プロファイルおよびOracle Human Resourcesエージェントの両方があります。エージェントは、Oracleバックエンド・ディレクトリとの通信に、Oracle Directory Integration Platformがサポートするタグ付きファイル形式を使用します。Oracle Human Resourcesシステムとの通信には、SQLを使用します(OCIインタフェース経由)。

8.1.2 ディレクトリ同期プロファイルの理解

同期用のディレクトリ統合プロファイルは、ディレクトリ同期プロファイルと呼ばれます。

ディレクトリ同期プロファイルには、次のように同期に必要なすべての構成情報が含まれます。

  • 同期の方向

    一部の接続ディレクトリは、Oracleバックエンド・ディレクトリからのデータの受信のみを行います(つまり、エクスポート操作のみに関与します)。その他は、Oracleバックエンド・ディレクトリへのデータの供給のみを行います(つまり、インポート操作のみに関与します)。インポート操作およびエクスポート操作の両方に関与するものもあります。

    プロファイルは、方向ごとに(つまり、接続ディレクトリからOracleバックエンド・ディレクトリへの情報用に1つ、Oracleバックエンド・ディレクトリから接続ディレクトリへの情報用に1つ)個別に使用されます。

  • インタフェースのタイプ

    一部の接続ディレクトリは、Oracle Directory Integration Platformに組み込まれているインタフェースのいずれかでデータを受け取ることができます。LDAP、タグ付き、DB(読取り専用)、LDIFなどのインタフェースがあります。これらの接続ディレクトリについては、プロファイルに格納されている情報を使用してOracle Directory Synchronization Serviceが同期そのものを直接実行します。

  • マッピング・ルールとその形式

    ディレクトリ同期環境では、あるドメインの典型的なエントリ・セットを別のドメインに移動できます。同様に、ある属性のセットを別の属性のセットにマップすることができます。

    マッピング・ルールは、接続ディレクトリとOracleバックエンド・ディレクトリ間の属性の変換を制御します。各コネクタでは、その同期プロファイルのorclodipAttributeMappingRules属性に一連のマッピング・ルールが格納されています。Oracle Directory Integration Platformはこれらのルールを使用し、ディレクトリからエクスポートする場合、および接続ディレクトリまたはファイルからインポートしたデータを変換する場合に、必要に応じて属性をマップします。Oracle Directory Integration Platformでは、変更をOracleバックエンド・ディレクトリにインポートする場合、マッピング・ルールに従って接続ディレクトリの変更レコードをLDAP変更レコードに変換します。同様に、エクスポート時は、コネクタがOracleバックエンド・ディレクトリでの変更内容を接続ディレクトリが理解できる形式に変換します。

  • 接続ディレクトリの接続詳細

    この詳細には、ホスト、ポート、接続モード(SSLまたは非SSL)などの接続ディレクトリについての情報や、接続ディレクトリの資格証明が含まれます。

  • その他の情報

    コネクタによるOracleバックエンド・ディレクトリと接続ディレクトリの同期に必要なほとんどの情報は、同期プロファイルに格納されますが、コネクタによっては、さらに多くの情報が必要な場合があります。これは、操作によっては実行時に追加構成情報が必要となるためです。

    追加のコネクタ構成情報は、任意の場所に任意の方法で格納できます。ただし、Oracle Directory Integration Platformでは、これをorclODIPAgentConfigInfoと呼ばれる属性として同期プロファイルに格納できます。これを使用するかどうかは任意であり、コネクタでこのような情報が必要ない場合は、この属性を空のままにします。

    この構成情報は、コネクタまたは接続ディレクトリ(あるいはその両方)に関連付けることができます。Oracleバックエンド・ディレクトリおよびOracle Directory Integration Platformは、この情報を変更しません。コネクタの起動時に、Oracle Directory Integration Platformは、この属性の情報を一時ファイルとしてコネクタに提供します。

    関連項目:

    ディレクトリ統合プロファイル内の属性のリストおよび説明は、『Oracle Fusion Middleware Oracle Identity Managementリファレンス』「LDAP属性のリファレンス」を参照してください。

8.2 同期の仕組みの理解

Oracleバックエンド・ディレクトリと接続ディレクトリ間での同期の仕組みについて理解します。

変更が行われた場所に応じて、次のような同期化が発生します。

  • 接続ディレクトリからOracleバックエンド・ディレクトリ

  • Oracleバックエンド・ディレクトリから接続ディレクトリ

  • 両方向

データが流れる方向に関係なく、次のことを前提としています。

  • 同期時に、一方のディレクトリに対する増分変更が他方のディレクトリに伝播されます。

  • 同期の完了後、両方のディレクトリには同じ方法で情報が維持されています。

トピック:

8.2.1 バックエンド・ディレクトリから接続ディレクトリへの同期の理解

Oracleバックエンド・ディレクトリでは、ディレクトリ・オブジェクトに対する増分変更が保存される変更ログが管理されます。これには、変更ログ番号に基づいて連続的に変更が保存されます。

Oracleバックエンド・ディレクトリから接続ディレクトリへの同期は、この変更ログを活用します。このため、Oracle Directory Integration Platformの実行時には、変更ロギングが有効化されているデフォルト設定を使用してOracleバックエンド・ディレクトリを起動する必要があります。

Oracle Directory Synchronization Serviceは、同期プロファイルを処理するたびに、次のように動作します。

  • すべての変更が適用された最新の変更ログ番号が取得されます。

  • この番号より新しい変更ログ・エントリがそれぞれチェックされます。

  • プロファイルのフィルタリング・ルールを使用して、接続ディレクトリとの同期対象の変更が選択されます。

  • エントリにマッピング・ルールが適用され、接続ディレクトリで対応する変更が実行されます。

該当するエントリまたは属性がその接続ディレクトリで更新されます。接続ディレクトリで、DB、LDAP、タグ付き、またはLDIFの各形式が直接使用されていない場合は、プロファイルに指定されているエージェントが起動されます。正常に使用された最後の変更番号がプロファイルに保存されます。

Oracleバックエンド・ディレクトリは、すべてのプロファイルが必要な変更ログを使用した後、変更ログをパージして、後続の同期の開始位置を示します。

ノート:

同期されるエントリなど、同期プロファイルのすべての情報を記録するには、Oracle Enterprise Manager Fusion Middleware Controlを使用して、プロファイルのログ・レベルを「すべて」に設定するか、manageSyncProfilesコマンドを使用して、odip.profile.debuglevelパラメータの値を64に設定します。

8.2.2 接続ディレクトリからバックエンド・ディレクトリへの同期の理解

接続ディレクトリで、DB、LDAP、タグ付きまたはLDIFの各形式が直接使用されている場合、そのエントリまたは属性への変更は、Oracle Directory Synchronization Serviceによって自動的に同期化されます。それ以外の場合、コネクタは同期プロファイルにエージェントを持ち、エージェントがLDIFまたはタグ付き形式でファイルへの変更を書き込みます。次に、Oracle Directory Synchronization Serviceは、この接続ディレクトリ・データのファイルを使用して、Oracleバックエンド・ディレクトリを更新します。

8.2.3 バックエンド・ディレクトリがサポートしていないインタフェースを持つディレクトリとの同期の理解

一部の接続ディレクトリは、Oracleバックエンド・ディレクトリでサポートされているどのインタフェースを使用してもデータを受信できません。このタイプのディレクトリに対するプロファイルには、「エージェント」と呼ばれる、同期用の個別のプログラムを識別する属性が含まれています。エージェントは接続ディレクトリの固有な形式と同期データが入っているDB、LDAP、タグ付きまたはLDIFファイルとの間の変換を行います。プロファイル内で識別されているとおり、エージェントはOracle Directory Synchronization Serviceによって起動されます。

Oracleバックエンド・ディレクトリからこのタイプの接続ディレクトリへデータをエクスポートする場合、Oracle Directory Synchronization Serviceは、必要なファイルをタグ付き形式またはLDIF形式で作成します。次にエージェントは、そのファイルを読み込んで、データを受信する接続ディレクトリに適した形式に変換し、そのディレクトリにデータを格納します。

このタイプの接続ディレクトリからOracleバックエンド・ディレクトリへデータをインポートする場合、エージェントは必要なファイルをタグ付きまたはLDIF形式で作成します。次に、Oracle Directory Synchronization Serviceは、このファイル・データを使用して、Oracleバックエンド・ディレクトリを更新します。