ヘッダーをスキップ
Oracle Identity Manager Audit Report開発者ガイド
リリース9.1.0
E05908-02
  目次
目次
索引
索引

戻る
戻る
 
次へ
次へ
 

5 Oracle Identity Managerのレポート機能

Oracle Identity Managerには、カスタム・レポート・エンジンが付属しており、Oracle Identity Managerのトランザクション・データベースまたはセカンダリ・データベース(構成されている場合)に対して事前定義済レポートを実行できます。Javaコードを編集しなくても新しいレポートを追加でき、ストアド・プロシージャを起動してレポート・データを取得できます。

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


注意:

Oracle Identity Managerレポート・エンジンは、エンタープライズ・レポート・ソリューションにかわるものではありません。Oracle Identity Managerレポート・エンジンは、非常に大量のデータ用に最適化されておらず、エンタープライズ・レポート・アプリケーションで見られる豊富な機能を備えていません。

大規模なデプロイの場合、特にOracle Identity Managerの広範な監査機能を利用しているデプロイでは、エンタープライズ規模の専用レポート・ソリューションをデプロイすることを強くお薦めします。Oracle Business Intelligence Enterprise Editionなどのツールに基づいたソリューションでは、大規模エンタープライズに必要な柔軟性、自動化およびパフォーマンスを提供できます。


レポート機能

Oracle Identity Managerのレポート機能は、次のとおりです。

次の各項では、Oracle Identity Managerのデータ、XMLおよびAPIの各レイヤーでのレポートに関するデータ保存について説明します。

データ・レイヤー

データ・レイヤーでは、データベース・スキーマの変更およびストアド・プロシージャの追加ができます。

REP表およびRPG表が、レポート作成をサポートしています。REP表に含まれるものは、次のとおりです。

  • システム内のすべてのレポートのリスト

  • レポート名

  • レポート・コード

  • レポート・タイプ

  • レポート説明

  • レポートのストアド・プロシージャの名前

  • データソースの名前

  • 最大レポート・サイズ

  • レポート・ページに表示されるフィルタ数

  • 各レポートのXMLメタデータ

RPG表は、REP表とUGP表間のリンク表です。この表は、レポートと、レポートに対するアクセス権限を持つグループに関する情報を格納します。

レポートはそれぞれ、1つのストアド・プロシージャに関連付けられています。レポートを実行するには、関連付けられたストアド・プロシージャを適切な引数を指定して実行します。データベース問合せに基づいてレポートを実行することはできません。

システムには多数のレポートが存在します。このため、ストアド・プロシージャでは、ルールに従ってレポートを包括的に起動できるようにしています。詳細は、「レポートの作成方法」を参照してください。

各ストアド・プロシージャには、必須の汎用パラメータ・セットがあります。これらのパラメータは、開始行、ページ・サイズ、フィルタ列など、標準的な情報を指定します。また、ストアド・プロシージャには、レポート固有のパラメータを必要なだけ指定できます。各ストアド・プロシージャは、2つの値、すなわち1ページのレポート・データ全体を表す結果セットおよびレポート・データの合計数を返します。ストアド・プロシージャおよびXMLメタデータの標準形式により、Javaコードを変更せずにレポートを追加および実行できます。

XMLメタデータ

各レポートのXMLメタデータは、そのレポートのREP表に格納されます。メタデータは、レポートに関する次の情報を指定します。

  • レイアウト情報

  • すべての入力パラメータの表現とそれに対応するストアド・プロシージャのパラメータとの関連

  • ユーザー定義パラメータのサポート(操作レポートのみ)

  • フィールド・ラベルやフィールド・タイプ(TextFieldLookupFieldなど)といった各レポート入力パラメータの表示情報

  • レポート表示ページにおける各列の場所

  • 各レポート・データ列に関する表示情報

  • フィルタのドロップダウンに含まれる列

  • インタラクティブ・レポート用のクリック可能な列

メタデータの構造の詳細は、「レポートの作成方法」を参照してください。

APIレイヤー

APIレイヤーは、すべてのバックエンド・レポート機能を提供します。バックエンドは、フロントエンドとは連動しません。レポートAPIを使用してカスタム・ユーザー・インタフェースを作成できます。

レポートのリスト

この項では、使用可能な操作レポートおよび履歴レポートを示します。

表5-1に、操作レポートの名前と説明を示します。

表5-1 操作レポートのリスト

名前 説明

権限のサマリー

各リソース内のステータスごとのユーザー数を出力します。

ポリシー・リスト

システムに定義されたすべてのポリシーのスナップショットを表示します。

組織別の委任管理者

組織のすべての委任管理者ユーザー・グループを出力します。

レビューア別のアテステーション・リクエスト

レビューア別にアテステーション・リクエストを出力します。

承認者別の承認ステータス

すべての承認タスクのサマリーを示します。

ユーザー・リソース・アクセス

選択したユーザーのリソースへのアクセス権を出力します。

リソース・アクセス・リスト

選択したリソースへのアクセス権を持つすべてのユーザーを出力します。

ポリシーの詳細

システムに定義された特定のポリシーの詳細を出力します。

グループ・メンバーシップ・プロファイル

様々な数のグループのユーザー数を出力します。

OIMパスワードの期限切れ

Oracle Identity Managerパスワードの有効期限が近づいているユーザーを出力します。

グループ・メンバーシップ

各グループのユーザーのスナップショットを示します。

リソース・パスワードの期限切れ

Oracle Identity Managerで定められたリソース・パスワードの有効期限が近づいているユーザーを出力します。

組織構造

階層的な組織構造およびユーザー・メンバーシップを出力します。

初期化済リクエスト

指定の時間間隔で開始されたすべてのリクエストを出力します。

ステータス別のリクエスト詳細

指定したステータスのすべてのリクエストの詳細を返します。

アテステーション・プロセス・リスト

定義されたすべてのアテステーション・プロセスのスナップショットを示します。

プロセス別のアテステーション・リクエスト

プロセス別にアテステーション・リクエストを出力します。

アテステーション・リクエストの詳細

選択したアテステーション・リクエストの詳細を出力します。

財務的に重要なリソース

財務的に重要なリソースの詳細を出力します。

組織別の委任管理者および権限

組織のすべての管理者ユーザー・グループおよび権限を出力します。

リソース別の委任管理者および権限

