ヘッダーをスキップ
Oracle® Fusion Middleware Oracle Identity Manager開発者ガイド
11g リリース1(11.1.1)
B66705-01
  目次へ移動
目次
索引へ移動
索引

前
 
次
 

37 権限の開発

ターゲット・システムのアカウントに付与される権限により、アカウント所有者(ユーザー)は特定のタスクや機能を実行できます。権限は、ロール、職責またはグループ・メンバーシップの場合があります。たとえば、ユーザーRichardがターゲット・システムでInventory Analystロールを付与されている場合、Richardはその権限を使用してターゲット・システムの在庫関連レポートにアクセスし、生成できます。

Oracle Identity Managerでは、OIMユーザーにプロビジョニングされるアカウント(リソース)ごとに1つのプロセス・フォームがあります。権限データは、プロセス・フォームの子プロセス・フォームに格納されます。前述の例では、ターゲット・システムのRichardのアカウントのプロセス・フォームには、Inventory Managerロール・データを保持する子プロセス・フォームがあります。

子プロセス・フォームに格納される権限データを構成する属性は、ターゲット・システムによって異なる可能性があります。また、ロールと職責などの異なるタイプの権限は、異なる属性を持つ場合があります。たとえば、ターゲット・システムAに、次のロール・データの属性が含まれます。

同じターゲット・システムに、職責データの異なる属性のセットが含まれる場合があります。

ターゲット・システムの権限を一意に識別する属性をマークまたは強調表示できます。前述のサンプル・ロールおよび職責データの属性で、「ロール名」属性と「職責ID」属性は、ターゲット・システムAのロール権限および職責権限を一意に識別します。権限を一意に識別する属性をマークすることにより、他のアイデンティティ管理ソリューションで使用可能であり、レポートでも表示される権限データの取得を有効にします。

この章では、次の項目について説明します。

37.1 使用可能権限および割り当てられた権限

ターゲット・システムには、定義済で、ターゲット・システムのアカウント(ユーザー)に割り当てる準備ができた一連の権限を含めることができます。このターゲット・システムをOracle Identity Managerと統合すると、ターゲット・システムからOracle Identity ManagerのLKV表に権限データをインポート(同期)できます。


注意:

事前定義済コネクタを使用してターゲット・システムを統合する場合は、スケジュール済タスクを使用してこの表に権限データをフェッチすることができます。


LKV表の権限は、アカウントへの割当てに使用可能です。このマニュアルでは、これらの権限を使用可能権限と呼びます。

プロビジョニング操作中、割り当てる権限を子プロセス・フォームの参照フィールドから選択します。このマニュアルでは、アカウントに割り当てられる権限を割り当てられた権限と呼びます。割り当てられた権限に関するデータは、子プロセス・フォーム表に格納されます。

37.2 権限データ取得プロセス

各子プロセス・フォームの権限属性をマークした後、次のプロセスが実行されます。

37.2.1 使用可能権限に関するデータの取得

次の手順では、使用可能権限に関するデータの取得方法について説明します。


注意:

これらの手順で説明するプロセスを有効にするには、各子プロセス・フォームの権限属性をマークする必要があります。その方法については、この章で後述します。


  1. ターゲット・システムとの同期により、使用可能権限に関するデータがLKV表に格納されます。

  2. 権限リスト・スケジュール済タスクをスケジュールし、実行します。

  3. スケジュール済タスクで、UD_表の権限属性が識別されます。

  4. スケジュール済タスクで、使用可能権限に関するデータがLKV表からENT_LIST表にコピーされます。

37.2.2 割り当てられた権限に関するデータの取得

この項では、割り当てられた権限に関するデータの取得方法について説明します。


注意:

これらの手順で説明するプロセスを有効にするには、各子プロセス・フォームUD_表の権限属性をマークする必要があります。その方法については、この章で後述します。


