ワークフロー管理における認可とは、特定のタスクやアクションを実行する際に、適切な権限を持つ人に対して適用される重要な仕組みです。これは、システムや組織の運営において、セキュリティを向上させたり、業務を効率化させるうえで重要です。acomoにおいてはこのような認可に関するポリシーを3つの考え方で実現し、細かく制御可能です。
acomoにおける3つの認可ポリシーは次の表の通りです。
ポリシー名 | 適用範囲 | 説明 |
---|---|---|
プロセス実行ポリシー | ワークフロー・プロセス | プロセスの状態に応じて、申請や承認などのアクションを実行できるかどうかを判断します。 |
データアクセスポリシー | ワークフロー・プロセス | プロセスの状態に応じて、データスキーマの各データ項目に対してどのような読み取りや書き込みが可能かを判断します。 |
システム実行ポリシー | 全ての機能、API | 各APIに対して、実行権限を持つかどうかを判断します。 |
データアクセスポリシーやシステム実行ポリシーの詳細については後述しますが、その中でWrite(書き込み権限)やRead(読み取り権限)という表現があります。
acomoでは、書き込み権限は常に読み取り権限を包含した権限として扱います。つまり、ある対象の書き込み権限があれば、同じ対象の読み取り権限も同時に持っていると見なされます。
プロセス実行ポリシーとは、ワークフロー・プロセスの各タスクを誰が実行できるかを制御します。例えば、次のようなユースケースを満たすために利用します。
プロセス実行ポリシーはワークフロー・モデルを定義する際に、各タスクに対して設定します。
ここまでのサンプルで使用した1段階フローの「承認」タスクは次のように、業務管理者ロールが付与されたロールのみが実行できるような定義となっています。
$user.roles has 業務管理者
これを業務管理者ロールを持たないユーザーで承認APIを実行すると、403 Forbiddenエラーとなります。