リソースのすべての管理者ユーザー・グループおよび権限を出力します。

リソース別の委任管理者

リソースのすべての管理者および認可者ユーザー・グループを出力します。


表5-2に、使用可能な履歴レポートの名前と説明を示します。

表5-2 履歴レポートのリスト

名前 説明

ユーザー・リソース・アクセス履歴

ユーザーのリソース・アクセスの履歴を返します。

リソース・アクセス・リスト履歴

選択したリソースへのアクセス権を持つすべてのユーザーの履歴を返します。

ユーザー・プロファイル履歴

ユーザーのプロファイルの履歴を返します。

ユーザー・メンバーシップ履歴

ユーザー・グループのユーザーのメンバーシップの履歴を返します。

グループ・メンバーシップ履歴

グループのメンバーシップの履歴を返します。

リソース・アクティビティ

リソースのすべてのプロビジョニングおよび承認アクティビティの履歴を返します。

タスク割当て履歴

タスクに基づいてすべてのタスク割当ての履歴を返します。

パスワードの正常なリセットの失敗

Oracle Identity Managerユーザーのパスワード変更のメトリックを返します。

リソースのアカウント・アクティビティ

各リソースのすべてのアカウント・アクティビティを出力します。

リソース別の統制外アカウント

各リソースのすべての統制外アカウントを出力します。

リソース別のファイングレイン権限例外

リソース別にすべてのファイングレイン権限例外を出力します。

作成済ユーザー

指定の時間間隔で作成されたすべてのユーザーを出力します。

削除済ユーザー

指定の時間間隔で削除されたすべてのユーザーを出力します。

無効化されたユーザー

指定の時間間隔で無効化されたすべてのユーザーを出力します。

ロック解除済ユーザー

指定の時間間隔でロック解除されたすべてのユーザーを出力します。



関連項目:

これらのレポートは、『Oracle Identity Manager管理およびユーザー・コンソール・ガイド』の第14章にも記載されています。

例外レポート

Oracle Identity Managerでの例外とは、ユーザーに権限が付与されているアカウントとユーザーに実際に割り当てられているアカウントとの相違を指します。これらのアカウントは、アクセス・ポリシー、リソースのプロビジョニング、承認リクエストおよびリコシリエーション・イベントの結果としてユーザーに割り当てられます。ターゲット・システムのユーザーに割り当てられたこれらのアカウントと、Oracle Identity Managerのユーザーに割り当てられたアカウントの相違が、例外となります。

このリリースで採用されている例外レポートは、次のとおりです。

デフォルトでは、これらの2つの例外レポートは無効になっています。使用できるようにするには、システム構成のXL.EnableExceptionReportsプロパティの値をTRUEに設定する必要があります。プロパティの値がFALSE(デフォルト値)に設定されていると、管理およびユーザー・コンソールの「履歴レポート」ページで例外レポートを使用できません。そのため、例外レポートのデータはRCXUPA_UD_FORMSおよびUPA_UD_FORMFIELDSの各表に移入されません。これらのレポートは、移入されるリコンシリエーション・データに依存しています。

たとえば、Oracle Identity Managerをインストールした直後に、これらの例外レポートを有効にしなかったとします。かわりに、Oracle Identity Managerの使用を開始した後に例外レポートを有効にしたとします。この場合、例外レポートを実行する前に、UPA_UD_FORMSおよびUPA_UD_FORMFIELDSの各表にベースライン・フォーム・データを移入する必要があります。これを行うには、UPAフォーム・データ・アップグレード・ユーティリティを使用する必要があります。詳細は、「UPAフォーム・データ・アップグレード・ユーティリティの使用」を参照してください。

UPAフォーム・データ・アップグレード・ユーティリティの使用

UPAフォーム・データ・アップグレード・ユーティリティは、UPA_UD_FORMS表およびUPA_UD_FORMFIELDS表に、例外レポートの出発点としての役目を果すベースライン・データを移入します。例外レポート機能を有効にするときは、このユーティリティを実行する必要があります。このユーティリティは、すべての権限にわたって実行されます。プロビジョニングするインスタンスのリソースにプロセスまたはオブジェクト・フォームが付属している場合、このユーティリティは、フォームのデータを読み取り、2つのデータベース表に格納します。こうしてベースラインが形成されます。これ以降のフォームへの変更は、例外レポートが有効であるため、自動的に収集されます。ベースラインが使用可能になると、例外レポートによる例外に関するレポートが開始します。処理が終了すると、UPA_Form_Data_Upgrade_Timestamp.logというログ・ファイルが作成されます。

