2017-02-08 4 views
1

OIM 11.1.2.3/SOA 11.1.1.9でロールを付与または取り消すリクエストのワークフローを構成しています。OIM/SOAのデフォルト要求拒否ワークフロー

特定の管理者ロールに所属するユーザーによって要求が開始され、その要求が特定の役割を割り当てまたは取り消すことである場合は、要求を承認するようにワークフロールールを設定し、ワークフロー処理なしの「直接」を介して取り消します。

リクエストがシステム管理者によって開始された場合、すぐに使用できるワークフロールールを使用してリクエストを承認することができ、ワークフロー処理なしの「直接」によってロールが付与/取り消されます。

他の状況では、このリクエストを拒否する必要があります。

これを行う方法は、単一のREJECT結果を持つカスタムSOAワークフローコンポジットを作成し、それを最終的なワークフロールールとして構成して、以前のルールが一致しない場合に実行することだと思います。

このアプローチは正しいですか?私は人間とのやりとりを引き起こしたくなく、ただ変更を拒否し、処理を終了します。

答えて

1

我々は代わりに拒否SOAワークフローのデータバリデーターを使用して、この要件を達成することにしました。

AssignRolesDataValidatorを拡張するカスタムバリデーターを作成しました。 リクエストが、sysadminでなく、要求されているロールに対して必須の管理ロールではない人によって開始された場合、データバリデータはInvalidRequestDataExceptionをスローし、エラーメッセージが画面に表示されます。 データバリデーターのvalidate()メソッドが例外なしで完了した場合(つまり、そのユーザーによって要求が許可された場合)にのみ、処理は続行され、ワー​​クフロールールが評価されます。 ワークフロールールは、承認または拒否の決定ではなく、要求がどのように承認されたか(それぞれ上記の「直接」割り当てとワークフローなしで)を処理するだけです。

これが唯一の可能「有効」リクエスト(有効な管理者ロールのメンバーの役割の割り当て)の利点を持っていますが、流れのためのロジックが設定されている方法を複雑にしています。 データバリデータコードとワークフロールールの両方を維持する必要があります。

フィードバック/アドバイスは大歓迎です。

関連する問題