Oracle Identity Managerで発生したイベントに関する情報は、リクエスタ、受益者、管理者などのさまざまなユーザーに送信する必要があります。このイベントに関する情報は、通知電子メール・メッセージ形式の通知サービスを使用して送信されます。Oracle Identity Managerでは通知サービスを使用してすべての通知関連操作を実行できます。
イベントとは、Oracle Identity Managerで発生する操作で、ユーザー作成、リクエスト開始またはユーザーが作成した任意のカスタム・イベントなどが含まれます。イベントは、ビジネス操作の一部として、またはエラー生成を介して生成されます。イベント定義は、イベントを記述するメタデータです。イベントのメタデータを定義するには、機能コンポーネントでサポートされるすべてのイベント・タイプを識別することが重要です。たとえば、スケジューラ・コンポーネントの一部として、スケジュール済ジョブ実行の失敗とスケジューラの停止に対してメタデータを定義できます。ジョブの失敗またはスケジューラの停止のたびにイベントが発生し、イベントに関連付けられている通知が送信されます。
イベントで使用可能なデータを使用して、通知のコンテンツが作成されます。イベントに定義されたさまざまなパラメータにより、システムは適切な通知テンプレートを選択できます。イベントに定義されている各種のパラメータは、テンプレート設計時に使用可能にできるイベント変数をシステムが決定する際に役立ちます。
通知テンプレートは、通知を送信するために使用されます。これらのテンプレートには、より詳細な通知を提供するために、使用可能なデータを参照する変数が含まれています。通知が送信されるチャネルは、通知プロバイダと呼ばれます。このリリースでは、通知プロバイダとして電子メール通知プロバイダのみを使用できます。バックエンドでは、通知エンジンが通知の生成と通知プロバイダを利用した通知の送信を担当します。
注意: 通知を送信するには、XL.MailServerシステム・プロパティが構成されている必要があります。このシステム・プロパティの詳細は、「Oracle Identity Managerのシステム・プロパティ」を参照してください。 |
表3-1に示すように、Oracle Identity Managerにはデフォルトの通知テンプレート・セットが用意されています。
表3-1 デフォルトの通知テンプレート
通知テンプレート | 説明 |
---|---|
バルク・リクエスト作成 |
バルク・リクエストの作成中に通知を提供するためのテンプレート |
ユーザー・セルフ・サービス通知の作成 |
新しいユーザーの作成後に通知を提供するためのテンプレート |
終了日 |
報告者の終了日を経過したときにマネージャに通知を送信するためのテンプレート |
生成されたパスワードの通知 |
Oracle Identity Managerによるパスワード生成後に通知を提供するためのテンプレート |
リクエスト作成 |
リクエストの作成中に通知を提供するためのテンプレート |
リクエスト・アイデンティティ作成 |
ユーザーの作成のリクエスト中に通知を提供するためのテンプレート |
リクエスト・ステータス変更 |
リクエスト・ステータスの変更中に通知を提供するためのテンプレート |
パスワードのリセット |
パスワードがリセットされた後で通知を提供するためのテンプレート |
ユーザーが削除されました |
終了日を経過したため報告者のユーザー・アカウントが削除されたときに、マネージャに通知を送信するためのテンプレート |
プロキシ通知の追加 |
ユーザーにプロキシが追加された後で通知を提供するためのテンプレート |
次の各項で、通知テンプレートについて説明します。
各イベントに対して、通知エンジンで定義される特定のスキーマを持つXMLファイルを作成する必要があります。そのスキーマ(.xsdファイル)に準拠して、イベントの概要を定義するXMLファイルが作成されます。イベントが定義されると、そのイベントの通知テンプレートを定義できます。
イベント・ファイルは通知エンジンで定義されるスキーマ、NotificationEvent.xsdに準拠している必要があります。イベント・ファイルにはイベントに関する基本情報が含まれます。
注意: NotificationEvent.xsdファイルは、MDSのiam\iam-product\features\notification\metadataディレクトリにあります。 |
次にイベントXMLファイルのサンプルを示します。
<?xml version="1.0" encoding="UTF-8"?> <Events xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../metadata/NotificationEvent.xsd"> <EventType name="User Created"> <StaticData> <Attribute DataType="X2-Entity" EntityName="User" Name="Granted User"/> <Attribute DataType="X2-Entity" EntityName="User" Name="Grantee User"/> <Attribute DataType="91-Entity" EntityName="User Group" Name="User Grp"/> </StaticData> <Resolver class="oracle.iam.notification.DemoResolver"> <Param DataType="91-Entity" EntityName="Resource" Name="ResourceInfo"/> </Resolver> </EventType> </Events>
このイベントXMLファイルには、次の要素があります。
EventType name: イベントに通知テンプレートを作成する際に利用できるイベントの名前。
StaticData: 静的パラメータのリスト。ユーザーは、このパラメータ・セットに、データ依存ではないパラメータを追加できます。つまり、この要素では、通知テンプレートが構成されるときに表示される静的データを定義します。たとえば、ユーザー・エンティティはデータ依存ではなく、解決されたときに、すべてのイベント・インスタンスおよび通知テンプレートに対して同じ属性セットを持ちます。
Param DataType: 動的パラメータのリスト。ユーザーは、このパラメータ・セットに、データ依存のパラメータを追加できます。たとえば、Resourceエンティティはデータ依存です。このフィールドに対応する参照がUIに表示されます。ユーザーがこのリソース・オブジェクトを選択すると、そのコールは、ツリー(ユーザーはここからテンプレートで使用する属性を選択します)に表示されるフィールドを取得するために提供されているリゾルバ・クラスに向かいます。
注意: 使用可能なデータとは、テンプレートにトークンとして組み込むことのできる属性のリストです。これらのトークンは、ランタイム時にリゾルバ・クラスによって渡される値と置き換えられます。トークンの例は、「通知テンプレートの作成」のステップ7を参照してください。 「通知テンプレートの作成」に記載されているように、通知テンプレートを作成する際に使用可能なデータがドロップダウン・リストに表示されます。 選択されたデータは単一の属性であり、ユーザーが属性名をコピーして通知テンプレートに貼り付ける際に役立ちます。選択されたデータの属性名は、「使用可能なデータ」リストで選択されたものと同じです。 |
検索でサポートされる動的エンティティは、ユーザー、リソースおよび組織です。これらのエンティティ名をParam DataType要素で指定する必要があります。
注意: <Param DataType>要素は、必須要素ではありません。ただし、使用する際は、エンティティ名にUser、ResourceまたはOrganizationを指定する必要があります。 |
Resolver class: リゾルバ・クラスは、通知ごとに定義する必要があります。これは、通知作成画面で使用できるパラメータと、それらのパラメータを通知の送信時に置き換える方法を定義します。つまり、リゾルバ・クラスは、ランタイム時にデータを動的に解決し、UIに属性を表示します。リゾルバ・クラスの実装の詳細は、「リゾルバ・クラスの作成」を参照してください。
通知サービスはMDSからXMLファイルを読み込みます。イベントXMLファイルは、MDSインポートおよびエクスポート・ユーティリティを使用してMDSにアップロードされます。詳細は、「通知イベントのデプロイ」を参照してください。
すべてのクラスが、NotificationEventResolverインタフェースを実装する必要があります。このインタフェースは、次のメソッドを提供します。
getAvailableDataメソッド
public List<NotificationAttribute> getAvailableData(String eventType, Map<String, Object> params);
このAPIは、使用可能なデータ変数のリストを戻します。この変数は、テンプレートの作成時や変更時にUI上で使用でき、ユーザーはこの変数を選択して、この変数をテンプレート上のメッセージの一部にすることができます。
eventTypeパラメータは、テンプレートが読み取られるイベント名を指定します。
paramsパラメータは、使用可能なデータがフェッチされるエンティティ名および対応する値を持つマップです。次に例を示します。
map.put("Resource", "laptop");
これは、リゾルバ・クラスで指定したコードに従って、laptopリソースまたはその他のデータに関連付けられたフィールドをフェッチする際に役立ちます。
サンプル・コードを次に示します。
/** * this is a dummy implementation and uses hardcoded values * Implementors need to iterate the XML as found through the event type * params : will have all the specific values that your resolver needs * for instance resource name = "laptop" that you may want here to be resolved through your custon implementation */ List<NotificationAttribute> list = new ArrayList<NotificationAttribute>(); NotificationAttribute subatr = new NotificationAttribute(); subatr.setName("Dynamic1"); subatr.setType("91-Entity"); subatr.setEntityName("Resource"); subatr.setRequired(false); subatr.setSearchable(true); subatr.setSubtree(lookup91EntityMetaData("resource"), params.get(0)); list.add(subatr);
メイン・ツリーにはエンティティ情報が含まれ、サブツリーにはUIで使用可能なすべてのノードが含まれます。サブツリー内の各ノードからの名前フィールドは、UI上で選択できます。
getReplacedDataメソッド
HashMap<String, String> getReplacedData(String eventType, Map<String, Object> params);
このAPIは、通知を送信するときに、実行時にテンプレートで提示された変数の解決された値を戻します。
eventTypeパラメータは、テンプレートが読み取られるイベント名を指定します。
paramsパラメータは、テンプレート内の残りの変数を解決するためにリゾルバで必要とされるベース値(usr_key、obj_keyなど)を持つマップです。
サンプル・コードを次に示します。
HashMap<String, Object> resolvedData = new HashMap<String, Object>(); resolvedData.put("shortDate", new Date()); resolvedData.put("longDate", new Date()); String firstName = getUserFirstname(params.get("usr_key")); resolvedData.put("fname", firstName); resolvedData.put("lname", "lastname"); resolvedData.put("count", "1 million"); return resolvedData;
通知イベントをデプロイするには、次の手順を実行します。
イベント・メタデータXMLファイルをメタデータ・ストア(MDS)にアップロードします。Oracle Identity Managerでは、MDSリポジトリに対してエクスポートとインポートを行うためのユーティリティが提供されています。
MDSユーティリティの詳細は、Oracle Fusion Middleware Oracle Identity Manager開発者ガイドのMDSユーティリティとユーザーが修正可能なメタデータ・ファイルに関する説明を参照してください。
リゾルバ・クラスを含むJARファイルを、Oracle Identity Managerデータベースにアップロードします。リソース・バンドルおよびJARファイルをOracle Identity Managerデータベースにアップロードするためのユーティリティは、OIM_HOME/bin/ディレクトリにあります。
リソース・バンドルとJARをアップロードするためのユーティリティの詳細は、Oracle Fusion Middleware Oracle Identity Manager開発者ガイドのJARおよびリソース・バンドルのアップロード・ユーティリティに関する説明を参照してください。
注意: 発生する各イベントに対してXMLファイルを構成する必要があります。XMLファイルは、各イベントの動作を定義します。最初に、イベントのXMLを構成する必要があります。これを行った後で、イベントに対して通知テンプレートを作成できます。 イベントXMLファイルの作成については、「イベント・メタデータの定義」を参照してください。 |
管理およびユーザー・コンソールにログインします。拡張管理に移動します。
「システム管理」タブをクリックし、次に「通知」タブをクリックします。
左ペインの「アクション」メニューから、「作成」を選択します。
「作成」ページで、「テンプレート情報」セクションの下の次のフィールドに値を入力します。
テンプレート名: テンプレート名を入力します。
説明テキスト: テンプレートの簡単な説明を入力します。
注意: 「説明テキスト」フィールドは翻訳できず、表示は英語のみになります。 |
「イベントの詳細」セクションの下で、次の内容を実行します。
「使用可能なイベント」リストから、通知テンプレートを作成するイベントを選択します。選択内容に応じて、他のフィールドが「イベントの詳細」セクションに表示されます。
「リソース」フィールドで、検索からリソースを選択します。これは、XML定義のParam DataType要素によって定義された動的データです。この要素の詳細は、「イベント・メタデータの定義」を参照してください。
「ロケール情報」セクションの下で、次のフィールドに値を入力します。
注意: デフォルトのロケールの情報はPTY表に格納されており、そこから取得されます。 |
エンコーディング形式を指定するには、UTF-8かASCIIのいずれかを選択します。
「メッセージの件名」フィールドに、通知の件名を入力します。
「タイプ」オプションから、メッセージを送信するデータ・タイプを選択します。「HTML」か「Text/Plain」のどちらかを選択できます。
「ショート・メッセージ」フィールドに、メッセージの短縮バージョンを入力します。
「ロング・メッセージ」フィールドに、通知として送信されるメッセージを入力します。ステップ7を参照してください。
通知として送信するメッセージ内で、使用可能なデータのトークンを使用するには、次の手順を実行します。
リストから属性を選択します。この属性は、「選択したデータ」フィールドに表示されます。
属性をコピーして${}の内側に配置し、メッセージ・テキストに追加します。たとえば、選択したデータがFA_Territoryの場合、${FA_Territory}としてテキスト内に含めます。
図3-1に、サンプル値を使用した「通知テンプレートの作成」ページを示します。
すべてのフィールドに必要な値を入力し終わったら、「保存」をクリックします。
通知テンプレートの作成を確認するメッセージが表示されます。「OK」をクリックします。
拡張管理を使用して、通知テンプレートの単純検索または拡張検索を実行できます。
通知テンプレートの単純検索を実行するには:
Oracle Identity Administrationにログインします。
「システム管理」タブをクリックし、次に「通知」タブをクリックします。
「検索」フィールドの横のアイコンをクリックします。図3-2に示すように、左ペインに既存の通知テンプレートすべてが表示されます。
表示するテンプレートを選択します。選択した通知テンプレートの詳細が、右ペインに表示されます。
通知テンプレートの拡張検索を実行するには:
Oracle Identity Administrationの左ペインで、「拡張検索」をクリックします。図3-3に示すように、「拡張検索」ページが表示されます。
次の一致オプションのいずれかを選択します。
すべて: このオプションを選択すると、検索はAND条件で実行されます。つまり、ユーザー入力されたすべての「検索」フィールドに基づいて検索操作が行われます。ユーザー入力がない「検索」フィールドは考慮されません。
いずれか: このオプションを選択すると、検索はOR条件で実行されます。つまり、指定された選択基準のいずれかに一致する場合に検索操作が成功します。
「テンプレート名」、「イベント名」、「件名の詳細」フィールドで検索基準を指定します。これらのフィールドのうち、検索に含めたくないフィールドは、そのフィールドの横にあるアイコンをクリックして削除できます。検索に含めるフィールドを追加するには、「フィールドの追加」をクリックして、リストからフィールド名を選択します。
「検索」をクリックします。図3-4に示すように、検索結果表にテンプレート名、イベント名および件名の詳細が表示されます。
Oracle Identity Administrationにログインします。
「システム管理」タブをクリックし、次に「通知」タブをクリックします。
「検索」フィールドの横のアイコンをクリックします。左ペインに既存の通知テンプレートがすべて表示されます。変更するテンプレートを選択します。図3-5に通知テンプレートの詳細を示します。
目的の値を変更し、「保存」をクリックします。
通知テンプレートの変更を確認するメッセージが表示されます。「OK」をクリックします。
Oracle Identity Administrationにログインします。
「システム管理」タブをクリックし、次に「通知」タブをクリックします。
「検索」フィールドの横のアイコンをクリックします。左ペインに既存の通知テンプレートがすべて表示されます。削除するテンプレートを選択します。
「アクション」リストから、「削除」をクリックします。削除操作の確認を求めるメッセージが表示されます。「OK」をクリックします。削除操作を確認するメッセージが表示されます。
Oracle Identity Administrationにログインします。
「システム管理」タブをクリックし、次に「通知」タブをクリックします。
「検索」フィールドの横のアイコンをクリックします。左ペインに既存の通知テンプレートがすべて表示されます。ロケールを追加するテンプレートを選択します。
「アクション」リストから、「ロケールの追加」を選択します。「ロケールの追加」ページが表示されます。「ロケール名」フィールドで、このフィールドの横のアイコンをクリックしてリストからロケールを選択します。ロケールの選択後、「確認」をクリックします。「次へ」をクリックします。「ロケール情報」ページが表示され、追加したロケールがページのタブとして表示されます。
「ロケール情報」セクションで、「通知テンプレートの作成」のステップ6の説明に従って、すべてのフィールドに値を指定し、「保存」をクリックします。ロケールがテンプレートに追加されます。
注意: 通知は、通知テンプレートに追加されたすべてのロケールに送信できます。ユーザーは、ユーザー・プリファレンスで指定されたのと同じロケールで通知を受け取ります。ユーザー・プリファレンスでロケールが指定されていない場合は、通知はデフォルトのロケールで送信されます。デフォルトのロケールは、インストール時にOracle Identity ManagerデータベースのPTY表に指定されたものです。 |
通知テンプレートからロケールを削除するには:
Oracle Identity Administrationの左ペインで、検索結果表からテンプレートを選択し、「アクション」リストから「ロケールの削除」を選択します。あるいは、テンプレートを右クリックして「ロケールの削除」を選択することもできます。
「ロケールの削除」ページで、「ロケール名」フィールドの横のアイコンをクリックし、リストからロケールを選択します。テンプレートに複数のロケールが含まれている場合のみ、テンプレートからロケールを削除できることに注意してください。テンプレートに関連付けられたロケールが1つのみの場合は、ロケールを削除することはできません。「保存」をクリックします。
ロケールの削除を確認するメッセージが表示されます。「OK」をクリックします。
注意: デフォルトのロケールは削除しないでください。ユーザー優先ロケールが設定されていない場合や、通知テンプレートにユーザー優先ロケールに一致するロケール・テンプレートが含まれていない場合でも通知が必ず送信されるようにするためには、これが必要です。 |
新しい電子メールITリソースを構成します。
新しいエンド・ユーザーを作成します。(たとえば、ユーザーJane Doeを作成します。)
2人目のエンド・ユーザーを作成します。(たとえば、ユーザーJohn Doeを作成します。)
ユーザーJane DoeをJohn Doeのマネージャとして割り当てます。
John Doeに自分の電子メールIDを指定し、通知を自分の受信ボックスで受信できるようにします。
Jane Doeとしてログインし、Oracle Identity Managerセルフ・サービスに移動します。
「プロファイル」、「プロキシ」を選択します。「プロキシ」画面が表示されるため、John DoeをJane Doeのプロキシとして追加します。
注意: プロキシが正常に追加されると、ユーザー(この場合はJohn Doe)は次のような電子メール通知メッセージを受け取ります。 Jane Doe [JANED]のプロキシが2010年4月7日12:00:00 AMから2010年4月30日12:00:00 AMまで作成されています。 |