UPAフォーム・データ・アップグレード・ユーティリティを使用する手順:

  1. UPAフォーム・データ・アップグレード・ユーティリティのファイルをローカル・コンピュータにコピーします。

    ユーティリティを使用する前に、UPAFormDataUpgradeUtilityディレクトリを、インストール・メディア上の次のディレクトリからローカル・コンピュータにコピーします。

    Oracle Databaseの場合:

    installServer/Xellerate/db/oracle/Utilities/UPAFormDataUpgradeUtility
    

    注意:

    この手順の残りの部分では、UPAフォーム・データ・アップグレード・ユーティリティのファイルが含まれているローカル・ディレクトリのフルパスおよび名前をUPAFORMDATAUPGRADEUTILITYと呼びます。

  2. スクリプトを構成します。

    Oracle Databaseのバッチまたはシェル・ファイルの設定は次のとおりです。

    • Microsoft Windowsの場合は、次のファイルを編集します。

      UPAFORMDATAUPGRADEUTILITY\UPAFormDataUpgrade.bat
      
    • LinuxまたはUNIXの場合は、次のファイルを編集します。

      UPAFORMDATAUPGRADEUTILITY/UPAFormDataUpgrade.sh
      

    5-3に、ユーティリティの実行前に設定する必要がある変数の値を示します。

    表5-3 UPAフォーム・データ・アップグレード・ユーティリティの変数

    変数 説明

    ORACLE_HOME

    Oracleホーム・ディレクトリ。

    OIM_DB_REMOTE

    リモート・コンピュータでデータベースが実行されているかどうかを示します。

    OIM_DB_REMOTE = YまたはOIM_DB_REMOTE = Nの場合にのみこのパラメータの値を設定します。

    OIM_DB_ORACLE_SID

    データベースのSID。

    OIM_DB_REMOTE = Nの場合にのみこのパラメータの値を設定します。

    OIM_DB_SERVICE_NAME

    リモート・データベースを指すTNSサービス名。

    OIM_DB_REMOTE = Yの場合にのみこのパラメータの値を設定します。


  3. ストアド・プロシージャをコンパイルします。

    Oracle Databaseの場合は、次の手順を実行します。

    1. Oracle Identity Managerリリース・データベース・スキーマ所有者の資格証明を使用してSQL*Plusにログインします。

    2. 次のファイルをテキスト・エディタで開きます。

      UPAFORMDATAUPGRADEUTILITY/compile_all_XL_SP_UPA.sql
      
    3. compile_all_XL_SP_UPA.sqlスクリプトに、次の変更を加えます。

      • 変更前:

        @@XL_SP_LoadFormData.sql
        

        変更後:

        @UPAFORMDATAUPGRADEUTILITY/XL_SP_LoadFormData.sql
        
      • 変更前:

        @@XL_SP_UPA_FormData_Upgrade.sql
        

        変更後:

        @UPAFORMDATAUPGRADEUTILITY/XL_SP_UPA_FormData_Upgrade.sql
        
    4. compile_all_XL_SP_UPA.sqlスクリプトを実行します。

      UPAFORMDATAUPGRADEUTILITY/compile_all_XL_SP_UPA.sql
      
  4. ユーティリティを実行します。

    • LinuxまたはUNIX上のOracle Databaseの場合:

      次の場所からUPAFormDataUpgrade.shファイルを実行します。

      UPAFORMDATAUPGRADEUTILITY/UPAFormDataUpgrade.sh OIM_DB_User_ID OIM_DB_User_Password
      

      注意:

      UNIXの場合は、次のコマンドを実行してシェルのコマンド履歴をクリアします。
      history -c
      

    • Microsoft Windows上のOracle Databaseの場合:

      次の場所からUPAFormDataUpgrade.batファイルを実行します。

      UPAFORMDATAUPGRADEUTILITY\UPAFormDataUpgrade.bat OIM_DB_User_ID OIM_DB_User_Password
      

レポートの作成方法

新しいレポートを作成するためのタスクは、次のとおりです。

ストアド・プロシージャの作成

レポートはそれぞれ、1つのストアド・プロシージャをベースにしています。ストアド・プロシージャに関するルールは、次のとおりです。

  • ユーザー定義ファンクションではなく、ストアド・プロシージャを使用します。

  • ストアド・プロシージャは、2つの値、すなわちレポート・データの結果セットおよびレポートの行の合計数を返します。

  • レポートの結果セットは、ページ化されます。

    ストアド・プロシージャの実行時に戻される結果セットは、レポート・データ全体の1ページを表します。開始行とページ・サイズは、ストアド・プロシージャの実行時に指定されます。

  • ストアド・プロシージャは、フィルタ・パラメータとユーザー定義入力パラメータを処理します。

各ストアド・プロシージャでは汎用パラメータを使用しますが、ストアド・プロシージャ固有のパラメータを使用することもできます。これらのパラメータ・タイプは、次の各項で説明します。

汎用パラメータ

汎用パラメータは、すべてのストアド・プロシージャに共通です。汎用パラメータは、固有パラメータの前に必須の順序で指定します。

汎用パラメータは12個あります。たとえ値がNULLであっても、12個すべての汎用パラメータが必要です。次に、汎用パラメータを必須の指定順に示します。

  1. レポート結果セット(タイプ=cursor、OUT): レポート・データを表す結果セット。


    注意:

    - Microsoft SQL Serverの場合、戻り型はInteger(int)であり、cursorではありません。Microsoft SQL Serverでは、データは最後の問合せで返されます。実際の戻りパラメータはありません。このパラメータ・タイプは、ストアド・プロシージャの問合せの要件を満たします。

    - Microsoft SQL Serverは、Oracle Identity Managerリリース9.1.0ではサポートされていません。動作保証されているコンポーネントの詳細は、『Oracle Identity Managerリリース・ノート』の「動作保証されているコンポーネント」を参照してください。


  2. ユーザー・キー(タイプ=int、IN): レポートを実行するユーザーのキー。

    このユーザー・キーにより、ユーザーに読取り権限があるレコードのみが必ず返されます。

  3. ソート列(タイプ=varchar、IN): レポート結果セットがソートされる列名のカンマ区切りのリスト。

    今後の使用のために予約されています。

  4. ソート順序(タイプ=varchar、IN): レポート結果セットのソート順序(昇順または降順)。

    今後の使用のために予約されています。

  5. 開始行(タイプ=int、IN): 結果セットが開始される行番号。

  6. ページ・サイズ(タイプ=int、IN): 結果セットのサイズまたは複数ページ・レポートでの1ページのエントリ数。

  7. 計算対象(タイプ=int、IN): 値0、1または2を指定できます。

    値0は、結果セットが計算されて返されますが、レポート・データ全体の行の合計数は計算されないことを示します。値1は、結果セットと行の合計数が計算されることを示します。値2の場合、行の合計数のみが計算され、空の結果セットが返されます。

  8. 行の合計(タイプ=int、OUT): これは出力パラメータで、計算対象の変数が1または2のときに行の合計数を返します。

    レポート・データはページ化されるため、行の合計数の値は、返される結果セットのサイズではありません。レポート全体のサイズです。

    たとえば、ストアド・プロシージャがすべてのユーザーのリストを返すとします。システム内のユーザー数は200、開始行は1、ページ・サイズは50です。このストアド・プロシージャの場合、結果セットのサイズは50ですが、行の合計のアウト・パラメータの値は200です。

  9. フィルタ列名(タイプ=varchar、IN): これは、レポート・データをフィルタ処理できる列名のカンマ区切りのリストです。

    ストアド・プロシージャには、リストされた列に使用する別名を認識する方法がありません。ストアド・プロシージャでは、このリストの列名は、必要な場合は次のように適切な表の別名で正しく修飾されているものと想定します。

    usr.usr_first_name,obj.obj_name

  10. フィルタ列値(タイプ=varchar、IN): これは、前のパラメータにリストされた列名と1対1で対応する列値のカンマ区切りのリストです。

    前のパラメータに2つの列名で構成されたカンマ区切りのリストが指定されている場合、このパラメータは、2つの値で構成されたカンマ区切りのリストとなります。Jo%,Laptopのように、ワイルド・カード(%)文字を使用できます。

  11. ユーザー定義列名(タイプ=varchar、IN): これは、システム・フォームのユーザー定義列を表す列名のカンマ区切りのリストです。

    これらの名前には、必要な場合は次のように適切に別名を付ける必要があります。

    USR.USR_UDF_SSN

  12. ユーザー定義列値(タイプ=varchar、IN): これは、ユーザー定義フィールドの列値のカンマ区切りのリストです。

    これらの値は、前のパラメータにリストされた列名と1対1で対応します。次のように、ワイルド・カード(%)文字を使用できます。

    1234567890

