ヘッダーをスキップ

Oracle Identity Manager 管理およびユーザー・コンソール・ガイド
リリース9.1.0

E05900-03
目次
目次
索引
索引

戻る 次へ

21 汎用テクノロジ・コネクタ用カスタム・プロバイダの作成

事前定義プロバイダで対応できないプロバイダ要件に対して、カスタム・プロバイダを作成する必要があります。この章では、カスタム・プロバイダの作成手順について説明します。


注意

この手順はオプションです。事前定義済プロバイダでプロバイダ要件のすべてに対応できる場合は、カスタム・プロバイダを作成する必要はありません。 


この章の内容は、次のとおりです。

プロバイダの役割

次の各項では、汎用テクノロジ・コネクタの作成中および使用中におけるプロバイダの役割を説明します。

汎用テクノロジ・コネクタ作成中のプロバイダの役割

汎用テクノロジ・コネクタは管理およびユーザー・コンソールで作成します。コネクタ作成手順のタスクの1つとして、データセットおよびデータセット間のデータ・フローが定義されます。このタスクは、メタデータの検出プロセスにより容易になります。

汎用テクノロジ・コネクタのコンテキストでは、メタデータという用語はユーザー・アカウント情報を構成する一連のアイデンティティ・フィールドを意味します。メタデータの検出という用語は、プロバイダによるターゲット・システムのメタデータ読込みおよび解析を指します。

関連項目

「「ステップ3: コネクタ構成の変更」ページ」 

メタデータの検出機能は、すべてのタイプのプロバイダでサポートされます。つまり、カスタム・プロバイダの作成時に、メタデータ読込み機能をプロバイダに組み込むことができます。


注意

Javadocでは、メタデータの検出という用語のかわりにメタデータ定義という用語が使用されています。 


図21-1に、メタデータの検出プロセスを示します。

図21-1    メタデータの検出プロセス


画像の説明

次の一連の手順で、メタデータの検出の実施方法について説明します。この一連の手順は、汎用テクノロジ・コネクタの作成時に「リコンシリエーション」オプションと「プロビジョニング」オプションの両方を選択するという想定に基づいています。「リコンシリエーション」オプションまたは「プロビジョニング」オプションのいずれかを選択しない場合、対応する手順は実施されません。

関連項目

以降の手順で説明するSPIメソッドや値オブジェクトの詳細は、Javadocを参照してください。

Javadocは次の場所で参照できます。

OIM_HOME/documentation/SDK/javadocs/gc/index.html

Javadocでは、メタデータの検出という用語とメタデータ定義という用語が同義的に使用されています。 

  1. リコンシリエーション・トランスポート・プロバイダのinitializeメソッドが呼び出され、このプロバイダのインスタンスが作成されます。

  2. リコンシリエーション・フォーマット・プロバイダのinitializeメソッドが呼び出され、このプロバイダのインスタンスが作成されます。

  3. リコンシリエーション・トランスポート・プロバイダのgetMetadataメソッドが呼び出され、ターゲット・システムからメタデータがフェッチされます。このメソッドの出力はTargetSchema値オブジェクトであり、ここにターゲット・システムからフェッチしたメタデータが格納されています。

  4. リコンシリエーション・フォーマット・プロバイダのparseMetadataメソッドが呼び出され、ターゲット・システムからフェッチしたメタデータが解析されます。このメソッドの出力はOIMSchema値オブジェクトであり、ここにターゲット・システムからフェッチしたメタデータが格納されています。


    注意

    「ソース」データセットに対応するOIMSchema値オブジェクトについては、「リコンシリエーション・モジュールのプロバイダおよびデータセット」で説明します。 


  5. プロビジョニング・トランスポート・プロバイダのinitializeメソッドが呼び出され、このプロバイダのインスタンスが作成されます。

  6. プロビジョニング・フォーマット・プロバイダのinitializeメソッドが呼び出され、このプロバイダのインスタンスが作成されます。

  7. リコンシリエーション・トランスポート・プロバイダおよびリコンシリエーション・フォーマット・プロバイダでメタデータを検出できない場合、プロビジョニング・トランスポート・プロバイダおよびプロビジョニング・フォーマット・プロバイダについて
    手順1〜4が繰り返されます。


    注意

    プロバイダは初期化した後、次のいずれかのイベントが発生するまでOracle Identity Managerのキャッシュに格納されています。

    • キャッシュのパージ

    • Oracle Identity Managerの再起動

    • 汎用テクノロジ・コネクタの作成後の変更

    検証プロバイダおよびトランスフォーメーション・プロバイダは、必要な場合にのみインスタンス化されます。キャッシュには格納されません。 


共有ドライブ・リコンシリエーション・トランスポート・プロバイダとCSVリコンシリエーション・フォーマット・プロバイダでは、ターゲット・システムからメタデータを検出できます。ただし、Webサービス・プロビジョニング・トランスポート・プロバイダおよびSPMLプロビジョニング・フォーマット・プロバイダでは、この機能はサポートされていません。

リコンシリエーション中のプロバイダの役割

図21-2は、リコンシリエーション中のプロバイダの役割を示しています。

