Sun Java ロゴ     前へ      目次      索引      次へ     

Sun ロゴ
Sun Java™ System Identity Manager 7.0 ワークフロー、フォーム、およびビュー 

第 1 章
ワークフロー

この章では、Sun JavaTM System Identity Manager のワークフローについて説明します。

この章の内容

関連する章


ワークフローについて

Identity Manager ワークフローは、定義されている規則に従って一貫して実行される、一連のアクションとタスクを定義します。Identity Manager 統合開発環境 (IDE) のグラフィカルユーザーインタフェースを使用して、Identity Manager によって起動される各ワークフローをカスタマイズできます。

ワークフローを操作する前に、次の項目について理解してください。

ワークフローとは

一般的に、ワークフローは、論理的で反復可能なプロセスであり、ある関与者から別の関与者にドキュメント、情報、またはタスクが渡されると、一連の手順規則に従ってアクションが実行されます。この関与者は、人物またはマシンを表し、その両方を表す場合もあります。

Identity Manager では、この概念は、特に Identity Manager のワークフロー機能として実装されています。この機能は、ユーザーアカウントの作成、更新、有効化、無効化、および削除を管理する、複数のプロセス (ワークフロー) から構成されます。

実行するほとんどの Identity Manager タスクは、ワークフロープロセスのセットとして定義できます。Identity Manager にユーザーを作成するときは、たとえば、対応するワークフロープロセスが、次の処理を定義、実行します。

これらのアクティビティーは、Identity Manager 統合開発環境 を使用してカスタマイズできます。

通常、ワークフローはビューのチェックインに付随して呼び出されます。ビューのチェックは、フォームとビューを実装するページで「保存」をクリックしたときに行われます。

ワークフロープロセス

製品インタフェースのどの位置から呼び出すかに応じて、ワークフローはワークフロー、タスク、プロセス、またはタスク定義として参照されます。

タスク定義

Identity Manager の管理者インタフェースの「デバッグ」ページから、TaskDefinition のリストを検索し、ワークフロープロセスにアクセスします。「List Objects」ボタンの横にある「タイプ」メニューから「TaskDefinition」を選択し、「List Objects」をクリックします。アクセスできる TaskDefinition の一覧が表示されます。ワークフローのカスタマイズでは、そのワークフローの TaskDefinition オブジェクトを編集します。

TaskDefinition の起動インスタンスは、TaskInstance オブジェクトとして表されます。このオブジェクトも「デバッグ」ページから表示できます。

タスク定義パラメータ

次の表は、標準の設定パラメータを示しています。

表 1-1 ワークフローの標準設定パラメータ 

パラメータ

説明

name

ユーザーが設定する、ワークフローの名前。Identity Manager のインタフェースには、この名前が表示されます。このタイプの他のオブジェクトと重複する名前は付けられませんが、タイプが異なれば、同じ名前を付けることができます。

taskType

フィルタリング専用に使用されます

executor

タスクを実装するクラスの名前を識別します。デフォルトでは、ワークフローのこのパラメータのクラスは com.waveset.workflow.WorkflowExecutor です。

suspendedable

(ブール型) タスクを保留し、再開できることを表します。デフォルトは true です。

syncControlAllowed

(ブール型) 同期または非同期実行の要求をユーザーに許可するかどうかを表します。デフォルトは true です。

execMode

デフォルトで使用する実行タイプを指定します。デフォルトは sync です。

この値が NULL の場合、または ExecMode.DEFAULT に設定されている場合は、ExecMode.ASYNC として扱われます。

executionLimit

タスクを実行できる制限時間を、秒単位で指定します。タスクには、実行の制限時間を指定できます。この制限時間が経過すると、スケジューラはそのタスクを終了できます。制限時間をゼロに設定すると、無制限として解釈されます。

デフォルトは 0 です。

resultLimit

タスクの完了後、インスタンスが存続できる制限時間を秒単位で指定します。デフォルトは 0 です。

タスクが完了または終了すると、タスクの結果を含む TaskInstance は、通常は指定した時間だけリポジトリに維持され、その時間が経過すると自動的に削除されます。

0 - TaskInstance は、タスクの完了後ただちに削除されます。

-1 - TaskInstance は自動的に削除されません。ただし、ユーザーが手動で削除することは可能です。

後から分析するレポートを生成するタスクでは、通常は、このパラメータに数日間に相当する値を設定します。副次的な結果を生じる目的のみで実行され、それ自体は意味のある結果を生じないタスクでは、ゼロに設定します。

resultOption