固有パラメータ

固有パラメータは、各レポートに固有です。これらのパラメータは、レポート入力パラメータと1対1で対応します。ただし、日付範囲入力パラメータとユーザー定義パラメータは除きます。

固有パラメータは、汎用パラメータの後に追加する必要があります。各固有パラメータは、「レポート入力」ページの1つのレポート入力パラメータを表します。

varchar2タイプのすべての固有パラメータでは、ワイルド・カード(%)文字を使用できます。

その他のストアド・プロシージャの注意事項

エラーが発生するたびに、例外がスローされます。例外には、エラー・コードが含まれます。コール元のJavaコードは、エラー・コードが埋め込まれたSQL例外としてエラーを受け取ります。ストアド・プロシージャは、次のルールに基づいてエラーがないかコードをチェックします。

  • 開始行の値は0またはNULLでないこと

  • ページ・サイズの値は0またはNULLでないこと

  • ユーザー・キーの値は0またはNULLでないこと

  • 計算対象の値は0、1または2のいずれかであること

  • フィルタ列名とフィルタ列値の間には1対1のマッピングがあること

  • ユーザー定義列名とユーザー定義列値の間には1対1のマッピングがあること

レポート用に返されるデータがない場合でも、空の結果セットが返されます。

ストアド・プロシージャのシグネチャの例

例5-1に、Oracle Databaseの「ユーザー・リソース・アクセス」レポートのストアド・プロシージャのシグネチャを示します。

例5-1 Oracle Databaseの「ユーザー・リソース・アクセス」ストアド・プロシージャのシグネチャ

PROCEDURE XL_SP_UserResourceAccess (
    csrresultset_inout            IN OUT   sys_refcursor,
    intuserkey_in                 IN       NUMBER,
    strsortcolumn_in              IN       VARCHAR2,
    strsortorder_in               IN       VARCHAR2,
    intstartrow_in                IN       NUMBER,
    intpagesize_in                IN       NUMBER,
    intdocount_in                 IN       NUMBER,
    inttotalrows_out              OUT      NUMBER,
    strfiltercolumnlist_in        IN       VARCHAR2,
    strfiltercolumnvaluelist_in   IN       VARCHAR2,
    strudfcolumnlist_in           IN       VARCHAR2,
    strudfcolumnvaluelist_in      IN       VARCHAR2,
    struserlogin_in               IN       VARCHAR2,
    strfirstname_in               IN       VARCHAR2,
    strmiddlename_in              IN       VARCHAR2,
    strlastname_in                IN       VARCHAR2,
    struseremail_in               IN       VARCHAR2,
    strorgname_in                 IN       VARCHAR2,
    strusergroup_in               IN       VARCHAR2,
    strmgrfirstname_in            IN       VARCHAR2,
    strmgrlastname_in             IN       VARCHAR2,
    struserstatus_in              IN       VARCHAR2,
    struseremptype_in             IN       VARCHAR2
)

例5-1では、最初の12個のパラメータ(strudfcolumnvaluelist_inまで)が汎用パラメータです。残りのパラメータは固有パラメータです。

例5-2に、Microsoft SQL Serverの「ユーザー・リソース・アクセス」ストアド・プロシージャのシグネチャを示します。


注意:

Microsoft SQL Serverは、Oracle Identity Managerリリース9.1.0ではサポートされていません。動作保証されているコンポーネントの詳細は、『Oracle Identity Managerリリース・ノート』の「動作保証されているコンポーネント」を参照してください。

例5-2 Microsoft SQL Serverの「ユーザー・リソース・アクセス」ストアド・プロシージャのシグネチャ

CREATE PROCEDURE  XL_SP_UserResourceAccess
(@csrResultSet_inout                  INT OUTPUT,
@intUserKey_in                        INT,
@strSortColumn_in                     VARCHAR(4000),
@strSortOrder_in                      VARCHAR(4000),
@intStartRow_in                       INT,
@intPageSize_in                       INT,
@intDoCount_in                        INT,
@intTotalRows_inout                   INT OUTPUT,
@strFilterColumnList_in               VARCHAR(8000),
@strFilterColumnValueList_in          VARCHAR(8000),
@strudfcolumnlist_in                  VARCHAR(8000),
@strudfcolumnvaluelist_in             VARCHAR(8000),
@strUserLogin_in                      varchar(256),
@strFirstName_in                      varchar(80),
@strMiddleName_in                     varchar(80),
@strLastName_in                       varchar(80),
@strUserEmail_in                      varchar(256),
@strorgname_in                        varchar(256),
@strUserGroup_in                      varchar(30),
@strMgrFirstName_in                   varchar(80),
@strMgrLastName_in                    varchar(80),
@strUserStatus_in                     varchar(25),
@strUserEmptype_in                    varchar(255)
)

レポートのXMLメタデータの作成

ストアド・プロシージャを作成したら、レポートのXMLメタデータを作成します。すべてのレポート固有の情報をメタデータに含め、レポートを正しく実行して表示できるようにします。レポートのメタデータは、レポート固有の入力パラメータの属性、レポート入力パラメータの表示プロパティ、レポート・データの表示プロパティ(レポート・レイアウト、表示ラベルなど)といった情報を指定します。

メタデータのルート要素はreportです。この要素は、レポートのレイアウトを指定します。3つの表示レイアウト、すなわち表レイアウト、セクション・レイアウトおよびレポート・ヘッダー付きセクション・レイアウトがサポートされています。

report要素には、2つの子要素、すなわちStoredProcedureおよびReturnColumnsがあります。

StoredProcedure要素

StoredProcedure要素は、ストアド・プロシージャ固有のパラメータとユーザー定義フィールドに関する情報を指定します。複数のInputParameter要素を含む1つのInputParameters要素で構成されます。