図21-2    リコンシリエーション中のプロバイダの役割


画像の説明

次の各手順で、リコンシリエーション中のプロバイダの役割について説明します。

  1. リコンシリエーション・トランスポート・プロバイダのインスタンスをキャッシュで使用できない場合、initializeメソッドが呼び出され、このプロバイダのインスタンスが作成されます。

  2. リコンシリエーション・フォーマット・プロバイダのインスタンスをキャッシュで使用できない場合、initializeメソッドが呼び出され、このプロバイダのインスタンスが作成されます。

  3. 管理およびユーザー・コンソールで汎用テクノロジ・コネクタを作成している場合、リコンシリエーション実行のバッチ・サイズを指定できます。このパラメータを使用して、リコンシリエーション実行中にリコンシリエーション・エンジンがターゲット・システムからフェッチするレコードの総数をバッチに分割します。このパラメータのデフォルト値はAllです。

    バッチ・サイズを指定しなかった場合、リコンシリエーションのこの段階でリコンシリエーション・トランスポート・プロバイダのgetFirstPageメソッドが呼び出され、リコンシリエーション用に準備されているターゲット・システム・レコードの全体がフェッチされます。

    バッチ・サイズを指定した場合、リコンシリエーション・トランスポート・プロバイダのgetFirstPageメソッドが呼び出され、リコンシリエーション用にターゲット・システム・レコードの最初のバッチがフェッチされます。リコンシリエーション用のターゲット・システム・レコードのバッチが複数ある場合は、同一プロバイダのgetNextPageメソッドが(必要に応じて複数回)呼び出されます。

  4. リコンシリエーション・フォーマット・プロバイダのparseRecordsメソッドが呼び出され、TargetRecord値オブジェクト配列の各レコードが処理されます。このメソッドの出力はOIMRecord値オブジェクトの配列です。

  5. 汎用テクノロジ・コネクタの作成時に、「ソース」データセットから「リコンシリエーション・ステージング」データセットへのデータの移動中にデータを検証するため検証プロバイダを選択してある場合、次のように実行されます。

    1. 検証プロバイダのインスタンスが作成されます。

    2. OIMRecord値オブジェクト配列の各レコードに指定された属性に対して、それぞれの検証プロバイダのvalidateメソッドが実行されます。

    汎用テクノロジ・コネクタの作成時に検証プロバイダを選択しなかった場合、手順5は実施されず、OIMRecord値オブジェクトの配列の各要素は手順6に進みます。

  6. 汎用テクノロジ・コネクタの作成時に、「ソース」データセットから「リコンシリエーション・ステージング」データセットへのデータの移動中のデータを変更するため変換プロバイダを選択してある場合、次のように実行されます。

    1. 変換プロバイダのインスタンスが作成されます。

    2. 変換プロバイダのtransformDataメソッドにより、次のいずれかの出力として生成されたOIMRecord値オブジェクト配列が処理されます。

      • 各検証プロバイダのvalidateメソッド(検証プロバイダを選択した場合)

      • リコンシリエーション・フォーマット・プロバイダのparseRecordsメソッド(検証プロバイダを選択しなかった場合)

    汎用テクノロジ・コネクタの作成時に変換プロバイダを選択しなかった場合、手順6は実施されず、前の手順(手順4または手順5)で得られたOIMRecord値オブジェクト配列の各要素は手順7に進みます。

  7. この段階では、OIMRecord値オブジェクト配列は、「リコンシリエーション・モジュールのプロバイダおよびデータセット」で説明する「リコンシリエーション・ステージング」データセットに対応します。OIMRecord値オブジェクト配列の各要素がリコンシリエーション・エンジンに渡されます。

  8. リコンシリエーション手順の終了時には、リコンシリエーション・トランスポート・プロバイダのendメソッドが呼び出されます。このメソッドから、汎用テクノロジ・コネクタ・フレームワークでITリソースのTimestampパラメータに格納される文字列値が戻されます。このフレームワークでは、リコンシリエーションの実行が完了した段階がTimestampパラメータによりトラッキングされます。

プロビジョニング中のプロバイダの役割

図21-3は、プロビジョニング中のプロバイダの役割を示しています。

図21-3    プロビジョニング中のプロバイダの役割


画像の説明