(String 型) 繰り返しタスクの以前の実行結果をどのように扱うかを示すオプションを指定します。このオブジェクトはそのデータを定義し、データの処理方法を確認します。デフォルトは delete です。

wait - 古い結果が手動で削除される、または有効期限が切れるまで、タスクが実行されないようにします。これがスケジュールされていないタスクである場合は、起動時にエラーとなります。スケジュールされているタスクであれば、スケジューラはこれを無視します。

delete - タスクを実行する前に、古い結果を自動的に削除します。古いタスクは完了状態でなければなりません。

rename - 古い結果の名前を変更してからタスクを実行します。古いタスクは完了状態でなければなりません。

terminate - 現在実行中のタスクを終了し、削除します。これは delete オプションに似ていますが、タスクが実行中の場合は、それを自動的に終了します。

ayncExec

このパラメータを true に設定すると、アクションの完了後も、次回の手動アクションまでワークフローの実行を継続し、ユーザーには次の作業項目を表示します。この設定は、ウィザード形式のワークフローをサポートします。

false に設定した場合は、ワークフローはバックグラウンドで実行を継続し、ユーザーがワークフローの次のステップを実行するときは、別のページ (通常は承認ページ) への移動が必要となります。

visibility

(String 型) このタスク定義の表示設定を宣言します。デフォルトは run schedule です。これ以外に、invisiblerun task、および schedule task のオプションがあります。

progressInterval

Identity Manager が進行状況の変化を確認する間隔を、ミリ秒単位で指定します。

タスクには、タスクが進行状況を更新する間隔を指定できます。デフォルトは 5000 ミリ秒 (5 秒) です。間隔を短く設定するほど、より最新の状態を確認できますが、サーバーの負荷は増大します。

手動アクションについて

手動アクションは、手動によるやり取りを定義した、ワークフロープロセス定義の一部です。ワークフローエンジンが手動アクションを処理するときは、リポジトリに WorkItem オブジェクトが作成されます。作業項目に「完了」のマークが付いてからでないと、ワークフローは次に進むことができません。ほとんどの手動アクションは、承認の要求に使用されるため、作業項目の表は「承認」タブにあります。

ワークフローに属する手動アクションはどれも、リポジトリ内の WorkItem オブジェクトで表されます。

TaskInstance

ワークフロータスクが呼び出されると、ワークフローエンジンはリポジトリに TaskInstance を作成します。TaskInstance はリポジトリ内のオブジェクトの 1 つで、実行するワークフロープロセスの実行時状態を保持します。また、作成元となった TaskDefinition のコンテキスト変数と即時遷移情報を格納します。

TaskInstance は、TaskDefinition の生成 ID を使用して、説明的な TaskDefinition オブジェクトを参照します。TaskDefinition を編集すると、すでに実行中の TaskInstance は変更前の TaskDefinition オブジェクトを継続して使用しますが、新たに実行する TaskInstance は、新たに生成された ID を使用して修正後の TaskDefinition を使用します。

タスクインスタンスの削除のタイミング

TaskInstance の存続期間は、resultLimit パラメータによって決定されます。結果の有効期間の値にゼロが設定されている場合は、タスクは完了後ただちに削除されます。正の値が設定されている場合は、TaskInstance はその時間 (単位は分) だけ維持されます。

保留になっているワークフローの TaskInstance を削除するには、次の手順に従います。

  1. Identity Manager の管理者インタフェースで、「サーバータスク」タブをクリックします。
  2. 「すべてのタスク」を選択します。
  3. 保留中の TaskInstance を選択し、「終了」をクリックします。

リポジトリ内のワークフロー

Identity Manager のリポジトリには、通常は、タイプが WFProcess の設定オブジェクトとしてワークフローが存在します (Create User ワークフローは、このオブジェクト定義の唯一の例外で、ProvisioningTask オブジェクトとして定義される)。taskType は常に Workflow です。


Identity Manager は、ワークフローの実行中のリポジトリをロックしません。これは、ワークフローが数日にわたって実行される可能性があり、その間中リポジトリをロック状態で維持することはできないためです。ただし、同じユーザーによる、別の更新ワークフローの呼び出しは、Identity Manager によって禁止されます。


ワークフローエンジン

ワークフローエンジンは、実行時のワークフロープロセスの実行を可能にするソフトウェアサービスです。ワークフロープロセスをサポートするワークフローエンジンの主な機能は次のとおりです。


ワークフローコンポーネント

ワークフロープロセスは、目的を達成するまでに必要なステップを表します。プロセスが定義する内容は次のとおりです。