ストアド・プロシージャ固有の各パラメータは、「レポート入力」ページの1つの入力パラメータに対応しています。ただし、DateRangeフィールドはこのルールの例外で、2つのストアド・プロシージャ・パラメータによって表されます。入力パラメータはそれぞれ1つのInputParameter要素で表されます。「レポート入力」ページには、システム・フォームのユーザー定義フィールドも表示されます。「レポート入力」のユーザー定義フィールドもそれぞれ1つのInputParameter要素で表されます。ユーザー定義フィールドの数は変更できますが、ストアド・プロシージャ入力パラメータの数は毎回変更することはできません。ユーザー定義フィールドは、カンマ区切りのリストで表されます。

たとえば、レポートで7つの入力パラメータをサポートする必要があるとします。2つのパラメータはユーザー定義フィールド、5つのパラメータはストアド・プロシージャのシグネチャの固有パラメータ(12個の汎用パラメータとは別)です。これらは、5つのInputParameterタグで表されます。2つのユーザー定義パラメータも2つのInputParameterタグで表されますが、ストアド・プロシージャのシグネチャに対応するパラメータはありません。かわりに、列名とその値のカンマ区切りのリストとして引き渡されます。したがって、メタデータには合計7つのInputParameterタグが必要です。

DateRange入力タイプをサポートする場合は、一方は開始日用、他方は終了日用の2つのストアド・プロシージャ・パラメータで「レポート入力」ページをサポートする必要があります。

InputParameter要素の属性は、次のとおりです。

  • name(必須): 入力パラメータの名前。

    ユーザー定義以外の入力パラメータの場合、この値はなんでもかまいません。しかし、明確にするために、対応するストアド・プロシージャ入力パラメータの名前と一致している必要があります。ユーザー定義入力パラメータの場合、この名前はユーザー定義列の列名で、必要な場合は規定の表別名を前に付けます。

  • parameterType(必須): 対応するストアド・プロシージャ・パラメータのSQLデータ型。

    ユーザー定義入力パラメータの場合、この値はvarcharです。

  • order(必須): レポート固有の入力パラメータの順序。

    順番は1から始まります。標準の入力パラメータをリストし、その後にユーザー定義入力パラメータをリストする必要があります。

  • fieldType(必須): 「レポート入力」ページの表示フィールドのタイプ。

    サポートされる入力タイプは、TextFieldDateDateRangeLookupFieldおよびComboboxです。

  • fieldLabel(必須): このフィールドのフィールド・ラベルのプロパティ値。

    このプロパティ値は、メッセージ・リソース・プロパティ・ファイル(この場合xlWebAdmin.properties)の値で、実際のラベルを表します。

  • allowedValuesfieldTypeCombobox以外の場合、任意): コンボ・ボックスに関連付けられる参照コード。

  • required(任意、デフォルト: false): trueに設定すると、ユーザーは実行するレポートのこのフィールドに対する値を指定する必要があります。

  • udf(任意、デフォルト: false): InputParameter要素で表されるユーザー定義フィールドの場合、この属性を指定する必要があり、値をtrueに設定します。操作レポート専用です。

属性fieldTypeの値がLookupFieldである場合、ValidValuesという子要素がInputParameter要素の下に必要です。レポート機能では、3つの参照タイプ、すなわちコードによる参照、メソッドによる参照および列による参照をサポートしています。ValidValues要素のサポートされる属性は、次のとおりです。

  • lookupCode(任意): コードによる参照の場合のみ指定する必要があります。

    指定する場合、この属性の値は参照コードです。

  • lookupColumn(任意): 列による参照の場合のみ指定する必要があります。

    指定する場合、この属性の値は参照列の列コードです。

  • lookupMethod(任意): クラスまたはメソッドによる参照の場合のみ指定する必要があります。

    指定する場合、この属性の値は参照値を指定するメソッド名です。

  • operationClass(任意): lookupMethod属性が指定されている場合のみ指定する必要があります。

    この属性の値は、参照メソッドを含むクラスの完全修飾名です。

  • displayColumns(任意): lookupMethod属性が指定されている場合のみ指定する必要があります。

    参照で表示される列を表す列コードのカンマ区切りのリストです。

  • selectionColumn(任意): lookupMethod属性またはlookupColumn属性が指定されている場合のみ指定する必要があります。

    値がデータベースに保存される列の列コードを表します。

InputParameterタグの例

  • 標準のTextField入力パラメータの場合:

    <InputParameter name="strfirstname_in" parameterType="varchar2" order="2" 
    fieldType="TextField" fieldLabel="report.userResourceAccess.label.firstName" 
    required="false" />
    
  • ユーザー定義入力パラメータの場合:

    <InputParameter name="USR.USR_UDF_SSN" parameterType="varchar2" order="11" 
    fieldType="TextField" fieldLabel="report.userResourceAccess.label.SSN" required="false" udf="true" />
    
  • Comboboxタイプの入力パラメータの場合:

    <InputParameter name="struserstatus_in" parameterType="varchar2" order="10" 
    fieldType="Combobox" allowedValues="Lookup.WebClient.Users.Status" 
    fieldLabel="report.userResourceAccess.label.userStatus" required="false" />
    
  • lookupCodeが指定されたLookupFieldタイプの入力パラメータの場合:

    <InputParameter name="struseremptype_in" parameterType="varchar2" order="11" 
    fieldType="LookupField" fieldLabel="report.userResourceAccess.label.employeeType" required="false" >
      <ValidValues lookupCode="Lookup.Users.Role"/> 
    </InputParameter>
    
  • lookupColumnが指定されたLookupFieldタイプの入力パラメータの場合:

    <InputParameter name="struseremail_in" parameterType="varchar2" order="5" fieldType="LookupField" 
    fieldLabel="report.userResourceAccess.label.userEmail" required="false" >
      <ValidValues lookupColumn="Users.Xellerate Type" selectionColumn="Lookup Definition.Lookup Code Information.Decode" />
    </InputParameter>
    
  • lookupMethodが指定されたLookupFieldタイプの入力パラメータの場合:

    <InputParameter name="struserlogin_in" parameterType="varchar2" order="1" fieldType="LookupField" 
    fieldLabel="report.userResourceAccess.label.userLogin" required="false" >         
    <ValidValues lookupMethod="findUsersFiltered"
       operationClass="Thor.API.Operations.tcUserOperationsIntf"
       displayColumns="Users.User ID,Users.Last Name,Users.First Name"
       selectionColumn="Users.User ID"/> 
    </InputParameter>
    