次の各手順で、プロビジョニング中のプロバイダの役割について説明します。

  1. プロビジョニング・トランスポート・プロバイダのインスタンスをキャッシュで使用できない場合、initializeメソッドが呼び出され、このプロバイダのインスタンスが作成されます。

  2. プロビジョニング・フォーマット・プロバイダのインスタンスをキャッシュで使用できない場合、initializeメソッドが呼び出され、このプロバイダのインスタンスが作成されます。

  3. 汎用テクノロジ・コネクタの作成時に作成されるコネクタ・オブジェクトの1つに、汎用テクノロジ・コネクタ・アダプタがあります。このアダプタにより、プロビジョニング・データ・レコードが名前/値ペアのハッシュマップに変換されます。このハッシュマップにはプロセス・インスタンスのデータが含まれています。各ハッシュマップは、続いてOIMRecord値オブジェクトの要素に変換されます。この段階では、OIMRecord値オブジェクトは「「OIM」データセット」で説明する「OIM」データセットに対応します。

  4. 汎用テクノロジ・コネクタの作成時に、「OIM」データセットから「プロビジョニング・ステージング」データセットへのデータの移動中のデータを変更するため変換プロバイダを選択してある場合、次のように実行されます。

    1. 変換プロバイダのインスタンスが作成されます。

    2. 変換プロバイダのtransformDataメソッドにより、入力したOIMRecord値オブジェクトの指定の属性が処理され、これらのレコードが出力のOIMRecord値オブジェクトに変換されます。この段階では、OIMRecord値オブジェクトは「プロビジョニング・モジュールのプロバイダおよびデータセット」で説明する「プロビジョニング・ステージング」データセットに対応します。

  5. プロビジョニング・フォーマット・プロバイダのformatDataメソッドが呼び出され、OIMRecord値オブジェクトが処理されます。このプロセスの出力は、TargetOperation値オブジェクトです。

  6. プロビジョニング・トランスポート・プロバイダのsendDataメソッドが呼び出され、TargetOperation値オブジェクトがターゲット・システムに送信されます。

  7. プロビジョニング操作が作成リクエストの場合、結果は次のイベントのいずれかになります。

    • ターゲット・システムで作成操作が正常に完了した時点で、新しく作成されたユーザー・アカウントに割り当てられる「ID」フィールド値が、sendDataメソッドから戻されます。この値はその後、汎用テクノロジ・コネクタ・フレームワークに渡され、このフレームワークによってデータベースにポストされます。

    • 「ID」フィールド値が戻されない場合は、作成操作が失敗したとみなされます。その場合、管理およびユーザー・コンソールにエラー・メッセージが表示されます。

    • 名前/値ペアの作成後の段階で操作が失敗すると、管理およびユーザー・コンソールにエラー・メッセージが表示されます。

    プロビジョニング操作が更新または削除リクエストの場合、「ID」フィールドは名前/値ペアの1つです。このタイプのプロビジョニング・リクエストが送信された場合、結果は次のイベントのいずれかになります。

    • 名前/値ペアの作成後の段階で操作が失敗すると、管理およびユーザー・コンソールにエラー・メッセージが表示されます。

    • 「ID」フィールドの値は、更新操作または削除操作が正常に完了した時点で、プロビジョニング・トランスポート・プロバイダの実装に応じて戻される場合と戻されない場合があります。

      どちらの場合も、汎用テクノロジ・コネクタ・フレームワークでは「ID」フィールド値は必要ありません。

カスタム・プロバイダの作成

カスタム・プロバイダの作成は次の各手順に分類できます。

  1. プロバイダ要件の確認

  2. プロバイダ・パラメータの識別

  3. 値オブジェクトのJavaコード実装の開発

  4. プロバイダSPIメソッドのJavaコード実装の開発

  5. ロギングおよび例外処理のJavaコードの開発

  6. プロバイダXMLファイルの作成

  7. プロバイダのリソース・バンドル・エントリの作成

  8. プロバイダのデプロイ

プロバイダ要件の確認

プロバイダ要件を判断するためのガイドラインは、次の各項に分けて説明します。

リコンシリエーション・プロバイダ要件の確認

リコンシリエーション・プロバイダ要件の確認には、次のガイドラインが適用されます。

プロビジョニング・プロバイダ要件の確認

プロビジョニング・モジュール用プロビジョニング・プロバイダの要件の確認には、次のガイドラインが適用されます。

プロバイダ・パラメータの識別

プロバイダ・パラメータとは、プロバイダが目的の機能を実行する必要のある値です。たとえば、プロビジョニング・リクエスト・ファイルをターゲット・システム・サーバーにコピーするプロビジョニング・トランスポート・プロバイダには、ターゲット・システムへの接続に接続パラメータが必要になります。

汎用テクノロジ・コネクタの作成時に、その汎用テクノロジ・コネクタ用に選択するプロバイダのパラメータ値を指定します。

カスタム・プロバイダを作成する場合、そのプロバイダが機能するために必要なパラメータをすべて識別する必要があります。また、このようなパラメータをランタイム・パラメータと設計パラメータに分類する必要もあります。

ランタイム・パラメータは、プロバイダの設計に制約されない値を示します。たとえば、リコンサイルするデータ・ファイルが格納されているディレクトリの場所がランタイム・パラメータ値となります。設計パラメータは、プロバイダ設計の一部として定義される1つまたは複数の値を表します。たとえば、リコンシリエーション・フォーマット・プロバイダで解析可能なキャラクタ・セット・エンコーディングのフォーマットなどは、そのプロバイダの設計パラメータに分類されます。

値オブジェクトのJavaコード実装の開発

表21-1に示す値オブジェクトのJavaコード実装を開発します。この章で前述したように、このような値オブジェクトはプロバイダ操作の様々な段階で使用されます。


注意

  • 汎用テクノロジ・コネクタに含めない値オブジェクトのJavaコード実装については、開発する必要はありません。

  • Javadocは次の場所で参照できます。

    OIM_HOME/documentation/SDK/javadocs/gc/index.html
    
 

