コンテキストは、Oracle Identity Managerの操作が実行される環境です。たとえば、Oracle Identity Manager管理およびユーザー・コンソールで行われるユーザー作成の操作は、Webコンテキストで実行されます。この操作が実行されるコンテキストまたは環境は、次のとおりです。
操作を実行するユーザー
ユーザー作成のリクエストを送信するコンピュータのIPアドレス
リクエストの送信日時
アプリケーション・サーバーへのアクセスに使用されるプロキシ
たとえば、バルク・ロード・ユーティリティを実行してユーザーを作成する場合は、バルク・ロード・ユーティリティを起動したユーザー、操作を実行するコンピュータなどがコンテキストに含まれます。
コンテキストは、メイン・メモリーで保持されます。一連のコンテキスト変数で構成されており、各コンテキスト変数には名前と値の両方が含まれています。操作に関連のある各機能コンポーネント(リクエスト管理、リコンシリエーション、通知など)では、コンテキストに値を追加できます。コンテキストの値は、設定のみ可能であり、変更はできません。コンテキストの値は、操作に関連のあるコンポーネント間で情報をやりとりする手段として機能します。
コンテキストの変数値は、必要な場合にのみ、メモリーにロードされます。これにより、パフォーマンスが向上します。コンテキストは、イベント・ハンドラにより要求される一般的な値のキャッシュとしても機能します。これにより、必要な値を毎回、リポジトリからフェッチする必要がなくなります。
子コンテキストは、操作の進行中に開始されるサブコンテキストです。たとえば、ユーザー作成の操作にアクセス・ポリシーを介したリソースのプロビジョニングが含まれている場合、リソース・プロビジョニングはアクセス・ポリシー・コンテキストで実行され、これはユーザーが作成されるコンテキストの子コンテキストとなります。これは、コンテキストのネストおよびコンテキストのスタックが可能であることを意味します。機能コンポーネントによって新規コンテキストが作成され、作成された新しいコンテキストを使用して追加の処理を開始できます。
コンテキスト・マネージャでは、次のコンテキスト・タイプがサポートされています。
SELF: 操作は、Oracle Identity Managerセルフ・サービスを介して開始されます。
ADMIN: 操作は、アイデンティティ管理または拡張管理を介して開始されます。これがデフォルトのコンテキストです。
RECON: 操作は、リコンシリエーションによって実行されます。
REQUEST: 操作は、リクエストによって実行されます。
POLICY: 操作は、アクセス・ポリシーがあるために実行されます。
ContextManager.getContextType()のコールでは、コンテキストのタイプを伝える必要があります。様々なコンテキストで取得できる情報の一部を次に示します。
リコンシリエーション・コンテキスト: リコンシリエーション・イベントの作成元であるプロファイルを、ContextManager.getValue("profileName")メソッド・コールにより取得できます。
ADMINコンテキストで実行されるスケジュール済タスク: 取得できる情報の一部を次に示します。
ジョブ名: ContextManager.getValue("JOBNAME")
タスク名: ContextManager.getValue("TASKNAME")
リクエスト・コンテキスト: 次のコードを使用してリクエスト・キーを取得できます。
HashMap<String, ContextAware> requestContext = (HashMap<String, ContextAware>) ContextManager.getValue("requestData", true); requestContext.get("requestKey");
ポリシー・コンテキスト: ContextManager.getContextKey()は、評価されるポリシーを提供します。複数のポリシーが適用可能な場合は、優先度が最も高いポリシー・キーが返されます。