fieldType属性の値がDateRangeである場合、2つの子要素InputStartDateおよびInputEndDateを指定する必要があります。各要素には、次の属性が必要です。

  • name(必須): パラメータの名前

    この日付パラメータを表すストアド・プロシージャ・パラメータの名前と一致する必要があります。

  • parameterType(必須): この日付パラメータを表すストアド・プロシージャ・パラメータのSQLタイプ

  • order(必須): ストアド・プロシージャ・パラメータの順序

  • defaultValue(任意、デフォルト: 01/01/1900および12/31/2049): ユーザーが「開始日」フィールドまたは「終了日」フィールドに日付を入力しなかった場合に指定されるデフォルト値

  • format(任意、デフォルト: reports.generic.message.internalDateFormat): デフォルトの日付の書式

ReturnColumnsタグ

ReturnColumnsタグは、結果セットで返されるすべての列のリストを表します。このタグには、複数のReturnColumnタグが含まれ、それぞれが返された結果セットの1列を表します。ReturnColumnタグの属性は、レポート・データの表示に有用な情報を指定します。

ReturnColumnsタグの属性は、次のとおりです。

  • name(必須): この名前は、この特定のタグで表される結果セットの列の列コードを表します。

    列コードが使用できない場合は、別名または列名でもかまいません。

  • label(必須): この列の列ヘッダーまたはラベルのプロパティ値を指定します。

    このプロパティ値は、メッセージ・リソース・プロパティ・ファイル(この場合xlWebAdmin.properties)の値で、実際のラベルを表します。

  • position(必須): この属性には、3つの値、すなわちTableSectional HeaderまたはReport Headerを指定できます。

    この属性は、各列の場所を指定します。各列は、表(任意のレイアウトの場合)、セクション・ヘッダー(セクション・レイアウトおよびレポート・ヘッダー付きセクション・レイアウトの場合)またはレポート・ヘッダー(レポート・ヘッダー付きセクション・レイアウトの場合)に属すことができます。

  • filterColumn(任意、デフォルト: false): この属性は、列がフィルタ列かどうかを指定します。

    値がtrueの場合は、「レポート表示」ページ上部のフィルタのドロップダウン・リストに列名が含まれます。

  • filterColumnNamefilterColumnが指定されていない場合、任意): この属性は、必要な場合は表の別名が前に付いた、実際の列名を表します。

  • filterTypefilterColumnがtrueの場合は、任意): レポート結果ページのフィルタ表示フィールドのタイプ。サポートされる入力タイプは、Comboboxのみです。

  • filterLookupKeyfilterColumnがtrueの場合は、任意): レポート結果ページのフィルタ表示フィールドに表示されるコンボ・ボックスに関連付けられる参照コードを表します。

  • clickable(任意、デフォルト: false): この属性は、列値がリンクかどうかを指定します。

    この属性は、レポートの動作性をサポートします。

レポート・モジュールでは、インタラクティブ・レポートを構成できます。インタラクティブ・レポートでは、列値をリンクとして定義し、ユーザーが列値をクリックすると管理およびユーザー・コンソールの内外のページに移動するようにします。リンクを構成するには、ユーザーが適切なページに移動するように、情報をメタデータに追加します。リンクには、動的または静的な場所を指定できます。リンクをクリックすると新しいブラウザ・ウィンドウが開きます。このウィンドウは、同じブラウザ・セッションを共有しますが、それ以外は独立しています。

リンクを構成するには、clickable属性をtrueに設定し、ReturnColumn要素とその2つの子要素LinkおよびRequestParametersを次のように構成します。

  • Link要素: この要素に1つのhref属性を構成します。

    この属性は、宛先ページのベースURLを指定します。絶対URLは、http://www.xyz.comのようにhttpで始まります。絶対URLの宛先ページは、管理およびユーザー・コンソールの外にあります。searchResources.doなどの相対URLは、管理およびユーザー・コンソールの中の宛先ページに移動します。

  • RequestParameters要素: この要素に複数のRequestParameter要素を構成します。

    RequestParameter要素は、宛先ページを正しく表示するために発行される必要がある1つのリクエスト・パラメータを表します。name属性は、リクエスト・パラメータの名前を指定します。リクエスト・パラメータが静的である場合、つまり結果セットの他の値に依存しない場合は、value属性を使用してその値を構成します。リクエスト・パラメータの値が動的である場合、つまり結果セットの他の列(リソース・キーなど)に依存する場合は、column属性を使用して値を指定します。column属性には、値が返される列の列コードを指定します。

REPエントリの作成とレポートへのアクセス権の付与

レポート・メタデータが完成したら、REP表とRPG表を更新してレポートを使用できるようにします。

REP表での新しいエントリの作成