表21-1    プロバイダ操作中に使用される値オブジェクト 
使用領域  値オブジェクト  Javadocパッケージ 

メタデータの検出 

TargetSchema 

com.thortech.xl.gc.vo.designtime 

 

OIMSchema 

com.thortech.xl.gc.vo.designtime 

プロビジョニング 

TargetOperation 

com.thortech.xl.gc.vo.runtime 

リコンシリエーション 

TargetRecord 

com.thortech.xl.gc.vo.runtime 

 

OIMRecord 

com.thortech.xl.gc.vo.runtime 

各プロバイダ・タイプのサンプル・コード・ファイルには、次の場所のそれぞれのプロバイダ・タイプのディレクトリで参照できます。

OIM_HOME/xellerate/GTC/Samples

たとえば、TargetOperation値オブジェクトの実装を作成する場合は、次のサンプル・コード・ファイルを参照してください。

OIM_HOME/xellerate/GTC/Samples/provisioningTransportProvider/MapProvInput.java

プロバイダSPIメソッドのJavaコード実装の開発

プロバイダ操作中に使用されるSPIメソッドのJavaコード実装を開発します。この章で前述したように、SPIメソッドはプロバイダ操作の様々な段階で呼び出されます。各プロバイダのSPIメソッドの情報へのリンクは、JavadocのPackage com.thortech.xl.gc.spiのページを参照してください。

各プロバイダ・タイプのサンプル・コード・ファイルには、次の場所のそれぞれのプロバイダ・タイプのディレクトリで参照できます。

OIM_HOME/xellerate/GTC/Samples

たとえば、プロビジョニング・フォーマット・プロバイダを作成する場合は、次のサンプル・コード・ファイルを参照してください。

OIM_HOME/xellerate/GTC/Samples/provisioningFormatProvider/PrepareDataHMap.java


注意

汎用テクノロジ・コネクタに含めないプロバイダのSPIメソッドのJavaコード実装については、開発する必要はありません。 


ロギングおよび例外処理のJavaコードの開発

値オブジェクトおよびSPIメソッドのJavaコード実装には、ロギング機能を組み込むことをお薦めします。これにより、プロバイダ使用時に発生する可能性のあるエラーのトラブルシューティング・プロセスを簡略化できます。

汎用テクノロジ・コネクタ・フレームワーク用のロギング・モジュールは、Oracle Identity Managerのロギング拡張機能です。表21-2に、サポートされている各プロバイダ・タイプ固有の各モジュールを示します。

表21-2    サポートされる各プロバイダ・タイプに固有のロギング・モジュール 
ロギング・モジュール  汎用テクノロジ・コネクタ・フレームワークの
機能モジュール
 

XELLERATE.GC.PROVIDER.PROVISIONINGFORMAT 

プロビジョニング・フォーマット・プロバイダ 

XELLERATE.GC.PROVIDER.PROVISIONINGTRANSPORT 

プロビジョニング・トランスポート・プロバイダ 

XELLERATE.GC.PROVIDER.RECONCILIATIONTRANSPORT 

リコンシリエーション・トランスポート・プロバイダ 

XELLERATE.GC.PROVIDER.RECONCILIATIONFORMAT 

リコンシリエーション・フォーマット・プロバイダ 

XELLERATE.GC.PROVIDER.TRANSFORMATION 

変換プロバイダ 

XELLERATE.GC.PROVIDER.VALIDATION 

検証プロバイダ 

これらのモジュールを使用してカスタム・プロバイダにロギング機能を組み込むには、参照としてサンプル・コード・ファイルを使用できます。

カスタム・プロバイダに例外処理を組み込む方法の詳細は、Javadocおよびサンプル・コード・ファイルを参照してください。

プロバイダXMLファイルの作成

プロバイダXMLファイルには、汎用テクノロジ・コネクタ・フレームワークにプロバイダを登録するために必要なデータが含まれます。プロバイダXMLファイルは必ず作成してください。表21-3では、カスタム・プロバイダのプロバイダXMLファイルに含められる要素について説明します。


注意

1つのプロバイダXMLファイルを使用して複数のプロバイダを定義できます。また、作成する各プロバイダについて、それぞれプロバイダXMLファイルを作成することもできます。 


プロバイダXMLファイルは、次のファイルにあるスキーマ定義に従っている必要があります。

OIM_HOME/xellerate/GTC/Schema/Providers-def.xsd

表21-3    プロバイダXML ファイルの要素 
要素  説明 

Provider 

プロバイダXMLファイルのルート要素 

Reconciliation 

リコンシリエーション・プロバイダの記述に使用する構成要素の親要素 

Provisioning 

プロビジョニング・プロバイダの記述に使用する構成要素の親要素 

Transformation 

変換プロバイダの記述に使用する構成要素の親要素 

Validation 

検証プロバイダの記述に使用する構成要素の親要素 

ReconTransportProvider 

リコンシリエーション・トランスポート・プロバイダの記述に使用する構成要素の親要素

この要素には次の属性があります。