各ワークフロープロセスは、次のコンポーネントのいずれか、またはその組み合わせによって定義されます。


デフォルトのワークフロープロセス

Identity Manager IDE を使用することで、デフォルトの Identity Manager プロセスを編集し、一連のステップをカスタマイズできます。Identity Manager のワークフロー機能には、次のようなデフォルトプロセスのライブラリが含まれます。

次のユーザー作成ワークフローは、タイムアウト時間に達した時点で、エスカレーションアクティビティーを呼び出すように変更されています。タイムアウト時間に達するまでは、APPROVED 変数の結果が評価されます。評価の結果に基づいて、承認と拒否に対応したアクティビティーのどちらに遷移するかが決定されます。

<Activity name='Wait'>

   <ManualAction name='approve' timeout='180'>

   <Owner name='$(APPROVER)'/>

   <Variable name='APPROVAL' value='false'/>

   <Return from='APPROVAL' to='APPROVED'/>

   <FormRef>

     <ObjectRef type='UserForm' id='#ID#UserForm:ApprovalForm'/>

   </FormRef>

   <ReportTitle>

     <concat>

       <s>Awaiting approval from ¥n</s>

       <ref>APPROVER</ref>

     </concat>

   </ReportTitle>

   </ManualAction>

   <Transition to='Escalate'>

     <eq>

       <ref>WF_ACTION_TIMEOUT</ref>

       <s>true</s>

     </eq>

   </Transition>

   <Transition to='Approved'>

     <eq>

       <ref>APPROVED</ref>

       <s>true</s>

     </eq>

   </Transition>

   <Transition to='Rejected'/>

</Activity>

WorkItem のタイプ

手動アクションには、ワークフローエンジンによって手動アクションが実行された場合に生成される作業項目に、タイプを割り当てる機能があります。カスタマイズ内容に作業項目のタイプを割り当てることで、表示する作業項目や操作対象となる作業項目のセットをフィルタリングできます。

システムは、次のタイプの作業項目を認識します。

表 1-2 作業項目のタイプ

作業項目のタイプ

説明

承認

承認の作業項目であることを示します。

ウィザード

ユーザーによる任意操作の作業項目であることを表します。

保留

一時的な作業項目であることを表します。ワークフローにバックグラウンドでの実行を強制するときは、このタイプを使用します。

これ以外に、カスタマイズした作業項目のタイプを割り当てることもできます。たとえば、リソースの承認を表す作業項目タイプを resource に設定したり、ロールの承認を表す作業項目タイプを role に設定したりできます。

認証のタイプ

手動アクションには、作成する作業項目の認証タイプも指定できます。認証のタイプは作業項目のタイプとは異なり、現在の管理者が権限を持たない項目を排除できるように、クエリーに返される作業項目をシステムが自動的にフィルタリングするタイプです。通常は、承認者としての権限を持つどの管理者にも、担当する組織のすべての作業項目を表示する権限が割り当てられます。

手動アクションに作業項目の認証タイプを指定するには、次のように authType 属性を使用します。

<ManualAction authType='RoleApproval'>

作業項目タイプの割り当て

ManualAction 定義に項目タイプを指定するには、itemType 属性を設定します。次に例を示します。

<ManualAction itemType='approval'>

WorkItem の管理表示機能の制限

通常は、承認者としての権限を持つどの管理者にも、担当する組織のすべての作業項目を表示する権限が割り当てられます。管理者が組織の作業項目のサブセットのみを表示できるようにするときは、次の手順に従います。

  1. WorkItem タイプを拡張する、新しい認証タイプを定義します。たとえば、RoleApproval タイプを定義します。
  2. 作業項目自体ではなく、新しい認証タイプに対して権限を持つ、新しい機能を定義します。たとえば、RoleApproval タイプに対する権限を持つ、承認者ロールの機能を定義します。
  3. 一般的な承認者の機能ではなく、管理者に対して、承認者ロールの機能を割り当てます。
  4. ワークフローで使用される各手動アクションに、適切な認証タイプを設定します。

遷移の作成

遷移は、アクティビティーが 1 つまたは複数の別アクティビティーに移動するための規則を定義します。遷移には条件を設定できます。つまり、特定の条件が満たされる場合にのみ、遷移が行われるように設定できます。単純なアクティビティーには、アクティビティーを構成するアクションが完了するとただちに実行される、1 つの無条件遷移のみを含めることができます。


Identity Manager が使用するプロセスの更新