割り当てられた権限の初回の同期を行うには、次の手順を実行します。

  1. 権限割当てスケジュール済タスクを、1回実行するようにスケジュールします。

  2. スケジュール済タスクで、子プロセス・フォーム(UD_)表の権限属性が識別されます。

  3. スケジュール済タスクで、各UD_表にINSERT、UPDATEおよびDELETEトリガーが作成されます。スケジュール済タスクで、OIU表にもトリガーが作成されます。

  4. スケジュール済タスクで、割り当てられた権限に関するデータがUD_表からENT_ASSIGN表にコピーされます。


    注意:

    ENT_ASSIGN表には、リソース(ユーザー)に現在割り当てられている権限に関するデータが保持されます。権限が失効すると、その権限のレコードはこの表から履歴データに移動されます。詳細は、「権限更新」を参照してください。


割り当てられた権限の増分同期を行うには、次の手順を実行します。

  1. 割り当てられた権限にプロビジョニング操作またはリコンシリエーションを介して変更が加えられると、追加、変更または削除された行がINSERT、UPDATEまたはDELETEトリガーによってUD_表からステージング表にコピーされます。

  2. 権限更新スケジュール済タスクを構成し、実行します。

  3. スケジュール済タスクで実行される処理は、ステージング(ENT_ASSIGN_DELTA)表のレコードごとに、割り当てられた権限に対して実行される操作のタイプによって異なります。


    注意:

    操作のタイプ(INSERT、UPDATEまたはDELETE)は、ステージング表に格納されるデータ項目の1つです。


    • イベント: アカウントに権限が新規に割り当てられました。

      処理: ENT_ASSIGN表に新規レコードが作成(ステージング表からコピー)されます。

    • イベント: 既存の権限が変更されました。

      処理: 既存のレコードがENT_ASSIGN表からENT_ASSIGN_HIST表にコピーされます。既存のレコードはENT_ASSIGN表から削除されます。新規に変更された権限に対応するレコードがENT_ASSIGN表に作成されます。

    • イベント: 既存の権限が失効しました。

      処理: 既存のレコードがENT_ASSIGN表からENT_ASSIGN_HIST表にコピーされます。既存のレコードはENT_ASSIGN表から削除されます。

37.3 子プロセス・フォームでの権限属性のマーク

権限データを取得するリソースの子プロセス・フォームUD_表の権限属性をマークする必要があります。ユーザーの操作環境に、15のターゲット・システムがあるとします。15個のリソースのうち12個のリソースの権限データを取得する場合は、それらの12個のリソースの権限属性をマークする必要があります。

この項で説明する手順を実行する際には、次のガイドラインに従います。