name: プロバイダの名前

class: プロバイダ実装のJavaクラスの名前 

ReconFormatProvider 

リコンシリエーション・フォーマット・プロバイダの記述に使用する構成要素の親要素

この要素には次の属性があります。

  • name: プロバイダの名前

  • class: プロバイダ実装のJavaクラスの名前

 

ProvFormatProvider 

プロビジョニング・フォーマット・プロバイダの記述に使用する構成要素の親要素

この要素には次の属性があります。

  • name: プロバイダの名前

  • class: プロバイダ実装のJavaクラスの名前

 

ProvTransportProvider 

プロビジョニング・トランスポート・プロバイダの記述に使用する構成要素の親要素

この要素には次の属性があります。

  • name: プロバイダの名前

  • class: プロバイダ実装のJavaクラスの名前

 

TransformationProvider 

変換プロバイダの記述に使用する構成要素の親要素

この要素には次の属性があります。

  • name: プロバイダの名前

  • class: プロバイダ実装のJavaクラスの名前

 

ValidationProvider 

検証プロバイダの記述に使用する構成要素の親要素

この要素には次の属性があります。

  • name: プロバイダの名前

  • class: プロバイダ実装のJavaクラスの名前

 

Configuration 

あらゆるタイプのプロバイダの構成要素の親要素 

Parameter 

プロバイダのパラメータに関する情報を提供する要素

Parameter要素には次の属性があります。

  • type: パラメータのタイプ(RuntimeまたはDesigntime)。

  • datatype: パラメータのデータ型(StringまたはBoolean)。ブール以外のデータ型のパラメータはすべて文字列で表す必要があります。

  • required: パラメータが必須であるかどうかの指定。

  • encrypted: パラメータの表示を暗号化するかどうかの指定。

  • name: パラメータの名前。

  • datalength: パラメータ値の文字数。

 

DefaultAttribute 

Configuration要素の子要素

この要素はProvFormatProvider要素にのみ含めます。この要素には次の属性があります。

  • datatype: パラメータのデータ型(StringまたはBoolean)。ブール以外のデータ型のパラメータはすべて文字列で表す必要があります。

  • name: パラメータの名前。

  • encrypted: パラメータの表示を暗号化するかどうかの指定。

  • size: デフォルトの属性のサイズ。

プロビジョニング・リクエストに含めるデータ属性の一部は、プロビジョニング操作を正常に完了するために不可欠なものです。プロビジョニング・フォーマット・プロバイダでは最終的なプロビジョニング入力データ・フォーマットが生成されるため、このプロバイダの定義にはこのような必須データ属性を含める必要があります。したがって、このような属性がターゲット・システムで必要な場合は、プロビジョニング・フォーマット・プロバイダXMLファイルでDefaultAttribute要素を使用して定義する必要があります。 

Response 

Configuration要素の子要素

この要素は、ProvFormatProviderProvTransportProviderTransformationProviderおよびValidationProviderの各要素にのみ含めます。これは、プロビジョニング・エンジンで呼び出されたプロバイダから戻されるレスポンスを表します。このレスポンスはOracle Identity Managerの管理およびユーザー・コンソールに表示されます。この要素には次の属性があります。

  • code: Oracle Identity Managerで生成されるプロセス・タスクのレスポンス・コードに対応

  • description: Oracle Identity Managerで生成されるプロセス・タスクのレスポンス・コードの説明に対応

注意:

プロビジョニング・フォーマット・プロバイダやプロビジョニング・トランスポート・プロバイダでは、ProvFormatProvider要素またはProvTransportProvider要素のname属性の文字数と、Response要素の文字数の合計を70文字以下にする必要があります。文字数の合計が70文字を超えると、レスポンス・コードはデータベースに格納できなくなり、エラーが発生します。 

各プロバイダ・タイプのサンプルXMLファイルの内容は、必要に応じて、次の場所のそれぞれのプロバイダ・タイプのディレクトリで参照できます。

OIM_HOME/xellerate/GTC/Samples

たとえば、プロビジョニング・フォーマット・プロバイダを作成する場合は、次のサンプルXMLファイルを参照してください。

OIM_HOME/xellerate/GTC/Samples/provisioningFormatProvider/PrepareDataHMapProvFormat.xml

プロバイダのリソース・バンドル・エントリの作成

リソース・バンドルとは、ロケール固有のテキスト文字列を含むファイルのことです。このようなテキスト文字列は、実行時にOracle Identity Managerで読み込まれ、管理およびユーザー・コンソールにGUI要素のラベルやメッセージとして表示されます。リソース・バンドルのファイル拡張子は.propertiesです。

サポートされる各言語のリソース・バンドルは、Oracle Identity Managerのインストール中にOracle Identity Managerサーバーにコピーされます。これには事前定義済プロバイダのリソース・バンドルも含まれます。

カスタム・プロバイダの場合、使用する各ロケールに応じたリソース・バンドル・エントリを作成する必要があります。リソース・バンドルの作成手順の概要を次に示します。

関連項目

リソース・バンドル・エントリ作成の詳細は、『Oracle Identity Managerグローバリゼーション・ガイド』を参照してください。