プロセスをカスタマイズするときは、ワークフロープロセスが想定どおりに正しく完了するように、変更内容を検証してから保存してください。保存したら、Identity Manager が使用できるように、変更したワークフローをインポートします。Identity Manager IDE デバッガを使用することもできます。Identity Manager IDE によるワークフロープロセスの編集については、「Identity Manager IDE の使用」を参照してください。

本稼動環境のワークフローの編集

本稼働環境のワークフロープロセスはカスタマイズしないでください。

元のワークフローのインスタンスの実行中にワークフローのアクティビティーやアクションを編集すると、問題が生じることがあります。具体的には、TaskInstance には TaskDefinition ワークフローへの参照が含まれ、ID によって特定される現在のアクティビティーまたはアクションが格納されています。これらの ID を変更すると、実行を再開したときに、想定されているとおりにタスクが再開されない可能性があります。

本稼働環境のワークフローの編集を回避できない場合は、次の手順に従います。これにより、古い定義を使用するタスクインスタンスによって保留されている作業項目の喪失を回避できます。

  1. TaskDefinition の現在の名前を、タイムスタンプを付けて変更します。たとえば、Create User ワークフローを変更する場合は、TaskDefinition の名前を、Create User から Create User 20030701 に変更します。ワークフローの TaskDefinition の名前は、Identity Manager IDE を使用して変更できます。
  2. 編集したワークフローを保存し、インポートします。

この手順に従うと、Identity Manager 内で保留状態にある既存の Create User タスクに問題が生じるのを回避できます。この場合、保留中のタスクで参照される、TaskDefinition の一意の ID は維持されます。


標準ワークフロー

Identity Manager には、使用されるプロセスにマップされた、標準のワークフローが最初から用意されています。これらのデフォルトワークフローの簡単な説明については、「ワークフローのデフォルトアクティビティー」を参照してください。デフォルトのワークフローを表示、編集するには、次の手順に従います。

  1. Identity Manager IDE を起動します。Identity Manager IDE の使用方法については、『Identity Manager 配備ツール』に記載されている「Identity Manager IDE の概要」を参照してください。
  2. 「ファイル」 > 「リポジトリオブジェクトを開く」 > 「ワークフロープロセス」を選択します。標準ワークフロープロセスと、配備に含まれるカスタムワークフローを示す「ワークフロープロセス」リストが表示されます。
  3. 表示または編集するワークフローの名前をダブルクリックします。

Identity Manager の管理者インタフェースから「設定」 > 「フォームおよびプロセスマッピング」を選択すると、プロセスマッピングを表示できます。


プロセスのカスタマイズ

1 つまたは複数の Identity Manager のプロセスを変更することで、ステップを削除して新しいステップを設定したり、既存のステップをカスタマイズしたりできます。プロセスの各ステップは、アクティビティーによって表されます。

ワークフローの編集時または作成時に利用できる定義済みアクティビティーを提供するワークフローツールボックスは、ワークフローの変更に役立ちます。

このツールボックスを開くには、ダイアグラムビューを右クリックし、ツールボックスオプションを選択します。

ワークフローのデフォルトアクティビティー

次に、用意されているデフォルトアクティビティーをカテゴリ別に示します。

表 1-3 ワークフローのデフォルトアクティビティー 

アクティビティー

説明

Add Deferred Task

延期タスクのスキャナ情報をオブジェクトに追加します。

Audit Object

監査ログレコードを作成します。

Authenticate User Credentials

 

Authorize Object

リポジトリ内のオブジェクトに対して、対象となる認証をテストします。

Checkin Object

オブジェクトに変更を適用します。

Checkin View

更新されたビューを適用します。

Checkout Object

リポジトリのオブジェクトをロックし、編集のために取得します。

 

延期タスクのスキャナ情報をオブジェクトに追加します。

Checkout View

更新可能なビューを取得します。

Create Resource Object

リソースオブジェクトを作成します。

Create View

新規ビューを初期化します。

Delete Resource Object

リソースオブジェクトを削除します。

Deprovision Primitive

リソースアカウントをプロビジョニング解除します。

Disable Primitive

リソースアカウントを無効にします。

Disable User

Identity Manager のユーザーアカウント、リソースアカウント、またはその両方を無効にします。

Email Notification

アクションを通知する電子メールを送信します。

Enable Primitive

リソースアカウントを有効にします。

Enable User

Identity Manager のユーザーアカウント、リソースアカウント、またはその両方を有効にします。

Get Object

リポジトリオブジェクトを取得します。

Get Property

プロパティーを取得します。

Get View

読み取り専用ビューを取得します。

List Resource Objects

 