REP表には、システム内のすべてのレポートのリストが含まれます。新しいレポートを定義するには、そのレポートを表す新しい行をREP表に作成する必要があります。作成日、作成者、行バージョンなどの共通の列以外に、移入される列を指定する必要があります。カッコ内の値は、「ユーザー・リソース・アクセス」レポートの例です。

  • REP_NAME: この列には、ユーザーに表示されるレポートの名前が含まれます。

    この名前はREP表では一意です。(User Resource Access)

  • REP_CODE: レポートに対する一意のコード。(UserResourceAccess

  • REP_DESCRIPTION: ユーザーに表示されるレポートの説明。(Resource access rights for selected users)

  • REP_SP_NAME: レポートのデータを指定するストアド・プロシージャの名前。(XL_SP_UserResourceAccess

  • REP_XML_META: この列は、前の項で定義したレポートのメタデータ全体を含むclobです。

  • REP_TYPE: レポートのタイプ。2つの値、すなわちOperationalまたはHistoricalを指定できます。(Operational

  • REP_DATASOURCE: レポートの実行対象となるデータソースの名前。

    2つの値、すなわちDefaultまたはReportingを指定できます。通常、操作レポートはデフォルト・データベースに対して実行されますが、履歴レポートはレポート・データベースに対して実行されます。(Default)

  • REP_MAX_REPORT_SIZE: レポートで返すことができる最大レコード数を表します。

    レポートが返す各レコードのデータ量は、レポートごとに異なります。レポートのレスポンス時間を高速に保つには、レポートで返すことができる最大レコード数をレポートごとに強制適用します。(5000)

  • REP_FILTER_COUNT: このレポートに対する「レポート表示」ページのフィルタのドロップダウンの数。(3)

REP表にOracle Databaseの「ユーザー・リソース・アクセス」レポートのデータを移入するINSERT文の例を次に示します。

INSERT INTO REP (REP_KEY, REP_CODE, REP_TYPE, REP_NAME, REP_DESCRIPTION,
                 REP_DATASOURCE, REP_SP_NAME, REP_MAX_REP_SIZE, REP_FILTER_COUNT,
                 REP_DATA_LEVEL, REP_CREATE, REP_CREATEBY, REP_UPDATE,
                 REP_UPDATEBY, REP_ROWVER) 
VALUES (rep_seq.nextval, 'UserResourceAccess', 'Operational', 'User Resource 
Access','Resource access rights for selected users', 'Default', 
'XL_SP_UserResourceAccess', 5000, 3, 1, SYSDATE, <System Administrator User Key>,  
SYSDATE, <System Administrator User Key>, HEXTORAW('0000000000000000'));

REP表にMicrosoft SQL Serverの「ユーザー・リソース・アクセス」レポートのデータを移入するINSERT文の例を次に示します。


注意:

Microsoft SQL Serverは、Oracle Identity Managerリリース9.1.0ではサポートされていません。動作保証されているコンポーネントの詳細は、『Oracle Identity Managerリリース・ノート』の「動作保証されているコンポーネント」を参照してください。

INSERT INTO REP (REP_CODE, REP_TYPE, REP_NAME, REP_DESCRIPTION, REP_DATASOURCE,
                 REP_SP_NAME, REP_MAX_REP_SIZE, REP_FILTER_COUNT, REP_DATA_LEVEL,
                 REP_CREATE, REP_CREATEBY, REP_UPDATE, REP_UPDATEBY, REP_ROWVER)
VALUES ('UserResourceAccess', 'Operational', 'User Resource Access',
       'Resource access rights for selected users', 'Default', 'XL_SP_UserResourceAccess',
       5000, 3, 1, GETDATE(), <System Administrator User Key>, GETDATE(), <System Administrator User Key>, 0x0);

XMLメタデータのロード

レポートに対するエントリをREP表に作成したら、レポートのXMLメタデータをREP表のREP_XML_META列にロードする必要があります。メタデータの作成の詳細は、「レポートのXMLメタデータの作成」を参照してください。

ユーザー・グループへのレポートへのアクセス権の付与

レポートへのアクセス権を付与する手順は、次のとおりです。


関連項目:

『Oracle Identity Manager管理およびユーザー・コンソール・ガイド』

新しいレポートへのアクセス権を特定のユーザー・グループに付与するには、次のようにします。

  1. 「ユーザーの管理」アプリケーションを使用して、ユーザー・グループを検索します。

  2. ユーザー・グループの詳細ページにナビゲートします。

  3. 「追加詳細」ドロップダウンで「許可されたレポート」リンクをクリックします。

    「グループの詳細」の下に「レポート」ページが表示されます。

  4. 「レポートの割当て」ボタンをクリックします。

    「グループの詳細」の下の「レポート」セクションに、「レポートの割当て」ページが表示されます。作成したばかりのレポートがこのページに表示されます。

  5. レポートへのアクセス権を付与するには、1つ以上のグループに割り当てます。

ラベル名、レポート名およびレポート説明を翻訳するためのプロパティ・ファイルの変更

この項では、ラベル名、レポート名およびレポート説明を翻訳するために、プロパティ・ファイルを変更する方法について説明します。内容は次のとおりです。

ラベル名を翻訳するためのプロパティの追加

XMLメタデータを作成したら、新しいフィールド・ラベル・プロパティをプロパティ・ファイル内のメタデータ・ファイルに挿入する必要があります。プロパティは、サポートするロケールに対応するファイルに追加します。リリース9.1.0でサポートされる言語とそれに関連するプロパティ・ファイルは次のとおりです。

  • 中国語(簡体字)(xlWebAdmin_zh_CN.properties

  • 中国語(繁体字)(xlWebAdmin_zh_TW.properties

  • デンマーク語(xlWebAdmin_da.properties

  • 英語(xlWebAdmin_en_US.properties

  • フランス語(xlWebAdmin_fr.properties

  • ドイツ語(xlWebAdmin_de.properties

  • イタリア語(xlWebAdmin_it.properties

  • 日本語(xlWebAdmin_ja.properites

  • 韓国語(xlWebAdmin_ko.properties

  • ポルトガル語(ブラジル)(xlWebAdmin_pt_BR.properties

  • スペイン語(xlWebAdmin_es.properties

Oracle Identity Managerでは、サポート外のロケールが検出されると、xlWebAdmin.propertiesファイルを参照します。これらのファイルに、対象のプロパティをInputParameterタグのfieldLabel属性およびReturnColumnタグのlabel属性として追加します。入力フィールド・ラベルまたは戻り列ラベルの実際の名前を指定するかわりに、プロパティ名を指定します。それぞれのプロパティ・ファイルからは、このプロパティ名が参照されます。この方法により、国際化が簡単になります。

次の例では、InputParameterタグのfieldLabel属性とReturnColumnタグを設定する方法を示します。

例1

<InputParameter name="struserlogin_in" parameterType="varchar2" order="1"
fieldType="TextField" fieldLabel="report.userResourceAccess.label.userLogin"
required="false" />

このInputParameterタグは、「ユーザー・リソース・アクセス」レポートのUserResourceAccess.xmlメタデータ・ファイルからのものです。このタグのfieldLabel属性の値はreport.UserResourceAccess.label.userLoginです。xlWebAdmin_en_US.propertiesファイルの対応するこのプロパティのエントリは、次のとおりです。

report.UserResourceAccess.label.userLogin=Userid

例2

<ReturnColumn name="Users.First Name" label="report.userResourceAccess.label.firstName"
 position="SectionHeader" filterColumn="true"
 filterColumnName="usr.usr_first_name" />

このReturnColumnタグは、「ユーザー・リソース・アクセス」レポートのUserResourceAccess.xmlメタデータ・ファイルからのものです。このタグのlabel属性の値はreport.userResourceAccess.label.firstNameです。xlWebAdmin_en_US.propertiesファイルの対応するこのプロパティのエントリは、次のとおりです。

report.userResourceAccess.label.firstName=First Name

注意:

実際のラベル名が(カスタマイズなどにより)変更されても、プロパティ名を変更する必要はありません。

次の手順に従って、xlWebAdmin_en_US.propertiesファイルを編集します。

  1. OIM_HOME/webappディレクトリのxlWebApp.warファイルを一時ディレクトリに解凍します。

  2. テキスト・エディタで、xlWebApp.warファイルを解凍した一時ディレクトリのxlWebAdmin_en_US.propertiesファイルを開きます。

  3. 適切なプロパティをInputParameterタグのfieldLabel属性およびReturnColumnタグのlabel属性として追加します。

  4. xlWebApp.warファイルを再作成し、それをOIM_HOME/webappディレクトリにコピーします。

レポート名およびレポート説明を翻訳するためのプロパティの追加

REP表にエントリを作成したら、レポート名およびレポート説明の翻訳プロパティをプロパティ・ファイルに追加する必要があります。この手順は、データベースの英語のエントリをローカライズするために必要で、英語のロケールのみサポートする必要がある場合でも実行する必要があります。

レポート名およびレポート説明を翻訳するためのプロパティを追加するには、次のようにします。

  1. OIM_HOME/webappディレクトリのxlWebApp.warファイルを一時ディレクトリに解凍します。

  2. テキスト・エディタで、xlWebApp.warファイルを解凍した一時ディレクトリのxlDefaultAdmin.propertiesファイルを開きます。

  3. xlDefaultAdmin.propertiesファイルで、global.resultSet.Reports.Report~Nameプロパティを探します。このプロパティは、システム内のすべてのレポートの名前を識別します。このプロパティに割り当てられたレポートはそれぞれ縦線(|)で区切られます。縦線と新しいレポートの名前をこのプロパティ値の最後に追加します。パイプ文字とレポート名の間に空白がないことと、レポート名の末尾に空白がないことを確認してください。

  4. xlDefaultAdmin.propertiesファイルで、システム内のすべてのレポートの説明が含まれるglobal.resultSet.Reports.Report~Descriptionプロパティを探します。このプロパティに割り当てられたレポートはそれぞれ縦線(|)で区切られます。パイプ文字と新しいレポートの説明をこのプロパティ値の最後に追加します。パイプ文字と説明の間に空白がないことと、説明の末尾に空白がないことを確認してください。

  5. テキスト・エディタで、レポート名およびレポート説明を翻訳するロケールを表すプロパティ・ファイルを開きます。

  6. レポート名とローカライズされた値を識別するglobal.resultSet.Reports.Report~Name.ReportNameプロパティを追加します。プロパティ名のReportName部分は、レポート名を表します。プロパティ名の空白はチルダ(~)で表します。ローカライズされた値をこのプロパティに割り当てます。たとえば、Group Informationというレポートを表すには、次のプロパティをxlWebAdmin_en_US.propertiesファイルに追加します。

    global.resultSet.Reports.Report~Name.Group~Information=Group Information
    
  7. レポート説明とローカライズされた値を含むglobal.resultSet.Reports.Report~Description.Report~Descriptionプロパティを追加します。プロパティ名のReport~Description部分は、デフォルトのレポート説明を表します。レポート説明の空白はチルダ(~)で表します。ローカライズされた値をこのプロパティに割り当てます。たとえば、Group Informationの説明の場合、次のプロパティをxlWebAdmin_en_US.propertiesファイルに追加します。

    global.resultSet.Reports.Report~Description.Description~of~the~Group~Information~report=Description of the Group Information report
    
  8. 新しいレポートごとに、global.ReportName.Lookup.Report-Nameおよびglobal.ReportDesc.Lookup.Report-Description参照プロパティを追加します。各プロパティ名のReport-Name部分およびReport-Description部分はそれぞれデフォルトのレポート名およびレポート説明を表します。レポート説明の空白はハイフン(-)で表します。ローカライズされた値を各プロパティに割り当てます。たとえば、Group Informationレポートの場合、次のプロパティをxlWebAdmin_en_US.propertiesファイルに追加します。

    global.ReportName.Lookup.Group-Information=Group Information
    global.ReportDesc.Lookup.Description~of~the~Group~Information~report=Description of the Group Information report
    
  9. xlWebApp.warファイルを再作成し、それをOIM_HOME/webappディレクトリにコピーします。

サード・パーティのレポート・ツールとの連携

サード・パーティのレポート・ツールでは、用意されたストアド・プロシージャを使用し、Oracle Identity Managerに対してレポートを実行することができます。データ・モデルを理解したり、事前定義済レポートの問合せを作成する必要はありません。いずれのレポート・ツールも、カスタム・ストアド・プロシージャおよびカスタム・レポートに使用できます。

スナップショットおよび変更に関する情報は、XML形式でUPA表に格納されます。サード・パーティのXMLレポート・ツールでは、この表からレポートを生成できます。XMLが好ましい形式ではない場合は、ユーザー・プロファイル監査機能に関連するレポート表UPA_USRUPA_FIELDSUPA_GRP_MEMBERSHIPUPA_RESOURCEUPA_UD_FORMSおよびYPA_UD_FORMFIELDSを使用して、データを取り出すことができます。

履歴レポートの日付範囲

履歴レポートでは、データ・スナップショットの日付範囲とデータ変更の日付範囲の2つの異なる日付範囲を入力パラメータとして使用できます。

データ・スナップショットの日付範囲は、履歴レポートに適用する過去の日付範囲です。このリリース以降、ラベルが表示されるようになりました。これを指定すると、レコードはその日付範囲に該当するもののみに絞り込まれます。

データ変更の日付範囲は、このリリースから追加された新機能です。これを指定すると、レコードはその日付範囲が示す期間中に変更されたもののみに絞り込まれます。

指定する必要があるのはいずれか一方の日付範囲のみです。データ・スナップショットの日付範囲は、データ変更の日付範囲の上位集合です。データ・スナップショットの日付範囲には、すべてのデータ変更が自動的に含められます。


注意:

両方の日付範囲に値を指定すると、データ変更の日付範囲がデータ・スナップショットの日付範囲よりも優先され、後者は無視されます。

制限事項

このリリースのレポート作成では、次の制限事項があります。