このマニュアルでは、リソース・バンドル・ファイルのネーミング規則などのガイドラインについて説明します。 

  1. テキスト・エディタで新規ファイルを開きます。

  2. このファイルに、次のテキスト文字列のエントリを作成します。


    注意

    • リソース・バンドル・ファイルでは、各行の一部として等号記号(=)の後にローカライズしたテキストを記述します。

    • この項で説明するProvider_TypeParameter_NameおよびRESPONSE_CODEのそれぞれの値は、「プロバイダXMLファイルの作成」で説明する手順の実行時にプロバイダXMLファイルに指定する値と同じである必要があります。

     

    • プロバイダ名

      プロバイダ名は次の形式で記述します。

      gc.provider.Provider_Type.Provider_Name=Label_string_in_the_required_language
      
      

      プロビジョニング・フォーマット・プロバイダのプロバイダ名エントリは、英語では次のようになります。

      gc.provider.ProvFormatProvider.SPML=SPML
      
      
    • プロバイダ・パラメータのラベルおよび説明

      プロバイダのパラメータのラベルおよびその説明は、次の形式で記述します。

      gc.Provider_Type.Provider_Name.Parameter_Name.label=Parameter_label_in_the_requ
      ired_language
      gc.Provider_Type.Provider_Name.Parameter_Name.description=Parameter_description
      _in_the_required_language
      
      

      プロビジョニング・フォーマット・プロバイダのプロバイダ・パラメータのラベルおよびその説明エントリは、英語では次のようになります。

      gc.ProvFormatProvider.SPML.targetID.label=Target ID
      gc.ProvFormatProvider.SPML.targetID.description=Target ID of the provisioning 
      target
      
      
    • レスポンス・コードおよび説明

      レスポンス・コードおよび説明は、次の形式で記述します。

      GC.GCPROV.PROVIDER_TYPE.PROVIDER_NAME.RESPONSE_CODE=Response_code_in_the_
      required_language
      GC.GCPROV.PROVIDER_TYPE.PROVIDER_NAME.RESPONSE_CODE.description=Description_in_ the_required_language

      プロビジョニング・フォーマット・プロバイダのレスポンス・コードおよび説明のエントリは、英語では次のようになります。

      GC.GCPROV.ProvFormatProvider.SPML.SPML_VELOCITY_PROPERTIES_NOT_READ=SPML 
      Velocity Properties Not Read
      GC.GCPROV.ProvFormatProvider.SPML.SPML_VELOCITY_PROPERTIES_NOT_READ.description
      =Necessary SPML template properties could not be read.
      
      
    • メタデータの検出のエラー・メッセージ

      メタデータの検出のエラー・メッセージは、次の形式で記述します。

      gc.error.Provider_Type.Provider_Name.ERROR_CODE=Error_Description
      
      

      ここで、ERROR_CODEは例外クラスのコンストラクタに引数として渡されるerrorCode文字列の値と同じである必要があります。たとえば、ReconciliationTransportExceptionクラスのコンストラクタの1つを次に示します。

      ReconciliationTransportException(java.lang.String errorCode, java.lang.String 
      isMessage)
      
      

      リソース・バンドルでは、errorCode文字列に考えられるすべての値のための行を追加する必要があります。

      リコンシリエーション・トランスポート・プロバイダのメタデータの検出エラー・メッセージは、英語では次のようになります。

      gc.error.ReconTransportProvider.SharedDrive.NO_READ_FILE=There are no readable 
      files to detect metadata.
      
      
  3. リソース・バンドルを保存して閉じます。

プロバイダのデプロイ

プロバイダをデプロイするには、次の手順を実行します。

  1. JARファイルを次のようにデプロイします。

    1. Javaコード・ファイルをすべてコンパイルし、JARファイルにパッケージ化します。

      次のJARファイルには、すべてのサンプル・コード・ファイルのコード・ファイルが含まれます。

      OIM_HOME/xellerate/GTC/Samples/xliGTCProviderSamples.jar
      
      
    2. JARファイルを次のディレクトリにコピーします。

      OIM_HOME/xellerate/JavaTasks
      


      注意

      クラスタ化されている環境では、作成するそれぞれのファイルをクラスタの各ノードの対応ディレクトリにコピーする必要があります。 


  2. プロバイダXMLファイルを次のようにデプロイします。

    1. プロバイダXMLファイルを次のディレクトリにコピーします。

      OIM_HOME/xellerate/GTC/ProviderDefinitions
      


      注意

      クラスタ化されている環境では、作成するそれぞれのファイルをクラスタの各ノードの対応ディレクトリにコピーする必要があります。 


    2. Oracle Identity Managerを再起動します。

    3. 次のようにプロバイダXMLファイルが正しく登録されているかどうかを確認します。

      i. 管理およびユーザー・コンソールにログインします。

      ii.「汎用テクノロジ・コネクタ」を開き、「作成」をクリックします。プロバイダXMLファイルでエラーが発生した場合は、エラー・メッセージが表示されます。

      エラー・メッセージが表示される場合、XMLファイル内で問題を修正し、Oracle Identity Managerを再起動して手順iと手順iiを繰り返します。

      この手順は「作成」をクリックしてもエラー・メッセージが表示されなくなるまで繰り返します。

  3. プロバイダのリソース・バンドルを次のようにデプロイします。

    1. リソース・バンドルを次のディレクトリにコピーします。

      OIM_HOME/xellerate/connectorResources
      


      注意

      クラスタ化されている環境では、作成するそれぞれのファイルをクラスタの各ノードの対応ディレクトリにコピーする必要があります。 


    2. 新しいリソース・バンドル・エントリを有効にするには、PurgeCacheスクリプトを実行するか、アプリケーション・サーバーを再起動します。PurgeCacheユーティリティの実行の詳細は、『Oracle Identity Managerベスト・プラクティス・ガイド』を参照してください。

