複数のロールによる承認設定が可能である。設定されたロールの承認者数による承認処理が行われると、承認完了となるワークフロー定義が可能である。同じロールとユーザの重複した承認は許可されない。(承認の順序まで指定するには独自のチェックが必要となりそうか)
サンプル config/config.d/realm.tpl/workflow/def/certificate_signing_request_v2.yaml
... action: approve_csr: class: OpenXPKI::Server::Workflow::Activity::Tools::Approve label: I18N_OPENXPKI_UI_WORKFLOW_ACTION_CSR_APPROVE_CSR_LABEL description: I18N_OPENXPKI_UI_WORKFLOW_ACTION_CSR_APPROVE_CSR_DESC param: check_creator: 0 multi_role_approval: 1 # ここを1にする ...
サンプル config/config.d/realm.tpl/workflow/def/certificate_signing_request_v2.yaml
... condition: ... # If you want a 4-eyes approval, just add a second "RA Operator" # e.g. "role: RA Operator, RA Operator" - you should add also # add current approval count to the output in the relevant states is_approved: class: OpenXPKI::Server::Workflow::Condition::Approved param: role: RA Operator,RA Operator # ここにカンマ区切りで複数のロールを指定する
approval_count
というcontextに承認数が記録されているので、outputでこのパラメタを表示するようにすれば良い。
サンプル config/config.d/realm.tpl/workflow/def/certificate_signing_request_v2.yaml
... PENDING_POLICY_VIOLATION: label: I18N_OPENXPKI_UI_WORKFLOW_STATE_POLICY_VIOLATION_LABEL description: I18N_OPENXPKI_UI_WORKFLOW_STATE_POLICY_VIOLATION_DESC action: - edit_subject > UPDATE_REQUEST ? acl_can_approve - edit_san > UPDATE_REQUEST ? profile_has_san_section acl_can_approve - edit_cert_info > UPDATE_REQUEST ? profile_has_info_section acl_can_approve - edit_validity > CHECK_VALIDITY ? acl_can_approve - global_noop > RUN_POLICY_CHECKS ? has_policy_violation acl_can_approve - approve_csr > CHECK_APPROVALS ? acl_can_approve - load_issuer_list > SET_ISSUER ? acl_can_approve allow_issuer_override - put_request_on_hold > ONHOLD ? acl_can_approve - reject_request > NOTIFY_REJECT ? acl_can_reject output: - cert_subject - cert_subject_alt_name - policy_comment - check_policy_dns - check_policy_subject_duplicate - check_policy_key_duplicate - notbefore - notafter - cert_profile - certsign_token_select - cert_info - approval_count # ここを表示 ...
参考リンク †
- OpenXPKI/Server/Workflow/Activity/Tools/Approve.pm - on https://github.com/openxpki/openxpki/blob/v3.6.0/core/server/OpenXPKI/Server/Workflow/Activity/Tools/Approve.pm
- OpenXPKI/Server/Workflow/Condition/Approved.pm - on https://github.com/openxpki/openxpki/blob/v3.6.0/core/server/OpenXPKI/Server/Workflow/Condition/Approved.pm#L40