子プロセス・フォームのフィールドを権限としてマークするには、次の手順を実行します。

  1. Design Consoleにログインします。

  2. 「開発ツール」を開き、「フォーム・デザイナ」をダブルクリックします。

  3. 権限をマークする子フォームを検索し、開きます。

    たとえば、UD_ADUSRC子フォームの権限をマークできます。

  4. 「新しいバージョンの作成」をクリックします。

  5. 新規バージョンのラベルを入力し、「保存」アイコンをクリックしてダイアログ・ボックスを閉じます。

  6. 「現在のバージョン」リストから、作成するバージョンを選択します。

  7. 「プロパティ」タブで権限としてマークするフィールドを選択し、「プロパティの追加」をクリックします。

  8. 「プロパティの追加」ダイアログ・ボックスの「プロパティ名」リストから、「権限」を選択します。


    注意:

    列タイプがLookupFieldに設定され、プロパティ名が「参照コード」に設定されている場合にのみ、「権限」をフィールドのプロパティとして設定できます。


  9. 「プロパティ値」フィールドに、trueと入力します。

    ダイアログ・ボックスの他のフィールドに値を指定する必要はありません。

    次のスクリーンショットは、参照フィールドの「プロパティの編集」ダイアログ・ボックスを示しています。

    参照フィールドの「プロパティの編集」ダイアログ・ボックス
  10. 「保存」アイコンをクリックしてダイアログ・ボックスを閉じます。

  11. 権限の「開始日」および「終了日」値の取得を有効にする場合は、次の手順を実行します。


    注意:

    「開始日」および「終了日」値の取得は、両方のフィールドの列タイプがDateFieldDlgである場合にのみ有効にできます。


    1. 「プロパティ」タブで「開始日」フィールドを選択し、「プロパティの追加」をクリックします。

    2. 「プロパティの追加」ダイアログ・ボックスの「プロパティ名」リストから、「権限有効期限開始」を選択します。

    3. 「プロパティ値」フィールドに、trueと入力します。

    4. 「保存」アイコンをクリックしてダイアログ・ボックスを閉じます。

    5. 「プロパティ」タブで「終了日」フィールドを選択し、「プロパティの追加」をクリックします。

    6. 「プロパティの追加」ダイアログ・ボックスの「プロパティ名」リストから、「権限有効期限終了」を選択します。

    7. 「プロパティ値」フィールドに、trueと入力します。

      次のスクリーンショットは、「開始日」フィールドの「プロパティの編集」ダイアログ・ボックスを示しています。

      「開始日」フィールドの「プロパティの編集」ダイアログ・ボックス
    8. 「保存」アイコンをクリックしてダイアログ・ボックスを閉じます。

  12. 「保存」アイコンをクリックして、子プロセス・フォームに行った変更を保存します。

    次のスクリーンショットは、子プロセス・フォームの「プロパティ」タブを示しています。

    子プロセス・フォームの「プロパティ」タブ

    注意:

    「開始日」と「終了日」のマークはオプションです。


  13. 「バージョンをアクティブにする」をクリックします。

37.4 権限データを使用するためのスケジュール済タスクの構成

権限データを使用するために次のスケジュール済タスクを構成します。

37.4.1 権限リスト

Entitlement List・スケジュール済タスクでは、子プロセス・フォーム表の権限属性が識別され、権限データがLKV表からENT_LIST表にコピーされます。ENT_LIST表に作成されたレコードは、特定のターゲット・システムで定義された権限に対応します。

ユーザーの操作環境において新規権限がターゲット・システムで定義される頻度に応じて、このタスクのスケジュールを設定する必要があります。また、新しいターゲット・システムがOracle Identity Managerに統合された場合、このスケジュール済タスクを実行する必要があります。つまり、新しい権限をマークするたびにこのタスクを実行する必要があります。コネクタのスケジュール済タスクで参照フィールドのデータがターゲット・システムからLKV表にフェッチされた後、権限リスト・スケジュール済タスクを実行して、その権限データをENT_LIST表にコピーできます。

このスケジュール済タスクでは、ターゲット・システムの権限に対する更新や削除も処理されます。たとえば、Senior Accounts Analystロールがターゲット・システムから削除された場合、コネクタのスケジュール済タスクではそのロールのエントリがLKV表から削除されます。権限リスト・スケジュール済タスクを実行すると、ENT_LIST表のロールを含む行が削除済行としてマークされます。

37.4.2 権限割当て

権限割当てスケジュール済タスクは、割り当てられた権限に関するデータをENT_ASSIGN表に初めてコピーする場合に使用されます。このタスクでは、子プロセス・フォーム表の権限属性が識別され、割り当てられた権限に関するデータが子プロセス・フォーム表からENT_ASSIGN表にコピーされます。ENT_ASSIGN表に作成されたレコードは、特定のターゲット・システムで特定のユーザーに割り当てられた権限に対応します。

また、権限データのコピー元となる子プロセス・フォーム表にINSERT、UPDATEおよびDELETEトリガーが作成されます。これらのトリガーの機能の詳細は、「割り当てられた権限に関するデータの取得」を参照してください。

このスケジュール済タスクのRECORDS_TO_PROCESS_IN_BATCH属性を使用して、各バッチのレコード数を指定できます。デフォルトのバッチ・サイズは5000です。