プロバイダの再利用

フォーマット・プロバイダとトランスポート・プロバイダはペアで機能します。リコンシリエーションの実行中、リコンシリエーション・トランスポート・プロバイダの出力がリコンシリエーション・フォーマット・プロバイダに渡されます。プロビジョニングの実行中には、プロビジョニング・フォーマット・プロバイダの出力がプロビジョニング・トランスポート・プロバイダに渡されます。つまり、トランスポート・プロバイダとフォーマット・プロバイダの実装は、この間で渡される値オブジェクトの実装を介してリンクしています。この依存性は、フォーマット・プロバイダおよびトランスポート・プロバイダの再利用に関するガイドラインの基礎となります。

一方、検証プロバイダや変換プロバイダには、他のプロバイダに対してこのような依存性はありません。そのため、検証プロバイダおよび変換プロバイダの再利用に関するガイドラインはありません。検証プロバイダと変換プロバイダは、事前定義されているものでも、カスタム・プロバイダとして作成したものでも再利用できます。これは、これらのプロバイダの動作が、ターゲット・システムのデータ・フォーマットやデータ転送メカニズムに限定されていないためです。

フォーマット・プロバイダおよびトランスポート・プロバイダの再利用に関するガイドラインは、次の各項に分けて説明します。

リコンシリエーション・プロバイダの再利用

「リコンシリエーション中のプロバイダの役割」で説明するように、リコンシリエーション・トランスポート・プロバイダとリコンシリエーション・フォーマット・プロバイダの間のデータ交換には、TargetRecord値オブジェクトが使用されます。リコンシリエーション・トランスポート・プロバイダにより、リコンシリエーション実行中にフェッチされたターゲット・システム・レコードに対してTargetRecord値オブジェクトの配列が作成されます。その後、リコンシリエーション・フォーマット・プロバイダにより、値オブジェクト配列のデータが処理され、リコンシリエーション・エンジンに渡されます。

ユーザーの組織の操作環境に、TS1およびTS2という2つのターゲット・システムがあるとします。TS1では、リコンシリエーション中のデータ抽出にWebベースのインタフェースを利用できます。TS2では、そのアイデンティティ・ストアのデータを他のアプリケーションで読み取れるようにするAPIが用意されています。どちらのターゲット・システムでも同じデータ・フォーマットがサポートされています。両方のターゲット・システムのユーザー・データをリコンサイルする場合、各ターゲット・システムに対して汎用テクノロジ・コネクタを1つずつ作成する必要があります。それぞれの汎用テクノロジ・コネクタには、リコンシリエーション・トランスポート・プロバイダを作成する必要があります。ただし、リコンシリエーション・フォーマット・プロバイダは、それぞれの汎用テクノロジ・コネクタに対して作成するのではなく、1つのみ作成してそれを再利用できます。同様に、TS1およびTS2で(同じデータ・フォーマットをサポートしていない場合でも)同じデータ転送メカニズムがサポートされていれば、リコンシリエーション・トランスポート・プロバイダを再利用して別のリコンシリエーション・フォーマット・プロバイダを作成することが可能です。

リコンシリエーション・トランスポート・プロバイダを再利用する場合は、TargetRecord値オブジェクトの実装に、リコンシリエーション・フォーマット・プロバイダで実行される関数に固有のコードが含まれないようにしてください。リコンシリエーション・フォーマット・プロバイダを再利用する場合は、TargetRecord値オブジェクトの実装に、リコンシリエーション・トランスポート・プロバイダで実行される関数に固有のコードが含まれないようにしてください。

事前定義リコンシリエーション・プロバイダの再利用

共有ドライブ・リコンシリエーション・トランスポート・プロバイダおよびCSVリコンシリエーション・フォーマット・プロバイダの実装は事前定義プロバイダであり、データ・フォーマットと単一のデータ転送メカニズムの固定の組合せ向けに作成されています。共有ドライブ・リコンシリエーション・トランスポート・プロバイダでは、フラット・ファイルからデータを読み取り、CSVリコンシリエーション・フォーマット・プロバイダにTargetRecord値オブジェクトの配列を渡します。共有ドライブ・リコンシリエーション・トランスポート・プロバイダの実装は、ページ・リコンシリエーションと複数値(子)データ・リコンシリエーションという2つの要素に基づいています。この2つの要素では、TargetRecord値オブジェクトの配列を作成する前に、プロバイダでのターゲット・システムのデータ解析を可能にする必要があります。つまり、共有ドライブ・リコンシリエーション・トランスポート・プロバイダではターゲット・システム・データの特定の型を解析でき、CSVリコンシリエーション・フォーマット・プロバイダには共有ドライブ・リコンシリエーション・トランスポート・プロバイダから提供される出力のみを使用できるため、相互依存の関係になっています。そのため、CSVリコンシリエーション・フォーマット・プロバイダのパラメータは、共有ドライブ・リコンシリエーション・トランスポート・プロバイダのパラメータとバンドルされています。