Query Object Names

一致する属性を持つオブジェクトを検索します。

Query Objects

一致する属性を持つオブジェクトを検索します。

Query Reference

 

Refresh View

以前にチェックアウトされたビューを更新します。

Remove Deferred Task

延期タスクのスキャナ情報をオブジェクトから削除します。

Remove Property

オブジェクトの拡張プロパティーを削除します。

Reprovision Primitive

リソースアカウントを再プロビジョニングします。

Run Resource Actions

 

Set Property

拡張プロパティーをオブジェクトに追加します。

Unlock Object

以前にチェックアウトされたオブジェクトのロックを解除します。

Unlock View

以前にチェックアウトされたビューのロックを解除します。

Update Resource Object

リソースによって管理されるオブジェクトを修正します。

表 1-4 Approval ワークフローのデフォルトアクティビティー 

アクティビティー

説明

Approval

基本的な単一の承認者プロセスを実行します。

Approval Evaluator

複雑な承認プロセスを実装するために、承認定義オブジェクトの評価を繰り返します。

使用するフォームとテンプレートの受け渡しは許可されますが、別の設定が指定されている場合は、そちらが優先されます。

Lighthouse Approval

割り当てられている組織、ロール、およびリソースの、デフォルトの Identity Manager 承認プロセスを実行します。Approval Evaluator プロセスを使用します。

Multi Approval

複数の承認者に承認を配布します。各承認者の Approval プロセスを使用します。

Notification Evaluator

複雑な通知プロセスを実装するために、承認定義オブジェクトの評価を繰り返します。通常は、Approval Evaluator に定義されている構造と同じ構造です。標準ワークフローでは、承認定義と通知定義は同じ構造にあります。カスタマイズされたワークフローでは、これは要件となりません。

Provisioning Notification

プロビジョニング処理が完了したあとに管理者に通知するための標準プロセス。

表 1-5 User ワークフローのデフォルトアクティビティー 

アクティビティー

説明

DeProvision

既存の Identity Manager ユーザーをプロビジョニング解除するための標準ステップを実行します。リソースアカウントの削除、Identity Manager ユーザーの削除、リンク解除、および割り当て解除を詳細に制御できます。個々のリソース操作は、成功するまで再試行されます。

Provision

新しい Identity Manager ユーザーを作成し、リソースアカウントをプロビジョニングする標準ステップを実行します。個々のリソース操作は、成功するまで再試行されます。

Set Password

Identity Manager アカウントとリソースアカウントのパスワードを変更します。

Update User Object

WSUser オブジェクトをチェックアウトし、変更内容を適用してからチェックインします。

Update User View

ユーザービューをチェックアウトし、提供される一連の更新を適用してからチェックインします。

Update View

任意のビューに一連の変更を適用します。

表 1-6 End User ワークフローのデフォルトアクティビティー

アクティビティー

説明

End User Update Groups

マネージャーのいずれかのレポートに割り当てられるリソースのグループ割り当てを更新します (グループをサポートするリソースが対象)。

End User Update My Groups

ログインしているアカウントに割り当てられるリソースのグループ割り当てを更新します (グループをサポートするリソースが対象)。

End User Update Roles

マネージャーのいずれかのレポートのロール割り当てを更新します。

End User Update My Roles

ログインしているアカウントに割り当てられるロール割り当てを更新します。

End User Update Resources

マネージャーのいずれかのレポートの、リソース割り当てと、関連付けられている属性を更新します。

End User Update My Resources

ログインしているアカウントの、リソース割り当てと、関連付けられている属性を更新します。

表 1-7 Auditor ワークフローのデフォルトアクティビティー 

アクティビティー

説明

Scan Notification

各アクセススキャンの最後に、保留中のアテステーション作業項目があることをアテスターに通知します。保留中の作業項目の数に関係なく、各アテスターに 1 つの通知を送信します。また、スキャンに所有者が存在する場合は、スキャンの開始と完了をその所有者にも通知します。このワークフローは、次の入力をとります。

  • scanName -- アクセススキャンの名前
  • scanOwner -- アクセススキャンの所有者の名前
  • recipients -- 通知先となる IDM ユーザーの名前リスト
  • notificationType -- 通知タイプ (begin、end、attest などのタイプが有効)
  • userCount -- スキャン対象ユーザーの数 (begin のみ)

Standard Attestation

指定された各アテスターのアテステーションサブプロセスを作成します。

Attestation