このスケジュール済タスクは、権限データの使用を初めて開始するとき、および新しい子プロセス・フォーム・フィールドを権限としてマークするときに実行する必要があります。

37.4.3 権限更新

権限更新スケジュール済タスクでは、子プロセス・フォーム表の権限割当てデータに対する変更でENT_ASSIGN表が更新されます。権限割当てスケジュール済タスクで作成されたトリガーにより、権限割当てデータに加えられた変更がステージング表にコピーされます。権限更新スケジュール済タスクでは、ステージング表のデータが処理され、ENT_ASSIGN表のデータに必要な変更が加えられます。子プロセス・フォーム表のINSERT、UPDATEおよびDELETEトリガーの機能の詳細は、「割り当てられた権限に関するデータの取得」を参照してください。

37.5 割り当てられた権限に対する変更の取得の無効化

ENT_ASSIGN表の割り当てられた権限データの増分同期を手動で無効化できます。つまり、割り当てられた権限に対する変更の取得を無効化できます。これを行うには、子プロセス・フォーム表に作成された次のトリガーを削除するSQLスクリプトを作成し、実行します。


注意:

これらのトリガーは、権限割当てスケジュール済タスクによって作成されます。


スクリプトの実行後、割り当てられた権限に対する変更はステージング表にコピーされません。

次に、子プロセス・フォーム表のトリガーを削除するSQLスクリプトのサンプルを示します。

create or replace
TRIGGER UD_REQENTC_I_TRG
  AFTER INSERT ON UD_REQENTC
  FOR EACH ROW
  BEGIN
    INSERT INTO ENT_ASSIGN_DELTA(ENT_ASSIGN_DELTA_KEY, orc_obi_key,ENT_OPERATION,DELTA_TABLE_OST_STATUS,DELTA_ENT_CODE,valid_from_date,OIU_KEY,SDK_TYPE  )
      VALUES(ENT_ASSIGN_DELTA_SEQ.nextval,:new.orc_key,'grant',(select sdk_key from sdk where sdk_name='UD_REQENTC'),:new.UD_REQENTC_LKUP,sysdate,(select oiu.OIU_KEY from OIU oiu where oiu.ORC_KEY =:new.orc_key),'P');
 END

UD_REQENTCは、権限フィールドを含む子フォーム名です。これは動的に生成されます。

37.6 権限関連レポート

次の事前定義済レポートは、割り当てられた権限に関するデータを提供します。


注意:

これらのレポートを表示するには、ADMINISTRATORSグループのメンバーである必要があります。

レポートでは、特定のユーザーに対する同じ権限の重複した割当ては抑制されます(ENT_表にコピーされないため)。たとえば、ターゲット・システムでユーザーJohn DoeにSales Superintendentロールが2回割り当てられた場合、レポートには、この権限のインスタンスが1つのみ示されます。


37.6.1 権限アクセス・リスト

「権限アクセス・リスト」レポートには、レポートの生成時に指定した権限を現在割り当てられているユーザーが一覧表示されます。このレポートには、権限に関する基本情報、および権限が割り当てられているユーザーのリストが表示されます。

37.6.2 権限アクセス・リスト履歴

「権限アクセス・リスト履歴」レポートには、レポートの生成時に指定した権限を割り当てられていたユーザーが一覧表示されます。このレポートには、権限に関する基本情報、および権限が割り当てられていたユーザーのリストが表示されます。

37.6.3 ユーザー・リソース権限

「ユーザー・リソース権限」レポートには、レポートの生成時に指定したユーザーの現在の権限が一覧表示されます。このレポートには、基本的なユーザー情報および権限の詳細が表示されます。

37.6.4 ユーザー・リソース権限履歴

「ユーザー・リソース権限履歴」レポートには、レポートの生成時に指定したユーザーに過去に割り当てられていた権限の詳細が一覧表示されます。このレポートには、基本的なユーザー情報および権限の詳細が表示されます。