ヘッダーをスキップ
Oracle® Fusion Middleware Oracle Virtual Directory管理者ガイド
11gリリース1(11.1.1)
B55922-05
  目次へ
目次
索引へ移動
索引

前へ
前へ
 
次へ
次へ
 

5 Oracle Virtual Directoryのマッピングの概要

この章では、Oracle Virtual Directoryのマッピングについて説明します。この章の内容は次のとおりです。


注意:

この章のマッピング情報は、履歴情報として提供されています。これまでのデフォルトのマッピング・スクリプトもサポートされていますが、新しいカスタマイズではJavaプラグインAPIを使用する必要があります。これは、Java APIがすべてのOracle Virtual Directory機能へのアクセスを完全にサポートし、一般的に開発が容易なためです。

5.1 マッピングとは

Oracle Virtual Directoryには、Pythonスクリプト言語に基づく、双方向のマッピング・システムが含まれています。マッピングは、特別なPythonスクリプト(ファイル形式は.mpy)で、インバウンドおよびアウトバウンドのトランザクション・データ・フローを処理します。マッピングによりOracle Virtual Directoryサーバーにデータが渡されるため、Oracle Virtual Directoryの管理者は、データを操作およびマッピングできます。広く普及しているPythonスクリプト言語に基づくOracle Virtual Directoryのマッピング・システムでは、新しい固有の複雑なプログラミング言語を習得せずに、複雑なデータ操作を行うことができます。Oracle Virtual Directoryのマッピング・システムにより、企業はアプリケーションからIDへのアクセスをさらに柔軟にサポートすることができます。Oracle Virtual Directoryは、マッピングを実行可能バイト・コードにコンパイルし、最高のパフォーマンスのためにインラインで実行します。

統合担当者は、1つのデータソースから別のデータソースに情報をマッピングするときに、カスタム変換を実行する使いやすいマッピング・スクリプトを開発できます。このようなスクリプトは、サーバーをリセットせずに、実行中のサーバーにインストールしてデプロイできます。マッピング・スクリプトは、リクエストがデータソースに到達するためにシステムに入る際にリクエストを調整し、クライアントに戻る途中でレスポンスを変換できます。たとえば、マッピングを使用すると、スキーマの正規化(Active DirectoryをInetOrgPersonのように見せるなど)、データ型の添付(ハッシュ・パスワードに対する{sha}など)、またはデータストアから取得した属性値に基づく仮想属性の作成を行うことができます。

マッピングの作成時には、事前定義済のマッピング・テンプレートを使用して構成を簡略化することも、新しいカスタム・マッピングを作成することもできます(マッピング・テンプレートの詳細は、「マッピング・テンプレートの概要」を参照してください)。通常、マッピングはコンパイル済JavaコードとしてOracle Virtual Directoryサーバーにデプロイされ、マッパーと呼ばれる特別なタイプのプラグイン内部で実行されます。プラグインと同様、マッピングは、グローバルに実行することも、アダプタ・レベルで実行することもできます。複数のマッピングとアダプタを組み合せて、総合的な変換サービスを実行する個々の機能のセットを作成できます。図5-1は、1つのマッピングを複数のアダプタで実行し、別のマッピングを特定のアダプタのみで実行する場合の一般的なシナリオを示しています。

図5-1 単一のアダプタおよび複数のアダプタにおけるマッピング・デプロイの例

マッピング・デプロイの例。

各マッピングにはインバウンドおよびアウトバウンドのフローがあり、リクエストを受信するときに一方向の変換を行い、リクエスト元のアプリケーションに結果が戻されるときには、その変換を逆方向にすることができます。サーバーがこの意図を予測することは通常不可能なため、このようにプログラム上で方向を逆にすることは重要です。

Oracle Virtual Directoryでは、マッピングをグローバルに実行するか、または1つのアダプタのコンテキスト内で実行するかを非常に柔軟に判断できます。状況によっては、仮想ツリー内でマッピングを適用する場所をさらに制限する必要が生じる場合もあります。たとえば、アダプタがMicrosoft Active Directoryドメインのかわりになるように設定され、DC=VAN,DC=Oracle,DC=comを指しているとします。ドメイン・ツリー内のそのポイントの下には、CN=UsersコンテナおよびCN=Groupsコンテナがあります。マッピングにネームスペース・フィルタを追加すると、ツリーの一部にのみそれを適用できます。

次に、Oracle Virtual Directoryのマッピングに関して考慮する必要のある注意事項を示します。

5.1.1 マッピングおよびカスタム・プラグインを使用する理由

マッピングを使用する顧客の多くは、Oracle Virtual Directoryに付属のデフォルトのマッピングを使用してアプリケーション要件を満たしています。マッパーAPIで対応しているのはJavaプラグイン機能のサブセットのみであること、PythonよりJavaに精通している開発者の方が多く、コードの開発に必要な時間を短縮できることから、カスタマイズが必要な場合は一般的にJavaプラグインAPIが使用されます。

5.1.2 概要: マッピングのデプロイ

次に、アダプタ・レベルおよびグローバル・サーバー・レベルで、マッピングをデプロイするプロセスの概要を示します。

  1. マッピング・テンプレートを使用してマッピングを構成し、スクリプトにコンパイルして、Oracle Virtual Directoryサーバーにデプロイすると、グローバル・サーバー・レベルまたはアダプタ・レベルでアクティブ化されます。


    関連項目:

    詳細は、「マッピング・テンプレートを使用したマッピングの作成」を参照してください。

  2. マッピングをグローバル・サーバー・レベルまたはアダプタ・レベルで構成するには、名前を付け、マッピング・スクリプト・ファイルを指定し、実行予定の仮想ディレクトリでのネームスペースを決定してアクティブ化します。


    関連項目:


5.2 マッピング・テンプレートの概要

この項では、Oracle Virtual Directoryマッピング・テンプレートについて説明します。この項の内容は次のとおりです。

5.2.1 Active_Directory_to_inetOrg

Microsoft Active Directoryのユーザーとグループ・オブジェクトを、それぞれInetOrgPerson inetOrgPersonおよびgroupOfUniquenamesオブジェクトにマッピングします。

5.2.2 Common_Name_to_Given_Name

デフォルトのsnおよびgivennameの2つの属性の値を結合することで、仮想の共通名属性を作成します。通常、Common_Name_to_Given_Nameマッピングは、名前と姓のみはあるがフルネームはないデータベース・アダプタに使用されます。


注意:

このマッピングでは、共通名属性のサブストリング・フィルタはサポートされていません。

5.2.3 ConditionalPublish

別の属性の条件値が一致する場合に、指定された属性を削除します。ConditionalPublishマッピングは、さらに高度なトレーニング環境のFERPA保護属性を非表示にする際に便利です。

5.2.4 DB_Groups

グループに関する表を有効なLDAPグループにマップするときにこのテンプレートを使用します。最初の列はcn(グループ名)になります。2番目の列はuniquememberになります。uniquememberでは、RDN値のみが表内で使用されるように、DNが削除されます。たとえば、(uniqueMember=cn=XXX,ou=testusers)が(uniqeMember=XXX)に変換されます。

5.2.5 Map_DB_Password

インバウンドのバイナリ構文パスワードを、データベースと互換性のあるIA5Stringパスワードにマッピングします。


注意:

Map_DB_Passwordマッピングとデータベース・アダプタを関連付け、changetypeをAdd、UserPasswordなどのバイナリ属性をOracle Virtual Directoryの既存の値にしてLDAP変更操作を実行すると、主キー制約がデータベース表に設定されていない場合、データベースに重複行が追加されます。