各アテスターの作業項目を作成し、すべての作業項目が承認済みの状態で完了した場合は、ユーザーのエンタイトルメントレコードに APPROVED のマークを付け、いずれかの作業項目が拒否された場合は、その時点でただちに REJECTED のマークを付けます。1 つの作業項目が拒否されると、その他すべての作業項目はキャンセルされます。

Launch Access Scan

Access Review タスクから得られる設定に基づいて、Access Scan タスクを呼び出すか、またはスケジューリングします。このアクティビティーは、Access Review ワークフロー/タスクから直接呼び出されます。

ワークフロータスクのアクティビティー

表 1-8  

アクティビティー

説明

Add Result

名前を付けたデータ項目をタスク結果に追加します。

Add Result Error

タスク結果にエラーメッセージを追加します。

Add Result Message

タスク結果に情報メッセージを追加します。

Background Task

Identity Manager の管理者インタフェースから呼び出された場合に、ワークフローを強制的にバックグラウンドで実行します。

Get Resource Result

最後のプロビジョニング操作でリソースアダプタから返された結果オブジェクトを取得します。

Get Resource Result Item

最後のプロビジョニング操作でリソースアダプタから返された結果オブジェクトから、1 つの結果項目を取得します。

Rename Task

リポジトリ内のタスクインスタンスの名前を変更します。

Set Result

タスクに入力される結果にエントリを追加します。これは、ワークフローの概要レポートに記載されます。

Set Result Limit

終了したタスクインスタンスをリポジトリ内で維持する時間を、秒単位で指定します。正の値は、タスクの完了後に、その秒数の間だけタスクインスタンスを維持することを表します。

負の値は、タスクインスタンスが自動的に削除されないことを表します。ただし、タスクを手動で削除することは可能です。

デフォルトの名前変更タスクの使用

カスタマイズを行わずにデフォルトの名前変更タスクを使用する場合は、ワークフローに次のアクションを指定します。

<Action process='Rename Task'>

   <Argument name='name' value='新しいタスク名'/>

</Action>

ワークフローの進行状況の追跡

タスクに指定されている所有者は、ワークフロータスクの状態を常に確認できます。多くの場合、所有者はタスクを開始した人物ですが、所有者情報を定義し直すことができます。タスクはリポジトリ内のオブジェクトであるため、適切な権限を持つユーザーであれば、誰もがそれを表示できます。

通常、ワークフローの状態は executingpendingcreating、および suspended という文字列で「状態」列に表示されます。ワークフローの状態を要約した、より説明的な文字列をこの列の表示に追加できます。

この機能を実装するには、追加可能な 2 つの式のいずれかを WFProcess ファイルに追加します。

<WFProcess name='queryRoleTask' maxSteps='0'>

   <Status>

     <s>Customized Status</s>

   </Status>

     <Activity id='0' name='start'>

       <Transition to='GetReferencingRoles'/>

     </Activity>

     <Activity name='GetReferencingRoles'>

       <Action id='0'>

     <expression>

<Status> には、文字列となる任意の XPRESS ステートメントを設定できます。次に例 を示します。

<Status>

   <s>カスタム文字列</s>

</Status>

または

<Status>

   <block>

     <s>not appearing</s>

     <s>カスタム文字列</s>

   </block>

</Status>

....

この例の式の結果は、条件が当てはまる結果が保留中の場合に、「状態」列に表示されます (たとえば、pending (カスタム文字列))。


ワークフローの監査の有効化

ワークフローの監査は、通常の監査と類似していますが、ワークフローの監査では、時刻を計算するための追加情報も記録されます。通常の監査では、イベントの発生をレポートしますが、イベントがいつ開始され、終了したのかは示されません。Identity Manager の監査の詳細については、『Identity Manager Audit Logging』を参照してください。

ワークフローの監査を有効にするには、ワークフロー、あるいは、1 つまたは複数のアクティビティーに audit 属性を追加します。この属性を追加し、管理者インタフェースの適切なタスクテンプレートで「ワークフロー全体の監査」ボックスにチェックマークを付けることで、ワークフローの監査が有効になります。タスクテンプレートで監査を有効にする手順については、『Identity Manager 管理ガイド』の「タスクテンプレート」の章を参照してください。

概要

ワークフロー監査の処理では、事前に定義されている属性の名前とその値が、監査対象イベントごとに記録されます。ワークフロー内の監査を有効にするには、WFProcess 要素、あるいは、1 つまたは複数の Activity 要素に audit 属性 (値は true に設定) を追加します。WFProcess レベルで属性を設定すると、ワークフロー全体が監査対象となり、個々の Activity 要素に属性を追加した場合は、特定のアクティビティーのみが監査対象となります。監査属性を設定しない場合、監査は無効になります。また、ワークフローを呼び出すタスクテンプレート内でも監査を有効にする必要があります。