このような理由のため、共有ドライブ・リコンシリエーション・トランスポート・プロバイダとカスタム・リコンシリエーション・フォーマット・プロバイダは併用できず、またCSVフォーマット・プロバイダとカスタム・リコンシリエーション・トランスポート・プロバイダは併用できません。

プロビジョニング・プロバイダの再利用

「プロビジョニング中のプロバイダの役割」で説明するように、プロビジョニング・トランスポート・プロバイダとプロビジョニング・フォーマット・プロバイダの間のデータ交換には、TargetOperation値オブジェクトが使用されます。プロビジョニング・フォーマット・プロバイダで、ターゲット・システムへの送信用にプロビジョニング・データからTargetOperation値オブジェクトが作成されます。次にプロビジョニング・トランスポート・プロバイダで、この値オブジェクトがターゲット・システムに渡されます。

ユーザーの組織の操作環境に、TS1およびTS2という2つのターゲット・システムがあるとします。TS1では、プロビジョニング・リクエスト・データの受信にWebベースのインタフェースを利用できます。TS2では、そのアイデンティティ・ストアにプロビジョニング・データを書き込めるようにするAPIが用意されています。どちらのターゲット・システムでも同じデータ・フォーマットがサポートされています。両方のターゲット・システムでプロビジョニング操作を実行する場合、各ターゲット・システムに対して汎用テクノロジ・コネクタを1つずつ作成する必要があります。それぞれの汎用テクノロジ・コネクタには、プロビジョニング・トランスポート・プロバイダを作成する必要があります。ただし、プロビジョニング・フォーマット・プロバイダは、各汎用テクノロジ・コネクタに対して作成するのではなく、1つのみ作成してそれを再利用できます。

TS1およびTS2でサポートされているデータ転送メカニズムが同じであり、データ・フォーマットがそれぞれ異なる場合、プロビジョニング・トランスポート・プロバイダを再利用して別のプロビジョニング・フォーマット・プロバイダを作成できます。

プロビジョニング・トランスポート・プロバイダを再利用する場合は、TargetOperation値オブジェクトの実装に、プロビジョニング・フォーマット・プロバイダで実行される関数に固有のコードが含まれないようにしてください。プロビジョニング・フォーマット・プロバイダを再利用する場合は、TargetOperation値オブジェクトの実装に、プロビジョニング・トランスポート・プロバイダで実行される関数に固有のコードが含まれないようにしてください。

事前定義プロビジョニング・プロバイダの再利用

ターゲット・システムがWebサービスの場合、Webサービス・プロビジョニング・トランスポート・プロバイダと、ユーザーが作成する任意のカスタム・プロビジョニング・フォーマット・プロバイダを併用できます。次に、この例を示します。

このマニュアルで前述したように、SPMLプロビジョニング・フォーマット・プロバイダではSPML仕様に従って記述されているプロビジョニング操作のサブセットのみがサポートされます。あらゆるSPMLプロビジョニング操作をサポートする、カスタム・プロビジョニング・フォーマット・プロバイダを開発できます。ターゲット・システムがWebサービスの場合、Webサービス・プロビジョニング・トランスポート・プロバイダを使用して、カスタム・プロビジョニング・フォーマット・プロバイダからターゲット・システムにSPMLリクエストを送信できます。

同様に、SPMLプロビジョニング・フォーマット・プロバイダとカスタム・プロビジョニング・トランスポート・プロバイダを併用して、SPMLリクエストをSPMLベースのターゲット・システムに送信することもできます。

SPMLプロビジョニング・フォーマット・プロバイダで作成され、Webサービス・プロビジョニング・トランスポート・プロバイダの入力として使用されるTargetOperation値オブジェクトの実装について、次に示します。

com.thortech.xl.gc.impl.prov.WSTransportTargetOperation

このクラスの詳細は、Javadocを参照してください。

SPMLプロビジョニング・フォーマット・プロバイダを再利用する場合、このクラスのインスタンスを入力として受け入れ、関連するsetメソッドを呼び出すカスタム・トランスポート・プロバイダを作成する必要があります。同様に、Webサービス・プロビジョニング・トランスポート・プロバイダを再利用する場合、このクラスのインスタンスを作成し、関連するgetメソッドを呼び出すカスタム・プロビジョニング・フォーマット・プロバイダを作成する必要があります。


戻る 次へ
Oracle
Copyright © 2007, 2008 Oracle Corporation.

All Rights Reserved.
目次
目次
索引
索引