midPointにおける「アクセス要求」「ワークフロー」

# アクセス要求とワークフロー（承認）とは
midPoint アドベントカレンダー8日目は、IGA の主要な要素である**アクセス要求**と**ワークフロー（承認）**について、midPoint がどのような機能を備えているか紹介したいと思います。


## アクセス要求とは
入社、あるいは新たな組織に配属されるような場合、組織内のシステムを利用するためにアカウントの登録やアクセスできる権限をもらう必要があります。**アクセス要求（Access Requests）** とはシステム管理者などにそのような要望を伝えることです。通常は、前回の記事 [midPointにおける「エンタイトルメント管理」「ポリシーとロール管理」](https://qiita.com/zakiyamac09/private/f95a013a06152248a2b6)にあるようにポリシーとロールにより自動で適切なロールが割り振られますが、自動化できない例外的なケース（例えば、源泉である人事データから配属情報が渡ってこない、プロジェクト型組織への配属など）の場合は、**アクセス要求**が行われます。

# IGA で定義されているアクセス要求とワークフロー（承認）

ガートナーではIGAにおけるアクセス要求を以下のように説明しています。

（日本語訳）
"使いやすいインタフェースを介して、ユーザー自身、あるいは他のユーザーが代行して、アクセス権限の要求が行うことができる"

（原文）
Enabling users, or others acting on behalf of a user, to request access rights through a business-friendly user interface.


ガートナーではIGAにおけるワークフローを以下のように説明しています。

（日本語訳）
**ワークフロー**: 要求、通知、エスカレーション（例えば承認者の応答がない場合）など、他のビジネスプロセスに関連するタスクを統合し、管理者やリソースの所有者がユーザーの要求を承認 あるいは拒否することができます。

（原文）
**Workflow**: Orchestrating tasks to enable functions such as access approvals, notifications, escalations(e.g., when an approver does not respond after a given interval) and integration with other business processes.Most often, this enables managers or resource owners to approve or deny requests.


※ 出典 Gartner社「Gartner, Definition: [Identity Governance and Administration](https://www.gartner.com/en/documents/3885381/definition-identity-governance-and-administration)」, Felix Gaehtgens, Refreshed 11 September 2019, Published 7 August 2018 (2018年9月の記事-閲覧は有料)




# midPointにおけるアクセス要求とワークフロー（承認）

midPoint にはアクセス要求とワークフロー（承認）のための機能があります。
例えば、アクセス権限を付与するために上長の承認が必要なケースでは下図のようになります。

![アクセス要求とワークフロー（承認）](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/227018/9e4878e3-e23e-6e11-7fff-33acb7fdb7a9.png)


## アクセス要求

midPointでは、アクセス要求は **ロールの要求（Request a role）** という機能で実現されており、申請者が自分の欲しい **ロール** を **ロールカタログ** から選んで **ショッピングカート** に入れていくという分かりやすい操作方法になっています。

詳細は midPoint の下記の Wiki をご参照下さい。
 [Role Request and Shopping Cart](https://wiki.evolveum.com/display/midPoint/Role+Request+and+Shopping+Cart)
 [Role Request and Shopping Cart Configuration](https://wiki.evolveum.com/display/midPoint/Role+Request+and+Shopping+Cart+Configuration)

**アクセス要求**
申請者でログインし、ロールカタログから欲しいロールをショッピングカートに追加して、リクエストを行います。

![アクセス要求](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/227018/09a0e273-9e67-0790-2500-7810144736a6.gif)

## ワークフロー（承認）
midPoint でのワークフロー（承認）は **作業アイテム（Work Items）**メニューから行います。承認者は作業アイテムがあるか確認し、要求があった場合は**承認**または**却下**します。

**承認作業**
承認者でログインし、作業アイテムがあれば承認作業を行います。

![承認](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/227018/028aa008-3394-19c4-eab0-ca6382cae314.gif)

**結果確認**
申請者でログインすると承認されたロールが追加されていることが確認できます。

![結果](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/227018/6c0a1420-bb6a-c042-be91-70108a5cd1df.gif)

**監査ログ確認**
申請、承認履歴は監査ログに保存されるので、後でレポート機能を使用して確認することが可能です。

![監査ログ](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/227018/28758e75-0530-57cb-b360-d582ce5cbea3.png)


詳細は midPoint の下記の Wiki をご参照下さい。

[Workflows](https://wiki.evolveum.com/display/midPoint/Workflows)
[Approval](https://wiki.evolveum.com/display/midPoint/Approval)

# まとめ
本記事で紹介したアクセス要求とワークフロー（承認）の例はごく簡単なものでしたが、多段承認、グループ承認、期限付きの委任（代理承認者設定）、エスカレーション、条件に応じた自動承認といった機能も備えており、複雑な手順を踏む必要がある場合でも柔軟に対応できると思います。

# 参考
[midPointにおける「アクセス要求」「ワークフロー」実践編](https://qiita.com/n1330/items/6e149ec6331b58670548)
※「[midPoint by OpenStandia Advent Calendar 2019](https://qiita.com/advent-calendar/2019/midpoint-by-openstandia)」9日目

[Role Request and Shopping Cart](https://wiki.evolveum.com/display/midPoint/Role+Request+and+Shopping+Cart)
※ロールリクエストとショッピングカートについての概要説明です。

[Role Request and Shopping Cart Configuration](https://wiki.evolveum.com/display/midPoint/Role+Request+and+Shopping+Cart+Configuration)
※ロールリクエストとショッピングカートの基本的な設定です。

[Workflows](https://wiki.evolveum.com/display/midPoint/Workflows)
※ワークフローの概要説明です。

[Approval](https://wiki.evolveum.com/display/midPoint/Approval)
※承認についての概要説明です。