OIM 11g R2のカスタム・プラグインとカスタム・イベント・ハンドラの違いは何ですか?
事前にたくさんありがとう...
サンギタ
プラグインは、OIMサーバー内で実行できるコードのモジュールです。plugin.xml
これには、それらを識別するメタデータ ( ) とともに実行される Java クラスが含まれています。プラグインには多くの種類があります。種類は、プラグインが実装/拡張する Java インターフェースまたは抽象クラスによって決まります。
OIM のコア コンポーネントの 1 つはオーケストレーション エンジンです。コア ID オブジェクト (ユーザー、ロールなど) の作成/更新/削除トランザクションを処理します。各オーケストレーション プロセスには一連のイベント ハンドラの実行が含まれ、各イベント ハンドラは を実装するプラグインoracle.iam.platform.kernel.spi.EventHandler
です。多くはそのまま出荷され、カスタムのものを作成することもできます。たとえば、イベント ハンドラーをインストールして、任意のユーザーの作成後に実行 (後処理) することができます。
ただし、ログイン名生成プラグイン ( oracle.iam.identity.usermgmt.api.UserNamePolicy
) など、他の種類のプラグインもあります。これらのプラグインの一部は、すぐに使用できるイベント ハンドラーによって実際に呼び出されます。イベント ハンドラは非常に一般的な API です (概念はデータベース トリガーに似ています)。強力な機能を備えていますが、その機能に注意しないと、OIM 環境が不安定になる可能性があります。対照的に、他のプラグイン インターフェイスは 1 つの特定のタスク (新しいユーザーのログイン名の生成など) のみを実行するため、それらを使用するリスクははるかに少なくなります。より具体的なタイプのプラグインを使用して問題を解決できる場合は、イベント ハンドラーを使用するよりも優先して実行してください。
また、これらのより具体的なプラグイン・インタフェースの一部は、すぐに使用できるイベント・ハンドラによってコールされますが、オーケストレーション・エンジンによってコールされるのではなく、OIMの他のコンポーネントによってコールされるものもあります。たとえば、スケジュールされたタスクはオーケストレーション エンジンではなく、組み込みの Quartz スケジューラによって実行されます。oracle.iam.scheduler.vo.TaskSupport
カスタム スケジュール タスクは、抽象クラスを拡張します。
すべてのプラグインにはプラグイン フレームワーク メタデータ ( plugin.xml
) が必要ですが、特定のタイプのプラグインには、そのタイプに固有の追加のメタデータが必要です。たとえば、イベント ハンドラはEventHandlers.xml
MDS にアップロードする必要があります。同様に、スケジュールされたタスクはファイルで定義する必要がありtask.xml
ます。
また、OIM 9.x にも「イベント ハンドラ」という概念がありましたが、そのテクノロジは OIM 11g とは異なっていました。OIM 9.xのイベント・ハンドラは class を拡張しますcom.thortech.xl.client.events.tcBaseEvent
。原則として、9.x イベント ハンドラは 11g ではサポートされなくなりました。
詳細は、OIM 11.1.2.3開発者ガイドの次の章を参照してください:プラグイン開発の基本については第17章、カスタム・イベント・ハンドラの開発については第18章、カスタムのスケジュール済タスクの開発については第16章、カスタムのユーザー名と共通の開発については付録B名前の生成/検証ポリシー。
また、いくつかのサンプルが必要で、My Oracle Support にアクセスできる場合は、次のドキュメントを確認してください。