次の例は、Notify アクションの監査を有効にします。

<Activity name='Notify' audit='true'>

記録される情報と記録される場所

デフォルトでは、ワークフローの監査は、通常の監査イベントで記録されるほとんどの情報が収集されます。これには、次の属性が含まれます。

これらの属性は、logattr テーブルに格納され、auditableAttributesList から取得されます。

Identity Manager は、workflowAuditAttrConds 属性が定義されているかどうかについても調べます。

プロセスまたはワークフローの 1 つのインスタンスの中で、特定のアクティビティーを何度も呼び出すことができます。特定のアクティビティーインスタンスの監査イベントを一致させるために、Identity Manager は、ワークフローインスタンス内の一意の識別子を logattr テーブルに記録します。

ワークフローの logattr テーブルに追加属性を記録するには、workflowAuditAttrConds リスト (GenericObjects のリストと見なされる) を定義する必要があります。workflowAuditAttrConds リストに attrName 属性を定義すると、Identity Manager は、コード内のオブジェクトから attrName を抽出します。まず、attrName をキーとして使用し、次に、attrName の値を記録します。すべてのキーと値は、大文字の値として記録されます。


アプリケーションの追加

Identity Manager IDE からアクセスできるように、独自に用意した Java メソッドを登録できます。次の手順で実行します。

  1. idm/config/workflowregistry.xml ファイルを編集します。
  2. 次の例のような形式で、アプリケーションの定義を追加します。
  3. <WorkflowApplication name='Increment Counter'
      class='com.waveset.util.RandomGen' op='nextInt'>

       <ArgumentDefinition name='start' value='10'>
          <Comments>Get the next counter</Comments>
       </ArgumentDefinition>
    </WorkflowApplication>

  4. Identity Manager IDE を再起動します。

アプリケーションメニューに新しいアプリケーションが追加されます。


ワークフロープロパティーの設定

ワークフローの設定プロパティーは、System Configuration オブジェクトによって制御されます。次の表は、頻繁に使用される設定プロパティーを示しています。

Identity Manager 統合開発環境を使用して System Configuration オブジェクトを表示または編集する方法については、『Identity Manager 配備ツール』の「Identity Manager 統合開発環境の概要」を参照してください。

表 1-9 システム設定オブジェクトのワークフロープロパティー

属性名

データ型

デフォルト値

consoleTrace

String

false

fileTrace

NULL

 

maxSteps

String

5000

resultTrace

String

false

retainHistory

String

false

traceAllObjects

String

false

traceLevel

String

1

validationLevel

String

CRITICAL

consoleTrace

コンソールにトレースメッセージを送信するかどうかを指定します。true に設定した場合は、トレースメッセージが送信されます。デフォルトは false です。

fileTrace

名前が付けられたファイルにトレースメッセージを送信するかどうかを指定します。特定のファイルにトレースメッセージを送信するには、そのファイルの名前を入力します。

maxSteps

ワークフロープロセスまたはサブプロセスで許容される、最大ステップ数を指定します。このレベルを超過すると、その時点で Identity Manager はワークフローを終了します。この設定は、無限ループによるワークフローのスタックを検出するための安全装置として使用されます。デフォルトは 5000 ステップです。

resultTrace

タスクの結果オブジェクトにトレースメッセージを維持するかどうかを指定します。true に設定した場合は、タスクの結果オブジェクトにトレースメッセージが累積されます。

retainHistory

タスクの完了時に、履歴全体を返すかどうかを指定します。true に設定した場合は、Identity Manager は、ケース履歴全体を返します。これは、履歴を分析してプロセスの問題を診断する場合には便利ですが、結果全体のサイズが大きくなります。

traceAllObjects

汎用オブジェクトをワークフローのトレース処理の対象とするかどうかを指定します。

traceLevel

ワークフローのトレースに含める詳細度を指定します。値を指定しないか、または 0 を指定した場合は、もっとも詳細な情報がトレースされます。デフォルトは 1 です。

validationLevel

実行前にワークフローの検証に適用される厳密度を指定します。設定したレベル以上のエラーが検出された場合は、ワークフローの実行は開始されません。有効な値は、CRITICAL、ERROR、WARNING、または NONE です。NONE を指定した場合は、検証を完全に無効にします。

デフォルトは CRITICAL です。


Synchronize User Password ワークフロー

