Oracle® Fusion Middleware Oracle Identity Governanceのためのアプリケーションの開発とカスタマイズ 12c (12.2.1.3.3) E91981-03 |
|
![]() 前 |
![]() 次 |
この章では、Oracle Identity Managerのワークフローの概念、機能およびアーキテクチャについて説明します。ワークフローのユースケース、最初のワークフローの設計、実装およびデプロイの手順を示します。また、この章ではプラグイン・ポイントを使用してリクエスト管理操作を拡張する方法と、証明およびアイデンティティ監査コンポジットをカスタマイズする方法を説明します。
この章のトピックは、次のとおりです:
ワークフローは、承認リクエストをルーティングし、手動のプロビジョニング・タスクをITプロビジョナまたはヘルプ・デスク履行にルーティングするために使用します。
この項では、主なワークフローの概念について、次の各トピックで説明します。
ユーザー・アクセスを管理し、ビジネス・プロセスを編成して、ユーザーが適切なアクセス権を取得できるようにすることが、アイデンティティ制御の主要機能となります。
ユーザーのアクセスを変更するプロセスは、ポリシーをトリガーするHRのイベントを介してユーザーが開始するか、または管理者が開始することができます。アクセスの変更がどのように開始されるかに関係なく、組織には次の要件があります。
開始されるビジネス・プロセスは柔軟で、組織の変化するビジネス・ルールに適合できる必要があります。
ビジネス・プロセスでは、即時アクセス権を付与するか、アクセス権を付与する前に手動操作の手順を導入して承認を求めるかを決定できる必要があります。
ビジネス・プロセスは、リクエストされた内容、リクエスト者、リクエストの対象者およびコンテキストに関する職務の分離(SoD)チェックなど、検証を実行できる必要があります。
手動操作が必要な場合、ビジネス・プロセスには、ユーザーまたはユーザー・グループに割り当てる機能、および応答がタイミングよく受信されなかったときにエスカレーション、再割当てまたは期限切れの処理を行う機能が必要です。
手動操作の場合、ビジネス・プロセスには、承認者から、コメントや添付ファイルなどの情報を収集する機能が必要です。
アクセス権の自動付与が不可能な場合、または組織のルールによって手動によるアクセス権付与が必要な場合、ビジネス・プロセスでは、外部システム(チケット発行システムなど)と対話できる必要があります。
すべての決定およびアクションを監査し、報告可能な方法で利用可能にして、組織がプロセスのパフォーマンスを計測したり、監査者がコンプライアンス要件を満たすことができるようにする必要があります。
Oracle Identity Managerでは、組織がこれらの要件を満たすことができる、柔軟かつ強力なアクセス・リクエスト機能が提供されています。
ワークフローに関連する基本概念は、リクエスト、承認、承認ワークフロー・ポリシー、SOAコンポジット、パートナ・リンク、BPELプロセス、ITプロビジョナ、リクエストWebサービス、リクエスト・コールバック、プロビジョニング・コールバック、リクエスト・ペイロードおよびヒューマン・タスクです。
Oracle Identity Managerのワークフローの主要概念として、次のような用語があります。
リクエスト
Oracle Identity Managerでは、リクエストは、あるアイデンティティまたはアカウントで操作を実行する必要がある場合に起動されるビジネス・プロセスを指します。これらの操作の例として、ユーザーの作成、アカウントのプロビジョニング、ユーザーへのロールの付与があります。リクエストには、すぐに履行可能な場合(直接的な操作)と、承認の形式で手動操作が必要な場合(リクエストベースの操作)があります。ユーザーが操作を実行しようとすると、Oracle Identity Managerは、その操作が直接的であるか、ログイン中のユーザーの認可ポリシーに基づくリクエストベースであるかを確認します。
承認
リクエストは1レベルの承認を通過します。これは、対応する操作のワークフロー・ポリシーで構成されます。
バルク・リクエストは1レベルの承認を通過します。これは、対応するバルク操作のワークフロー・ポリシーで構成されます。承認後に、子リクエストが生成されます。これらの子リクエストは、単純リクエストと同じ承認プロセスに従います。
承認ワークフロー・ポリシー
承認ワークフロー・ポリシーは、リクエスト・エンジンがSOAコンポジット選択して呼び出せるようにする、管理者が構成したルールから構成されます。承認ワークフロー・ポリシーで定義されたルールを使用して、リクエスト・エンジンは、そのリクエストを自動承認するのか、SOAコンポジットを起動する必要があるのかを決定します。
SOAコンポジット
SOAコンポジットは、単一のアプリケーション内に一括して設計されデプロイされた複数のサービス、サービス・コンポーネントおよび参照の集合です。このサービス、サービス・コンポーネントおよび参照間のワイヤリングによってメッセージ通信が可能となります。コンポジットにより、メッセージに記述された情報が処理されます。
パートナ・リンク
パートナ・リンクを使用すると、BPELプロセス・サービス・コンポーネントと対話する外部サービスを定義できます。パートナ・リンクは、SOAコンポジット・エディタまたはOracle BPELデザイナのBPELプロセス・サービス・コンポーネント内にサービスまたは参照(JCAアダプタ経由など)として定義できます。
BPELプロセス
BPELプロセスは、プロセスの編成と、同期または非同期プロセスの保存に使用されます。一連のビジネス・アクティビティとサービスをエンドツーエンドのプロセス・フローに統合するビジネス・プロセスを設計します。
ITプロビジョナ
ITプロビジョナは、履行ユーザーまたはヘルプ・デスク・ユーザーとも呼ばれ、手動のプロビジョニング・リクエストの履行を担当する人です。
リクエストWebサービス
リクエストWebサービスは、Oracle Identity Managerに付属するWebサービスです。顧客がリクエスト、ユーザー、ロール、組織、アカウント、権限、アプリケーション・インスタンスおよびカタログ情報を公開できるようにし、承認ワークフローによってデータ・ドリブンのルーティング決定が実行されるようにします。
リクエスト・コールバック
リクエスト・コールバックは、承認結果(承認/拒否)の受信時にSOAコンポジットによって起動されるWebサービスです。リクエスト・エンジンは、承認の目的でSOAコンポジットを起動すると、このコンポジットがリクエスト・コールバックを起動して承認または拒否の決定を提供するまで、リクエストを一時停止します。この決定によって、リクエスト・エンジンは、リクエストの履行(承認された場合)、リクエストの拒否(拒否された場合)に進むことができます。
プロビジョニング・コールバック
プロビジョニング・コールバックは、接続なしのプロビジョニングの一部として起動されるWebサービスです。ITプロビジョナまたは履行ユーザーが、接続なしのプロビジョニング・リクエストを履行し、タスクを完了とマークすると、SOAコンポジットはプロビジョニング・コールバックを起動して、プロビジョニング・ワークフローの完了を許可するプロビジョニング・ステータスを送信します。
リクエスト・ペイロード
リクエスト・エンジンはSOAコンポジットを起動して、それにリクエスト、リクエスタおよびターゲット・ユーザーに関するいくつかの基本情報を渡します。この情報をリクエスト・ペイロードと呼びます。
ヒューマン・タスク
ヒューマン・タスクにより、ユーザーまたはグループが、エンドツーエンドのビジネス・プロセス・フローの一環として実行するタスクを記述するワークフローのモデリングが提供されます。
ワークフロー・アーキテクチャに関わるコンポーネントは、認可ポリシー、Business Process Execution Language (BPEL)プロセス、ヒューマン・タスク、およびリクエストの承認または却下です。
ワークフローは、Oracle Identity Managerで次の目的に使用されます。
承認のために、承認者にリクエストをルーティングする
履行のために、ITプロビジョナまたはヘルプ・デスクに手動のプロビジョニング・タスクをルーティングする
図13-1に、Oracle Identity Managerのワークフローの概要を示します。
ヒューマン・タスクの完了に関わる手順については、ヒューマン・タスク・プロセス・フローを参照してください。
ヒューマン・タスクの完了には、様々なユーザー開始アクション、リクエスト作成、承認ワークフロー・ポリシー、SOAコンポジット、人手の介入が必要かどうか、リクエストの承認または却下が含まれています。
ヒューマン・タスクを完了するまでには、図13-1に示すように、次のアクションが発生します。
ユーザーは、結果としてリクエストになる操作を開始します。そのような操作の例を次に示します。
自己登録
ユーザー・プロファイルの変更(ただし、ロックの、ロック解除およびパスワードの管理操作を除く)
ロール付与操作
アプリケーション・インスタンス操作(接続なしのプロビジョニングを含む)
権限操作
バルク操作
リクエストが作成されます。適切な検証の後に、リクエスト・エンジンは承認ワークフロー・ポリシーを評価し、起動するSOAコンポジットを選択します。
承認ワークフロー・ポリシーが構成されていない場合は、デフォルトのSOAコンポジットが承認に対して選択されます。
SOAコンポジットには、Business Process Execution Language (BPEL)プロセスが含まれています。
BPELプロセスは、Webサービスを起動して、リクエストに関する次のような詳細を取得します。
注意:
この手順はオプションです。これは、BPELプロセスで様々なエンティティに関連する追加情報が必要な場合にのみ、必要です。
カタログからの項目の詳細
ターゲット・ユーザー情報
リクエスタ情報
BPELプロセスは、優先度、承認者および通知などのプロパティを計算するために、追加のロジックを起動します。
承認および手動の履行中など、手動操作が必要な場合、プロセスはヒューマン・タスクを起動します。
ヒューマン・タスクには、ユーザーまたはロールに対して承認タスクの割当て、期限切れ、エスカレーションを実行するためのロジックが含まれます。ヒューマン・タスクは、ユーザーおよびロールを静的または動的に割り当てることができます。静的割当ての場合、BPELプロセスで承認者を決定し、パラメータとしてヒューマン・タスクに渡すことができます。動的割当ての場合、Oracle Business Rules (OBR)で作成されたルールを使用して、承認者が動的に決定されます。
通常、BPELプロセスには1つのヒューマン・タスクが含まれます。インスタンスによっては、BPELプロセスで複数のヒューマン・タスクのうちの1つを選択するデシジョン・ポイントが起動される場合があります。
ヒューマン・タスクが完了すると、(承認の)承認または拒否のレスポンス、あるいは(手動履行の)完了のレスポンスが、Oracle Identity Managerへのコールバック・サービスを介して戻され、操作が再開されます。
事前定義済SOAコンポジットを承認プロセスとして使用できます。
表13-1に、承認プロセスとして使用可能なOracle Identity Managerにおける事前定義済SOAコンポジットを示します。
表13-1 事前定義済ワークフロー・コンポジット
ワークフロー・コンポジット | 説明 |
---|---|
DefaultRequestApproval |
デフォルトのリクエスト・レベルの承認。デフォルトでは、リクエスト・レベルの承認の場合、SYSTEM ADMINISTRATORSロールに送信されます。 さらに、このコンポジットが証明ユースケースによって呼び出されます。タスクは次のいずれかの状態になります。
注意: 証明ユースケースについては、Oracle Identity Governanceでのセルフ・サービス・タスクの実行のアイデンティティ証明の管理を参照してください。 |
DefaultOperationalApproval |
デフォルトの操作レベルの承認。デフォルトでは、操作レベルの承認の場合、承認タスクはSYSTEM ADMINISTRATORSロールに割り当てられます。 さらに、コンポジットが証明ユースケースによって呼び出され、タスクが自動承認されます。 |
BeneficiaryManagerApproval |
これは、受益者のマネージャの承認を必要とします。これは次のものと関連付けることができます。
リクエスト・レベルでは、リクエストに複数の受益者が存在する可能性があるため、このコンポジットは、承認の操作レベルで関連付けられる必要があります。 |
DefaultRoleApproval |
このSOAコンポジットにより、承認のためにSYSTEM ADMINISTRATORSロールに割り当てられる単一の承認タスクが作成されます。 |
RequesterManagerApproval |
このSOAコンポジットにより、承認のためにリクエスタのマネージャに割り当てられる単一の承認タスクが作成されます。 注意: このコンポジットは、承認されていないリクエスト・モデル(ユーザーの自己登録など)に関連付けることはできません。 |
DefaultSODApproval |
このSOAコンポジットにより、システム管理者に割り当てられる承認タスクが作成され、SoDチェックが開始されて、SoDの結果が使用可能になると、SoD管理者ロールに割り当てられる別の承認タスクが作成されます。これは、SoDチェックの必要に応じて、操作レベルでリソースをプロビジョニングまたは変更するリクエスト・モデルに関連付けられる必要があります。 |
DisconnectedProvisioning |
このSOAコンポジットは、システム管理者にタスクを割り当て、接続なしのプロビジョニングを実行します。 |
ProvideInformation |
このSOAコンポジットは、アカウント/権限の詳細を要求しているリクエスタにタスクを割り当てます。 |
CertificationProcess |
これは、デフォルトの証明コンポジットです。このコンポジットは、証明タスクの証明者(ユーザー)への割当てに対応します。このコンポジットは、次の証明タスク・イベントの管理も行います。
|
CertificationOverseerProcess |
このコンポジットは、証明タスクを証明者(ユーザー)に割り当てます。さらに、コンポジットは、証明者のタスクの完了後の監督者へのタスクのルーティング処理も行います。Oracle SOA Business Rulesを使用してタスクのルーティングが処理されます。このコンポジットは、次の証明タスク・イベントに対応します。
|
SOAコンポジットを作成してデプロイし、承認プロセスとして使用できます。
承認プロセスとして使用できる新規SOAコンポジットを作成するには、次の手順を実行します。
特定の基準に準拠することで、承認プロセスとして使用できる新規SOAコンポジットを作成できます。
SOAコンポジットを承認プロセスとして使用するには、SOAコンポジットが特定の基準に準拠している必要があります。この項では、基準と、新規SOAコンポジットの作成方法について説明します。次の項目が含まれます。
SOAコンポジットを承認プロセスとして使用するには、SOAコンポジットが特定の基準に準拠している必要があります。このような基準によって、リクエスト・サービスはコンポジットを適切にインスタンス化し、管理できます。基準は、次のとおりです。
次の属性はBPELプロセスに必須です。
タイプが文字列のRequestID
タイプが文字列のRequestModel
タイプが文字列のRequestTarget
タイプが文字列のURL
XML要素のRequesterDetails
XML要素のBeneficiaryDetails
XML要素のObjectDetails
XML要素のOtherDetails
RequestID、RequestModel、RequestTargetおよびURL属性には、常に、すべてのタイプのリクエストの有効な値が設定されます。
RequesterDetailsはXML要素です。この要素には、認証を必要とするすべてのリクエストの有効な値が入力されます。タイプが自己登録ユーザーのリクエストは、リクエスタが匿名ユーザーのため、リクエスタの詳細が空です。
BeneficiaryDetailsはXML要素です。この要素には、「リソースのプロビジョニング」、「ロールの割当て」など、受益者があるすべてのリクエストの有効な値が入力されます。この要素には、リクエストが1人の受益者に関連している場合にのみ入力されます。リクエストが複数の受益者に関連している場合、BeneficiaryDetailsは空になります。BeneficiaryDetails要素には、常に、受益者がある単純リクエストおよび子リクエストの有効な値が設定されます。このため、承認の操作レベルで承認プロセスとして使用されるSOAコンポジットでこのXML要素を使用することをお薦めします。これは、承認の操作レベルでは、リクエストが1人の受益者にのみ関連付けられているためです。
ObjectDetailsはXML要素です。この要素には、リソース・エンティティに関連付けられているすべてのリクエストの有効な値が入力されます。この要素には、リクエストが1つのリソースに関連している場合にのみ入力されます。リクエストが複数のリソースに関連している場合、ObjectDetailsは空になります。ObjectDetails要素には、常に、リソースに関連付けられている単純リクエストおよび子リクエストの有効な値が設定されます。このため、承認の操作レベルで承認プロセスとして使用されるSOAコンポジットでこのXML要素を使用することをお薦めします。これは、承認の操作レベルでは、リクエストが1つのリソースにのみ関連付けられているためです。
BPELプロセスに必須のすべての属性は、RequestDetails.xsdおよびApprovalProcess.xsdから参照されます。これらのファイルは、変更または削除できないテンプレートSOAコンポジットにあります。
Oracle Identity Managerでは、カスタムSOAコンポジットを作成するヘルパー・ユーティリティが提供されます。このユーティリティでは、必要な基準のすべてに準拠したテンプレートSOAプロジェクトが作成されます。このユーティリティは、OIM_HOME/workflows/new-workflowディレクトリに配置されています。
注意:
JAVA_HOME環境変数を設定してから、このユーティリティを実行する必要があります。
このユーティリティには、Apache Antバージョン1.9.8以上が必要です。
JDeveloperは、デフォルトではOracle Identity Managerで使用できません。SOAのサポートのためには、SOA推奨のJDeveloperをインストールします。
ヘルパー・ユーティリティを実行してカスタムSOAコンポジットを作成するには、次の手順を実行します。
新規SOAコンポジットの作成後、それを承認プロセスとして使用するにはデプロイする必要があります。
BPELへのワークフロー・コンポジットのデプロイの詳細は、Oracle SOA Suite開発者ガイドのSOAコンポジット・アプリケーションのデプロイを参照してください。
注意:
コンポジットは新規バージョンで再デプロイされる必要があります。コンポジットがSOAで同じバージョンで再デプロイされる場合、コンポジットによって開始されたOracle Identity Managerの保留中のすべての承認が失効となり、ユーザーのTaskListから削除されます。既存のSOAコンポジットのデプロイの詳細は、Oracle SOA Suite開発者ガイドのOracle JDeveloperで既存のSOAアーカイブをデプロイする方法を参照してください。
Vision社のリクエストのチュートリアルでは、アプリケーションを作成し、アプリケーションのワークフローを開発し、アプリケーション用に承認および履行を構成します。
この項では、最初のワークフローを設計する方法について説明します。次の項目が含まれます。
このチュートリアルのユースケースの最終結果は、アプリケーション・インスタンス、BPELプロセスおよび複数のヒューマン・タスクで構成される承認用のSOAコンポジット、および事前定義済の接続なしSOAコンポジットへの変更です。
このチュートリアルは、次のユースケースに基づいています。
Vision Corp社は、FinApp(メインフレームベースのアプリケーション)を使用しています。このアプリケーションは、リモートから起動可能なAPIを持ちません。したがって、アカウントはヘルプ・デスクによって手動で管理されます。
Vision Corp社の従業員は、アクセス・リクエスト・カタログを使用して、アプリケーションでアカウントおよび権限をリクエストします。
承認は、リクエストされているアクセスのリスク・レベルに基づいて行われます。リスク・レベルが低い場合、必要なのは受益者のマネージャの承認のみです。リスク・レベルが中の場合、受益者のマネージャまたは認証者の承認が必要です。リスク・レベルが高の場合、受益者のマネージャおよび監査レビュー・チームの承認が必要です。
承認の後、リクエストはアセット管理チームのメンバーによって履行される必要があります。
このチュートリアルでは、アプリケーションとワークフローの作成方法、およびアプリケーションでの承認および履行の構成方法について説明します。
このチュートリアルでは、次の結果が得られます。
アプリケーション・インスタンス
次で構成される、承認用のSOAコンポジット
BPELプロセス
複数のヒューマン・タスク
事前定義された接続なしのプロビジョニングSOAコンポジットの変更
チュートリアルを開始するには、SOAデザインタイムとともにOracle SOAスイートおよびJDeveloperをインストールする、数個のロールと1つの組織をVisionという名前で作成するなど、特定の前提条件を満たす必要があります。
このチュートリアルでは、次を前提としています。
Oracle SOA Suiteは、SOAインフラストラクチャが構成されているホストにインストールされています。
JDeveloper 12.2.1.3は、SOAコンポジット・エディタ12.2.1.3およびBPELデザイナ12.2.1.3.0で使用できます。
SOA Jdeveloper拡張の必須パッチがある場合はそれが適用されています。必須パッチの詳細は、Oracle Fusion Middlewareリリース・ノートの「Oracle Identity Managerのインストールに必要な必須パッチ」を参照してください。
BPELアクティビティやパートナ・リンクなどの基本的なBPEL構成要素と、基本的なXPath関数について理解しているユーザーを対象にしています。
SOAコンポジット・エディタとOracle BPELデザイナ(BPELプロセスを設計およびデプロイするための環境)を熟知している必要があります。ただし、SOAコンポジットの詳細は、Oracle SOA SuiteでのSOAアプリケーションの開発のSOAコンポジット・アプリケーションの開発のスタート・ガイドを参照してください。
2つのロール(監査レビュー・チームおよびアセット管理チーム)が作成され、メンバーが割り当てられています。
Visionという名前の組織が作成されています。
このチュートリアルの前提条件として、アプリケーション・インスタンスを作成し、アプリケーション・インスタンス属性を定義し、フォームを作成し、アプリケーション・インスタンスを1つ以上の組織に公開し、アプリケーション・インスタンスに権限をリンクし、権限があるアプリケーション・インスタンスをカタログに公開する必要があります。
この項では、アプリケーション・インスタンスを作成および公開し、それに権限をリンクする方法について説明します。次の項目が含まれます。
FinAppアプリケーション・インスタンスを作成するには、次の手順を実行します。
アプリケーション・インスタンスの属性を定義し、フォームを作成するには、次の手順を実行します。
「構成」で、「フォーム・デザイナ」をクリックします。
FinAppフォームを検索して選択します。このフォームは、接続なしアプリケーション・インスタンスを保存すると自動的に作成されます。
注意:
フォームを作成して編集するには、アクティブなサンドボックスで作業している必要があります。
「フィールド」タブをクリックし、ツールバーで「編集」アイコンをクリックします。
デフォルトでは、次のフィールドが作成され、使用可能になります。
フィールド | 説明 |
---|---|
ITリソース |
アカウントが作成されるITリソース・インスタンス |
アカウント・ログイン |
アプリケーションのログイン |
パスワード |
アプリケーションへのログイン中に使用されるパスワード |
アカウントID |
アカウントの作成時に、アプリケーションによって生成される一意の識別子 |
サービス・アカウント |
アクセス・リクエスト中のみに使用されるフラグ |
注意:
「アカウントID」および「ITリソース」などの属性は、通常、アクセス・リクエスト・ユーザー・インタフェースには表示されません。ユースケースによっては、これらの属性と関係がない場合があります(たとえば、携帯電話リクエスト)。これらの属性を非表示にする場合は、フォームをカスタマイズできます。フォームをカスタマイズする方法の詳細は、Oracle Identity Governanceの管理のカスタム属性の構成を参照してください。
属性を追加します。この例では、次の属性を追加します。
Account Description: データ型はTextです。
注意:
カスタム属性を作成する方法の詳細は、Oracle Identity Governanceの管理のカスタム属性の構成を参照してください
属性を追加した後、「フィールド」タブの構成が次の表と同等であることを確認します。
表示ラベル | 名前 | タイプ |
---|---|---|
アカウントの説明 |
AccountDescription |
テキスト |
アカウントID |
UD_FINAPP_ACCOUNTID |
テキスト |
ITResource |
UD_FINAPP_IT |
数値 |
アカウント・ログイン |
UD_FINAPP_LOGIN |
テキスト |
パスワード |
UD_FINAPP_PASSWORD |
テキスト |
サービス・アカウント |
serviceaccount |
チェック・ボックス |
ユーザーが権限をリクエストするのを許可するには、子オブジェクトを追加し、権限としてタグ付けされる属性を追加する必要があります。これを行うには、次のようにします。
「子オブジェクト」タブをクリックし、ツールバーで「追加」をクリックします。
子オブジェクト名を入力し、「OK」をクリックして子オブジェクトを作成します。
作成した子オブジェクトをクリックします。
「アクション」、「作成」の順に選択し、新規属性を作成します。ポップアップ・ウィンドウから「参照」を選択し、「OK」をクリックします。次のフィールドに値を入力します。
名前: プロファイル名
表示名: プロファイル名
「バルクで使用」を選択して、複数のユーザーのアクセスをリクエストするときに、リクエスタによる値の指定を許可します。
「参照タイプ」下の新規参照タイプの作成をクリックします。
次に示すように、新しいLookupを作成し、値を指定します。
コード: Lookup.FinApp.Profile
意味: Lookup.FinApp.Profile
説明: Lookup.FinApp.Profile
次の表に示す値を使用して、3つの参照コードを作成します。
意味 | コード |
---|---|
FinAppユーザー |
FinAppUser |
FinApp管理者 |
FinAppAdministrator |
FinAppオペレータ |
FinAppOperator |
注意:
スケジュール済タスクと参照APIを使用して、参照定義を移入することもできます。
「検索可能」、「権限」および「「検索可能」ピックリスト」オプションを選択します。
「保存して閉じる」をクリックします。
「親オブジェクトに戻る」をクリックします。
「ビューの再生成」をクリックして、新しい属性でUIフォームを再作成します。
すべてのタブを閉じます。
サンドボックスを公開します。
1つ以上の組織にアプリケーション・インスタンスを公開するには、次の手順を実行します。
カタログでアプリケーション・インスタンスとその権限を構成するようにカタログ項目詳細を編集します。
カタログでアプリケーション・インスタンスとその権限を構成するには、次の手順を実行します。
カタログでアプリケーション・インスタンスとその権限を構成した後、承認用SOAコンポジットを登録および設定できます。具体的には、承認ワークフローを作成し、リクエストとカタログのデータをBPELプロセスで使用できるようにし、ワークフローの選択を構成し、ヒューマン・タスクを構成し、ヒューマン・タスクおよびBPELマッピングを構成し、SOAコンポジットをデプロイし、ワークフロー・ルールを作成します。
この項の内容は次のとおりです。
ワークフロー選択ルールを定義するには、次の手順を実行します。
次の変数を定義します。
catalogData as Type - Element CatalogData。これを行うには、「変数」アイコンをクリックし、「変数」ダイアログ・ボックスの「作成」アイコンをクリックします。この変数には、InvokeCatalogDetailsステップの出力として返されるカタログ詳細が格納されます。
workflowtype as Type - Element StageOutput。この変数には、呼び出されるワークフローのタイプが格納されます。
「SOAコンポジット」ビューに移動し、図13-12に示すようにビジネス・ルール・コンポーネントを追加します。
「ビジネス・ルールの作成」ダイアログ・ボックスで、ルール・ディクショナリの名前としてWorkflowSelectionを指定します。
入力としてcatalogDataを、出力としてworkflowstageを指定します。
BPELプロセスに切り替えます。SOAコンポーネントを開き、ビジネス・ルール・コンポーネントを追加します。
そのルールを編集し、WorkflowSelection
という名前に変更します。
「ルール」ダイアログ・ボックスで、「ディクショナリ」タブをクリックし、手順3で定義したWorkflowSelectionディレクトリを選択します。
図13-13に示すように、catalogData変数をルールの入力にマップします。「ディクショナリ」タブで「入力ファクトの割当て」サブタブを選択して、プラス(+)アイコンをクリックします。
図13-14に示すように、workflowtype変数をルールの出力にマップします。「ディクショナリ」タブで「出力ファクトの割当て」サブタブを選択します。
図13-15に示すように、WorkflowSelectionルールの前にAssignアクティビティを追加し、その名前をAssignRuleInputに変更します。
図13-16に示すように、InvokeCatalogOperationの出力をcatalogData変数にマップします。
「SOAコンポジット」ビューに切り替えます。ビジネス・ルール・コンポーネントを右クリックし、「編集」を選択します。
「ルールの作成」をクリックします。
そのルールの名前をRule1からAuto Approval
に変更します。
ルールを編集し、図13-17に示すように、「プロパティ」ダイアログ・ボックスでstageTypeプロパティを指定します。
stageTypeプロパティを指定するには、次の手順を実行します。
「THEN」の下の「「挿入」」アクションをクリックします。
「新規アサート」を選択します。
「新規アサート」の隣に追加された「<ターゲット>」をクリックして、「ステージ」を選択します。
「<プロパティの編集>」をクリックします。図13-17に示すように、「プロパティ」ダイアログ・ボックスが表示されます。
同様に、図13-18に示すように、「マネージャ」、「シリアル」、および「パラレル」承認ルールを作成します。
BPELプロセスに切り替えます。図13-19に示すように、WorkflowSelectionルールの後にswitchアクティビティを追加します。
そのSwitchアクティビティを選択し、図13-20に示すように2つのSwitch Caseステップを追加します。
図13-21に示すように、条件の名前をSerial Approval、Parallel Approval、Manager Approvalに変更します。
図13-22に示すように、デフォルト・ヒューマン・タスクをManager Switch Caseにドラッグします。
「SOAコンポジット」ビューに切り替えます。図13-23に示すように、SerialApprovalとParallelApprovalの2つのヒューマン・タスクを追加します。
BPELプロセスに切り替えます。Manager Approval Switch Caseを編集し、次の式を追加します。
bpws:getVariableData('workflowtype','/ns18:StageOutput/ns18:stageType')='Manager'
最初に、新しく追加したタスクを構成し、次にそれらをBPELプロセスに書き込む必要があります。
注意:
式の追加には式ビルダーの使用をお薦めします。
この項では、ヒューマン・タスクを構成する方法について説明します。この章の内容は次のとおりです。
パラレル・ヒューマン・タスクを構成するには、次の手順を実行します。
「SOAコンポジット」ビューに切り替えます。パラレル承認タスクを編集します。
「データ」タブをクリックし、パラレル承認タスクのプロパティにリストされている属性を追加します。
「データ」タブでタスク・パラメータを検証し、「一般」タブをクリックします。
「タスクのタイトル」を<%/task:task/task:payload/ns2:BeneficiaryDetails/ns2:DisplayName%> has submitted a request for approval
に設定します。これを行うには、次のようにします。
タスク・タイトルの横の「編集」をクリックし、「task:payload」、「ns2:BeneficiaryDetails」、「ns2:DisplayName」の順に選択します。
「式に挿入」をクリックします。図13-24に示すようにタスク・タイトルが表示されます。
<%/task:task/task:payload/ns2:BeneficiaryDetails/ns2:DisplayName%>
次のようにこれを編集して意味のあるタイトルを構成できます。
<%/task:task/task:payload/ns2:BeneficiaryDetails/ns2:DisplayName%> has submitted a request for approval.
「タスク所有者」を「グループ」およびSYSTEM ADMINISTRATORSに設定します。
「通知」タブをクリックし、次に「詳細」をクリックします。
「通知をアクション可能にする」オプションを選択します。
「割当て」タブをクリックします。
パラレル・ステージを追加します。これを行うには、フロー・チャートで「ステージ1」を選択し、プラス(+)アイコンをクリックし、「パラレル・ステージ」を選択します。
ステージを選択し、「編集」をクリックします。名前としてManager
を指定します。
図13-25に示すように、もう一方のステージを選択し、名前としてReview Team
を指定します。
2つのステージの後の鉛筆アイコンをクリックします。「投票結果」ダイアログ・ボックスで、投票結果をAPPROVEに設定します。デフォルト結果をREJECTに設定します。これは、両方の承認者がタスクを拒否した場合、リクエストが、デフォルト結果に基づいて完了状態に移動するためです。
「添付ファイルとコメントの共有」オプションを選択します。
「投票結果」ダイアログ・ボックスで、「OK」をクリックします。
「最小のパーセントに達するとただちに投票結果がトリガーされます」オプションが選択されていることを確認します。
Managerステージで<参加者の編集>を選択し、「編集」をクリックします。
「参加者タイプの追加」ダイアログ・ボックスで、「参加者」タイプを「単一」に設定します。「参加者のリストの作成で使用」リストから、 「ルールベース」を選択し、ルールを使用して参加者リストを作成します。
「ルールセットのリスト」フィールドにManagerと入力します。また、ラベルをManagerに編集します。
「参加者の追加」ダイアログ・ボックスで、「OK」をクリックします。「ParallelApprovalRules.rules」タブが表示されます。
図13-26に示すように、ルールを作成します。
注意:
「ルールの作成」ページで、「IF」句の「<パターンの挿入>」は、デフォルトでは表示されません。「<パターンの挿入>」を表示するには、「ルール1」ラベルの前の2つの下矢印をクリックして「ルール1」を展開し、図13-26に示すように「拡張モード」オプションを選択します。
同様に、「参加者タイプの追加」ダイアログ・ボックスに次の値を指定して、Review Teamステージを構成します。
タイプ: 単一。
ラベル: Review Team。
参加者のリストの作成で使用: ルールベース。
ルールセットのリスト: ReviewTeam。
「参加者が手動でタスクを申告」を選択します。
図13-27に示すように、参加者ルールを作成します。
表13-2に、パラレル承認タスクを構成する際の「データ」タブの属性をリストします。
表13-2 パラレル・ヒューマン・タスクの「データ」タブの属性
パラメータ | データ型 |
---|---|
RequestID |
{http://www.w3.org/2001/XMLSchema}string |
RequestModel |
{http://www.w3.org/2001/XMLSchema}string |
RequestTarget |
{http://www.w3.org/2001/XMLSchema}string |
RequesterDetails |
{http://xmlns.oracle.com/request/RequestDetails}RequesterDetails |
BeneficiaryDetails |
{http://xmlns.oracle.com/request/RequestDetails}BeneficiaryDetails |
ObjectDetails |
{http://xmlns.oracle.com/request/RequestDetails}ObjectDetails |
OtherDetails |
{http://xmlns.oracle.com/request/RequestDetails}OtherDetails |
url |
{http://xmlns.oracle.com/request/RequestDetails}url |
Catalogdata |
{http://xmlns.oracle.com/RequestServiceApp/RequestDataService/CatalogData}CatalogData |
RequesterDisplayName |
{http://www.w3.org/2001/XMLSchema}string |
BeneficiaryDisplayName |
{http://www.w3.org/2001/XMLSchema}string |
Requester |
{http://www.w3.org/2001/XMLSchema}string |
表13-3に、シリアル承認タスクを構成する際の「データ」タブの属性をリストします。
表13-3 シリアル承認タスクの「データ」タブの属性
パラメータ | データ型 |
---|---|
RequestID |
{http://www.w3.org/2001/XMLSchema}string |
RequestModel |
{http://www.w3.org/2001/XMLSchema}string |
RequestTarget |
{http://www.w3.org/2001/XMLSchema}string |
RequesterDetails |
{http://xmlns.oracle.com/request/RequestDetails}RequesterDetails |
BeneficiaryDetails |
{http://xmlns.oracle.com/request/RequestDetails}BeneficiaryDetails |
ObjectDetails |
{http://xmlns.oracle.com/request/RequestDetails}ObjectDetails |
OtherDetails |
{http://xmlns.oracle.com/request/RequestDetails}OtherDetails |
url |
{http://xmlns.oracle.com/request/RequestDetails}url |
Catalogdata |
{http://xmlns.oracle.com/RequestServiceApp/RequestDataService/CatalogData}CatalogData |
RequesterDisplayName |
{http://www.w3.org/2001/XMLSchema}string |
BeneficiaryDisplayName |
{http://www.w3.org/2001/XMLSchema}string |
Requester |
{http://www.w3.org/2001/XMLSchema}string |
作成したSOAコンポジットは、単一およびバルク操作に使用できます。コンポジットが特定の操作に対して起動されるようにするには、Oracle Identity Managerでワークフロー・ルールを作成する必要があります。
Oracle Identity Managerでワークフロー・ルールを作成するには、次の手順を実行します。
注意:
各タイプのリクエストに対して複数のSOAコンポジットを作成可能ですが、こチュートリアルで示すように単一のSOAコンポジットを使用して、複数のヒューマン・タスクを作成することをお薦めします。Oracle Business Rulesで作成したルールを使用すると、このチュートリアルで示すように、ヒューマン・タスクを選択できます。
ヒント:
SOAコンポジットBPELプロセスであるリクエストWebサービスにサポートされるエンティティ(カタログ、ユーザー、ロールまたは組織など)のカスタム属性の値にアクセスできます。カスタム属性またはUDFはCustomAttribute要素の一部です。UDFを含むカタログ・エンティティのインスタンスは次のとおりです。
<ns12:CustomAttribute Name="ApproverRolePhoneNumber"> <ns5:Value>1234</ns5:Value> </ns12:CustomAttribute> <ns12:CustomAttribute Name="ApproverRoleEmailId"> <ns5:Value>approver@mydomain.com</ns5:Value> </ns12:CustomAttribute>
たとえば、BPELプロセスでApproverRolePhoneNumberカタログのUDF値にアクセスするには、次のように指定します。
bpws:getVariableData('catalogDetails','CatalogData','/ns22:CatalogData/ns22:CustomAttribute[@Name = string("ApproverRolePhoneNumber")]/ns24:Value')
リクエストレベルのコンポジットはバルク・リクエストに適用でき、操作レベルのコンポジットは単一および子リクエストに適用できます。
oim-config.xmlファイルにDefaultRequestLevelCompositeプロパティおよびDefaultOperationLevelCompositeプロパティを設定すると、デフォルトのコンポジットを構成できます。これらのプロパティは、Oracle Enterprise ManagerのSystem MBean Browserを使用して編集できます。これらのプロパティのデフォルト値は、それぞれdefault/DefaultRequestApproval!6.0
とdefault/DefaultOperationalApproval!6.0
になります。
これらのプロパティの値は、次の形式で入力します。
NAMESPACE/COMPOSITE_NAME!VERSION
次に例を示します。
default/AddAccessApproval!2.0
DefaultRequestLevelCompositeプロパティおよびDefaultOperationLevelCompositeプロパティのデフォルト値を変更する場合は、Oracle Identity Managerを再起動する必要があります。
独自のタスクフローを作成し、そのカスタム・タスクフローを呼び出すようにDefaultRequestApprovalコンポジットのヒューマン・タスクを構成します。
デフォルトでは、すべてのタスクは、保留中の承認のデフォルト・タスク詳細ページを使用するように構成されています。このタスクフローはカスタマイズできません。ただし、タスク詳細ページのUIをカスタマイズしたり、その他の情報を表示することはできます。この項では、独自のタスクフローを作成し、DefaultRequestApprovalコンポジットのヒューマン・タスクを構成して、そのカスタム・タスクフローを呼び出す方法を説明します。
この項の内容は次のとおりです。
カスタム・タスク詳細タスクフローを開発するためには、Oracle Identity Manager、SOAおよびJDeveloperをインストールします。
カスタム・タスク詳細タスクフローを開発する前に、コンピュータに次のソフトウェアをインストールしておく必要があります。
Oracle Identity Governance 12c (12.2.1.3.0)
Oracle SOA 11g (12.2.1.3)
Oracle SOAコンポジット・エディタ拡張機能を備えたJDeveloper 11g (12.2.1.3)
DefaultRequestApprovalコンポジットのヒューマン・タスクのカスタム・タスクフローを作成します。
この項では、カスタム・タスクフローの開発方法について説明します。次の項目が含まれます。
DefaultRequestApprovalコンポジットのヒューマン・タスクのカスタム・タスクフローを作成するには、次の手順を実行します。
Jdeveloperを開き、新規汎用アプリケーションを作成します。これを行うには、次のようにします。
アプリケーション名としてRequestApprovalTaskDetailsApp
を入力し、「次へ」をクリックします。
プロジェクト名としてRequestApprovalTaskDetails
を入力します。プロジェクト・テクノロジは選択しないでください。
「終了」をクリックします。
Oracle Identity Manager共有ライブラリを追加します。これを行うには、次のようにします。
RequestApprovalTaskDetailsプロジェクトを右クリックして、「プロジェクト・プロパティ」→「ライブラリとクラスパス」の順に選択します。
「ライブラリの追加」をクリックします。
「ディレクトリ」をクリックします。
IAM_HOME/server/jdev.lib/ディレクトリに移動し、「選択」をクリックします。
注意:
IAM_HOMEはOracle Identity Managerのホーム・ディレクトリのパスで、たとえばBEA_HOME/Oracle_IDM1/のようになります。ここでは、BEA_HOMEは、Oracle Identity Managerインストールのミドルウェア・ディレクトリのパスです。
OIMビュー共有ライブラリ→OIMモデル共有ライブラリを選択し、「OK」をクリックします。
「OK」をクリックします。
タスク詳細タスクフローを作成します。これを行うには、次のようにします。
shiphome内の次ディレクトリに移動します。
IAM_HOME/server/workflows/composites/
DefaultRequestApproval.zipファイルを解凍します。
Jdeveloperに戻り、RequestApprovalTaskDetailsを右クリックして、「新規作成」を選択します。
ヒューマン・タスクに基づいて、「Web層」、「JSF」、ADFタスクフローを選択します。
ファイル・ブラウザで、DefaultRequestApproval.zipを解凍したディレクトリに移動します。DefaultRequestApproval/ApprovalTask.taskファイルを選択します。
「タスク・フローの作成」ダイアログ・ボックスで、次の値を指定します。
ファイル名: request-approval-details-tf.xml
タスク・フローID: request-approval-details-tf
「OK」をクリックします。
hwtaskflow.xmlを削除します。これを行うには、RequestApprovalTaskDetailsプロジェクトの下の「アプリケーション・ソース」に進み、hwtaskflow.xmlを削除します。
タスク詳細ページを作成します。これを行うには、次のようにします。
request-approval-details-tf.xmlを開きます。Diagramモードに切り替えます。
taskdetails1_jspx viewアクティビティの名前をrequest-approval-detailsに変更します。
request-approval-details viewアクティビティを右クリックし、「ページの作成」を選択します。次の値を入力します。
ファイル名: request-approval-details.jspx
初期ページ・レイアウトおよびコンテンツ: 空白ページ
「OK」をクリックします。
タスク詳細ページのマネージドBeanの追加の説明に従って、タスク詳細ページのマネージドBeanを追加します。
詳細ページ構造の作成の説明に従って、詳細ページ構造を作成します。
「リクエスト情報」タブの移入の説明に従って、「リクエスト情報」タブに移入します。
「タスク情報」タブの移入の説明に従って、「タスク情報」タブに移入します。
デフォルトでは、電子メール通知の送信について、電子メール用に別のページがない場合は、開発した同じタスク詳細ページが電子メール通知で送信されます。
場合によっては、電子メール通知で送信する情報を制限する必要があります。そのような場合は、電子メール通知用に別のページを開発できます。電子メール・ページも、同じタスク詳細タスクフローの一部になります。
電子メール用カスタム・タスクフローの作成の詳細は、Oracle SOA Suite開発者ガイドの電子メール通知の作成を参照してください。
タスク詳細タスクフローをデプロイするには、タスク詳細をADFライブラリJARとしてデプロイし、adflibRequestApprovalTaskDetails.jarをカスタム共有ライブラリにパッケージ化します。
タスク詳細タスクフローをデプロイするには、次の手順を実行します。
ADFライブラリJARとしてタスク詳細をデプロイします。これを行うには、次のようにします。
「RequestApprovalTaskDetails」を右クリックして、「プロジェクト・プロパティ」→「デプロイメント」の順に選択します。
「新規」をクリックします。「デプロイメント・プロファイルの作成」ダイアログ・ボックスが表示されます。
次の値を指定し、「OK」をクリックします。
アーカイブ・タイプ: ADFライブラリJARファイル
名前: adflibRequestApprovalTaskDetails
「RequestApprovalTaskDetails」を右クリックして、「デプロイ」→「adflibRequestApprovalTaskDetails」を選択します。
「デプロイメント・アクション」ポップアップで、「終了」をクリックします。
カスタム共有ライブラリでadflibRequestApprovalTaskDetails.jarをパッケージ化します。これを行うには、次のようにします。
IAM_HOME/server/apps/ディレクトリに移動します。
次のディレクトリ構造を作成します。
WEB-INF/lib/
WEB-INF/lib/ディレクトリにadflibRequestApprovalTaskDetails.jarをコピーします。
IAM_HOME/server/apps/ oracle.iam.ui.custom-dev-starter-pack.warを更新し、adflibRequestApprovalTaskDetails.jarを追加します。次に例を示します。
jar uvf oracle.iam.ui.custom-dev-starter-pack.war WEB-INF/*
Oracle Identity Manager管理対象サーバーを再起動して、カスタム共有ライブラリへの変更を反映します。
タスク詳細タスクフローをデプロイした後、ヒューマン・タスクとタスクフロー権限を構成できます。
ヒューマン・タスクとタスクフロー権限を構成するには、次の手順を実行します。
リクエストを作成し、「保留中の承認」で「タスクの詳細」リンクを検証することで、カスタム・タスクフローをテストします。
カスタム・タスクフローをテストするには、次の手順を実行します。
リクエスト管理操作の特定の側面をカスタマイズして、柔軟性を向上させたり、追加機能のカスタマイズされたロジックを実装できます。これを行うには、リクエスト管理プラグインを使用できます。カスタマイズの実装に使用できるプラグイン・ポイントがあります。
ここでは、プラグイン・ポイントについて次の各項で説明します。
リクエストのライフサイクルの各ステージでステータスが変更されます。リクエスト・エンジンによって、リクエスト・ステータスの変更時にカスタム・コードを実行できるプラグイン・ポイントが公開されます。このプラグイン・ポイントを拡張するカスタム・コードを含むプラグインを実装し、コードを実行するために登録できます。
プラグイン・ポイントは、public void followUpActions(String reqId)メソッドを含むoracle.iam.request.plugins.StatusChangeEventインタフェースです。このメソッドはリクエストIDパラメータで構成され、これとリクエスト管理APIを使用してリクエスト詳細を取得できます。
関連項目:
プラグインおよびプラグイン・ポイントの詳細はプラグインの開発
ステータス変更時に実行するコードは、oracle.iam.request.plugins.StatusChangeEventインタフェースを実装するプラグイン・クラスのfollowUpActions()メソッドで実装する必要があります。plugin.xmlファイルでこのプラグインをどのリクエスト・ステータス変更時に実行するかを指定する必要があります。
たとえば、Oracle Identity Managerでリクエストが「リクエストに失敗しました」ステータスに移行した場合、管理者に通知を送信するカスタム・コードを実行できます。これを行うには、次のようにします。
RequestDataValidatorプラグインを使用して、送信後にリクエスト・データのカスタム検証を追加できます。
この項では、プラグインをデータ・バリデータおよび事前移入アダプタに関連付ける方法について説明し、シナリオをいくつか示します。次の項目が含まれます。
RequestDataValidatorプラグインを使用して、送信後にリクエスト・データのカスタム検証を追加できます。このプラグインのプラグイン・ポイントは、public void validate(RequestData requesterData)メソッドを含むoracle.iam.request.plugins.RequestDataValidatorインタフェースです。
特定のプラグインに関連付けられているデータセット・バリデータおよび事前移入アダプタを定義できます。プラグインに関連付けられるリクエスト・データセットは、プラグイン登録時に定義できます。plugin.xmlファイルは、プラグインとデータセット・バリデータまたは事前移入アダプタの間の関連付けを定義するために使用します。<plugins>要素に付加されている<metadata>ノードは、データ・バリデータと事前移入アダプタの間の関連付けを定義するために使用します。
注意:
データセットに対して指定されているDataSetValidatorプラグインは、plugin.xml自体でバリデータ・メタデータを指定するプラグイン拡張によってオーバーライドすることはできません。たとえば、デフォルト・バリデータに付属している事前定義済データセットModifyUserDatasetは、カスタム実装クラスによってオーバーライドされません。したがって、データセットのバリデータが優先され、それをオーバーライドするオプションは現時点ではありません。
次の例は、プラグインをデータ・バリデータおよび事前移入アダプタに関連付ける方法を示しています。
<?xml version="1.0" encoding="UTF-8"?> <oimplugins xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <plugins pluginpoint="oracle.iam.request.plugins.RequestDataValidator"> <plugin pluginclass= "oracle.iam.plugin.appinst.ApplicationInstanceDataValidator" version="1.0" name="AppInstDataValidator"> <metadata name="DataValidator"> <value>AppInstanceDataSet|ADAppDataSet|EBSDataSet</value> </metadata> </plugin> </plugins> </oimplugins>
この例の次のコード行は、プラグインがリクエスト・データ・バリデータ・データセットに関連付けられていることを示すメタデータxml要素の定義を示しています。
<metadata name="DataValidator">
このメタデータ要素のAttribute name="DataValidator"
は、リクエスト・データ・バリデータに関連付けられているプラグインを示すことに注意してください。
現在のプラグインに関連付けられているデータセットの名前の定義は、次の行で示されます。
<value>AppInstanceDataSet|ADAppDataSet|EBSDataSet</value>
注意:
リクエスト・データセット名は、単一のパイプ文字(|)で区切る必要があります。
AD User APACターゲットにユーザーをプロビジョニングするように、Oracle Identity Managerが構成されているとします。RequestDataValidatorは、次に示すように、ADUserDataValidatorを対応するリクエスト・データセットに対して構成することを指定します。
<plugin pluginclass= "oracle.iam.plugin.appinst.ADUserDataValidator" version="1.0" name="ADUserDataValidator"> <metadata name="DataValidator"> <value>ADUserAPACDataSet</value> </metadata> </plugin>
後で、AD User EMEAターゲットにユーザーがプロビジョニングされるように、システム・コンフィギュレータがOracle Identity Managerを構成する場合、システム・コンフィギュレータは新しいアプリケーション・インスタンスを作成し、UIフォームをそれに関連付けようとします。リクエスト・データセットは、プロセスで自動生成されます。データ・バリデータをこのリクエスト・データセットに対して再利用する場合、次の操作を実行します。
権限のプロビジョニングおよび権限の変更リクエストの一部として指定される権限データは、データセット検証プラグインを作成し、プラグイン・メタデータ(plugin.xml)で次のように指定することで検証できます。
<metadata name="DataValidator"> <value>EBSForm.UD_EBS_RESP</value> </metadata>
ここで、EBSFormは、アカウントがプロビジョニングされるアプリケーション・インスタンスに関連付けられているフォームの名前で、UD_EBS_RESPは権限に対応する子フォームの名前です。UD_EBS_RESPによって権限タイプが識別されます。
事前移入プラグインは、リクエスト・データセットの属性参照または属性に関連付けられます。これを使用すると、リクエストの作成時にカスタム・コードを実行して、属性値を事前移入できます。リクエスタは、必要に応じて事前移入する値を変更できます。
このプラグインのプラグイン・ポイントは、public Serializable prepopulate(RequestData requestData)メソッドを含むoracle.iam.request.plugins.PrePopulationAdapterインタフェースです。このプラグインは、次のリクエスト・タイプにのみ使用します。
リソースのプロビジョニング、リソースの自己リクエスト、ユーザーの作成、ユーザーの自己登録
次の行は、事前移入データを満たすためのリクエスト・データセット属性に、プラグインがマップされることを示すメタデータ要素の定義を示しています。
<metadata name="PrePopulationAdapater">
関連付けは、データセット名と属性名を次の形式で組み合せることによって定義されます。
<DATASET_NAME>::<ATTRIBUTE_NAME>
次に例を示します。
AppInstanceDataSet::First Name
複数の属性を同じ事前移入プラグインに関連付けることが可能ですが、その際は、各関連付けを単一のパイプ文字(|)で区切ります。次に例を示します。
<datasetname1>::<attribute1> | <datasetname2>::<attributename2>|<datasetname3>::<attribute3>
事前移入プラグインの例を次に示します。
<plugins pluginpoint="oracle.iam.request.plugins.PrePopulationAdapter"> <plugin pluginclass= "oracle.iam.plugin.appinst.ApplicationInstancePrePopulateAdapter" version="1.0" name="AppInstPrepopAdapter"> <metadata name="PrePopulationAdapater"> <value> AppInstanceDataSet::First Name|ADAppDataSet::Last Name </value> </metadata> </plugin> </plugins>
注意:
カタログ・フォーム・デザイナでリクエスト・データセットを作成する他に、リクエスト・データセットをMDSに手動でアップロードすることができます。リクエスト・データセット内にDataSetValidatorまたはPrepopulationAdapter要素を定義することもできます。データセット内で構成されるこれらのデータセット・バリデータまたは事前移入アダプタは、他の構成よりも最優先されます。
たとえば、プラグインEBSUserDataValidatorは、リクエスト・データセットEBSUSerDataSetと関連付けるために登録されますが、そのデータセットは作成されていないか、アップロードされていないとします。もう1つのプラグインADUserDataValidatorが登録されていますが、どのリクエスト・データセットにも関連付けられていません。後でリクエスト・データセットEBSUSerDataSetを作成して、リクエストの作成に使用すると、そのリクエスト・データを検証するためにプラグインEBSUserDataValidatorがコールされます。そこで、手動で作成したリクエスト・データセットEBSUSerDataSetに、DataSetValidator要素を追加して、別のプラグインADUserDataValidatorを指定します。EBSUSerDataSetを使用してリクエストを作成すると、プラグインADUserDataValidatorがコールされます。これは、ADUserDataValidatorがリクエスト・データセットの一部として構成されたためです。DataSetValidatorエントリをEBSUSerDataSetから削除すると、そのリクエスト・データを検証するためにプラグインEBSUserDataValidatorが起動されます。
アカウント受益者による承認は、IRoutingSlipCallbackクラスを実装するコールバック・クラスを作成することで、有効にできます。
リクエストを自動承認する必要があるか、SOAコンポジットを起動する必要があるかを決定する承認ワークフロー・ポリシーのルールを構成できます。
構成承認ワークフロー・ルールの詳細は、Oracle Identity Governanceの管理の承認ワークフロー・ルールの構成を参照してください。
承認ワークフロー・ポリシーで自動承認のルールを構成した後、次の手順を実行して自己登録リクエスト用に自動承認を有効化します。
組織を自動的に割り当てるには、ホーム組織ポリシーを構成します。ホーム組織ポリシーの構成方法の詳細は、Oracle Identity Governanceの管理のホーム組織ポリシーの管理を参照してください。
デフォルトでは、自己登録リクエストに設定されているロールおよびユーザー・タイプは「パートタイムの従業員」です。この値を上書きする場合は、SelfCreateUserDataset.xmlデータセットで構成されているプラグインを変更します。
必要な値やロジックについて新規プラグイン実装を作成し、データセットで構成されているプラグインを変更することで、新しいプラグイン実装を反映できます。新しいプラグインではoracle.iam.request.plugins.PrePopulationAdapterが実装されている必要があります。
プラグイン登録ユーティリティを使用して、作成したプラグインを登録します。詳細は、プラグイン登録ユーティリティを使用したプラグインの登録および登録解除を参照してください。
リクエスト・データセットを更新するには、次の手順を実行します。
MDSへのメタデータ・ファイルのエクスポートの説明に従って、MDSから/metadata/iam-features-requestactions/model-data/SelfCreateUserDataset.xmlリクエスト・データセットをエクスポートします。
Role属性に構成されているプラグイン名を次のように更新します。
<AttributeReference name="Role" attr-ref="Role" available-in-bulk="false" type="String" length="255" widget="dropdown" lookup-code="Lookup.Users.Role" required="true"> <PrePopulationAdapter classname="oracle.iam.selfservice.uself.uselfmgmt.plugins.RolePrepopulateAdapter" name="RolePrepopulateAdapter"/> </AttributeReference>
MDSからのメタデータ・ファイルのインポートの説明に従って、更新されたリクエスト・データセットをMDSにインポートします。
注意:
Dynamic Monitoring Service (DMS)を使用してパフォーマンス・メトリックを表示できます。次のDMSメトリックは、自己登録フローのパフォーマンスを監視するために存在します。
Self_Registration
: これは、完了および失敗した自己登録リクエストの数を提供します。
oracle.iam.selfservice.uself.uselfmgmt.api.UnauthenticatedSelfService
: これは、自己登録リクエスト数や、自己登録リクエストの送信に要した時間などの詳細を提供します。
タスク・アクションを変更することで、「現在の割当てのスキップ」アクションがSOAコンポーザまたはJDeveloperに表示されないようにすることができます。
現在の割当てのスキップは承認者には有効なアクションではありません。承認者がこのアクションを選択すると、対応するリクエストは失敗します。したがって、次のいずれかの方法を実行して、このオプションを非表示にできます。
SOAコンポーザからタスク・アクションを変更します。「現在の割当てのスキップ」アクションに対して、すべてのチェックボックスの選択を解除し、保存します。
JDeveloperを使用してタスク・アクションを変更します。「現在の割当てのスキップ」アクションに対して、すべてのチェックボックスの選択を解除します。次に、コンポジットを保存し、再デプロイします。タスクの作成者または所有者がタスク・コンテンツに対して実行できるアクションの指定については、Oracle SOA Suite開発者ガイドのタスク操作のためのアクションの指定を参照してください。
証明の監視は、監視のレベルを拡張するため、または特定のタイトルに達したときに監視プロセスを停止するためにカスタマイズできます。
この項では、証明の監視のカスタマイズ方法について説明します。次の項目が含まれます。
証明の監視は、監視のレベルを拡張するため、または特定のタイトルに達したときに監視プロセスを停止するためにカスタマイズできます。
証明コンポジットには、カスタマイズ可能な監視ロジックが含まれています。このロジックにより、次のいずれかまたはすべてに基づいて監督者のシーケンスを選択するためのOracle Identity Managerへの問合せをサポートします。
プライマリ・レビューア
証明の現在のフェーズ
Oracle Identity Managerで定義された管理階層
デフォルトでは、証明タスクが1人のレビューアに割り当てられるという、単一レベルの監視のみがサポートされます。
証明の監視用コンポジットで事前定義されているように、プライマリ・レビューアまたは監督者がサインオフすると、主要なレビュー・タスクはシーケンス内の次の監督者に自動的にルーティングされます。プライマリ・レビューアまたは監視者(最終監視者を除く)が主要なレビュー・タスクでサインオフすると、そのユーザーは、完了したタスクを問い合せて、そのタスクを受信箱で表示することはできなくなります。
証明の監視をカスタマイズするには、JDeveloperで証明コンポジットを編集します。
証明の監視のカスタマイズに必要な手順は、次のとおりです。
コンポジットを作成します。これを行うには、次のようにします。
OIM_HOME/server/workflows/new-workflow/ディレクトリに移動します。process-templateサブディレクトリには、コンポジット・ファイルが含まれたZIPファイルのアーカイブが格納されています。このコンポジット・ファイルは、新しいコンポジットを作成するためにベース・ファイルとして使用します。
次のコマンドを実行します。
ant -f new_project.xml compliance
次の選択を行うよう求められます。
1 - アイデンティティ監査コンポジット
2 - 証明コンポジット[デフォルト]
オプション2の証明コンポジットを選択します。
プロンプトが表示されたら、新しいコンポジットの名前を入力して、[Enter]
を押します。コンポジットが作成され、コンポジットに指定した名前のパッケージ・ディレクトリがprocess-templateサブディレクトリに作成されます。
JDeveloperでコンポジットを開きます。これを行うには、次のようにします。
process-templateディレクトリに移動します。
手順1cで指定したコンポジット名のディレクトリに移動します。
JDeveloperを使用して、COMPOSITE_NAME.jprを開きます。
「アプリケーション・ナビゲータ」ビューの「プロジェクト」ペインでプロジェクトを開いて、「CertificationTask.task」をダブルクリックして編集します。「割当て」タブをクリックします。「Stage1.Participant」オブジェクトをクリックして、「編集」を選択します。「参加者タイプの編集」ダイアログ・ボックスが表示されます。デフォルトでは、このコンポジットで単一の証明のレベルが定義され、証明は1人のレビューアに割り当てられます。たとえば、証明のレベルを変更するには、現在のタスクの割当て先のマネージャに移動して、次の値を設定します。
注意:
この手順で説明するカスタマイズはサンプルです。詳細なカスタマイズは、CertificationOverseerProcessデフォルト・テンプレートや、SOAのドキュメントを参照してください。
タイプ: 「シリアル」。シリアル証明ロジックのみがサポートされます。
参加者のリストの作成で使用: 「管理チェーン」
属性の指定で使用: 「値ベース」
開始参加者: 証明を開始するユーザーを選択します。
最上位の参加者: 「役職別」。証明レビューの最上位の参加者になるレビューアの役職を指定します。最上位の参加者としてVPを指定し、レベル数として5を指定すると、証明はレベル3であっても、VPレベルにまで引き上げられます。その他のレベルは、スキップされます。
レベル数: 「番号別」。1を指定すると、証明はマネージャのレベルまでになります。2を指定すると、証明はマネージャのマネージャまでになります。
タスクの単一への自動割当て: 「ユーザー」
割当てパターン: 「最もビジーでない箇所」
「OK」をクリックします。
コンポジットをコンパイルして、コンポジットJARファイルをSOAにデプロイします。詳細は、SOAのドキュメントを参照してください。
Oracle Identity System Administrationにログインし、新しくデプロイしたコンポジットを「構成」ページで選択して、証明の定義を作成します。
アイデンティティ監査コンポジットをカスタマイズし、新規のアイデンティティ監査スキャン定義を作成できます。
アイデンティティ監査コンポジットをカスタマイズするには、次の手順を実行します。
コンポジットを作成します。これを行うには、次のようにします。
OIM_HOME/server/workflows/new-workflow/ディレクトリに移動します。process-templateサブディレクトリには、コンポジット・ファイルが含まれたZIPファイルのアーカイブが格納されています。このコンポジット・ファイルは、新しいコンポジットを作成するためにベース・ファイルとして使用します。
次のコマンドを実行します。
ant -f new_project.xml compliance
次の選択を行うよう求められます。
1 - アイデンティティ監査コンポジット
2 - 証明コンポジット[デフォルト]
オプション1のアイデンティティ監査コンポジットを選択します。
プロンプトが表示されたら、新しいコンポジットの名前を入力して、[Enter]
を押します。コンポジットが作成され、コンポジットに指定した名前のパッケージ・ディレクトリがprocess-templateサブディレクトリに作成されます。
JDeveloperでコンポジットを開きます。これを行うには、次のようにします。
process-templateディレクトリに移動します。
手順1dで指定したコンポジット名のディレクトリに移動します。
JDeveloperを使用して、COMPOSITE_NAME.jprを開きます。
IdentityAuditRemediationTask.task
を編集して、IdentityAuditTask割当てのすべてのカスタマイズを行います。
必要なコールバック(「タスク完了」、「エスカレーション」、「有効期限」、「ルーティング」、「再割当て」および「プロキシ」)が構成されていることを確認します。新規に作成したコンポジットまたはデフォルトのアイデンティティ監査修正コンポジットで構成されたコールバックを参照します。
変更を保存します。
コンポジットをコンパイルして、コンポジットJARファイルをSOAにデプロイします。詳細は、SOAのドキュメントを参照してください。
Oracle Identity Self Serviceにログインし、アイデンティティ監査構成コンポジット参照から新規に作成したコンポジットを使用して新規アイデンティティ監査スキャン定義を作成します。