ユーザーパスワードを同期させるために、PasswordSync アプリケーションによって使用されます。JMS リスナーアダプタによって呼び出されるこのワークフローは、アダプタが送信する個々の要求を受け取り、「ユーザーパスワードの変更」ビューをチェックアウトして後ほどチェックインします。チェックインを完了すると、このワークフローは、デフォルトで、チェックインの成功または失敗を示す確認の電子メールをユーザーに送信します。

変数

Synchronize User Password ワークフローには、次の変数があります。

IDMAccountId

メッセージマッパーによって解決される Identity Manager アカウント ID を指定します。NULL は、ユーザーが Identity Manager に見つからなかったことを示します。

password

すべてのリソースと同期させる必要があるパスワードを識別します。

sourceResource

Identity Manager にリソースアカウントが見つかったリソースの名前を識別します。

userEmail

ユーザーの電子メールアドレスを指定します。この値は、Active Directory から取得されます。NULL の場合は、Identity Manager に記録されている電子メールアドレスです。

PasswordSyncThreshold

同期を開始するまでの秒数を指定します。この設定により、Identity Manager のユーザーインタフェースで更新されたパスワードがソースリソースに送信されても、ユーザーパスワードの同期は繰り返されません。

lastSourcePasswordUpdate

Identity Manager がソースリソースのパスワードを最後に更新してから経過した時間を、ミリ秒単位で示します。この設定により、Identity Manager のユーザーインタフェースでリセットしたパスワードがリソースに送信されても、ユーザーパスワードの同期が再度繰り返されることはありません。

lastUpdateSecs

パスワードが更新されてから経過した時間を、秒単位で示します。

PasswordSyncResourceExcludeList

常に同期対象から除外されるべきリソースの名前を一覧表示します。この属性を設定するには、System Configuration オブジェクトの PasswordSyncResourceExcludeList 属性を編集します。

resourceAccountId

ソースリソースから受け取るネイティブ accountId を指定します。

アクティビティー

checkForIDMAccountID

IDMAccountId が NULL であるかどうかを調べます。NULL である場合は、noIDMAccountForResourceAccount という空のアクティビティーに遷移します。NULL 以外のアカウントが存在する場合は、ワークフローは checkLastUpdateThreshold に遷移します。

noIDMAccountForResourceAccount

デフォルトでは何も行いませんが、受け取ったリソースアカウント ID や GUID をメッセージマッパーが Identity Manager のユーザー名に解決しなかった場合に呼び出されます。

checkLastUpdateThreshold

lastUpdateSecs 変数の値が PasswordSyncThreshold の値未満であることを確認します。このアクティビティーは、Identity Manager 製品でパスワードが変更された場合に、パスワードのリセットが繰り返されることを防ぎます。たとえば、ユーザーがリソース (Active Directory を含む) のパスワードを変更します。この後、パスワード通知ツールは、パスワードが変更されたことを Identity Manager に伝えます。この確認を行わない場合、Identity Manager はパスワードの変更を余分に実行することになります。passwordThreshold の値を超過した場合は、checkoutView アクティビティーは継続されます。

CheckoutView

指定された Identity Manager アカウントの ChangeUserPassword をチェックアウトします。チェックアウトに成功したときは、ワークフローは SetPasswordView に遷移します。失敗した場合は、NotifyFailure に遷移します。

SetPasswordView

リソースアカウントに対して繰り返され、ソースリソースでもなく、排除リストにも含まれないすべてのリソースを選択します。それ以外のすべてのリソースは選択され、直後のパスワード変更が不要であることを示すために、expiredPassword フラグを false に設定します。このアクティビティーは常に CheckTargets に遷移します。

CheckTargets

同期の対象が、ほかに少なくとも 1 つ残されていることを確認します。Identity Manager がその他のリソースアカウントを検出しない場合は、ワークフローは UnlockView に遷移します。

UnlockView

現在チェックアウトされたビューのロックを解除し、終了に遷移します。

CheckinView

NotifyFailure への失敗通知遷移がある場合に、ビューをチェックインします。それ以外の場合は、Notify に遷移します。

Notify

PasswordSyncNotice 電子メールテンプレートを使用して、同期に成功したことをエンドユーザーに通知します。このアクティビティーは常に終了に遷移します。

NotifyFailure

PasswordSyncNotice 電子メールテンプレートを使用して、同期に失敗したことをエンドユーザーに通知します。このアクティビティーは常に終了に遷移します。



前へ      目次      索引      次へ     


Part No: 820-1582.   Copyright 2006 Sun Microsystems, Inc. All rights reserved.