midPointにおける「監査」「レポートと分析」

# はじめに
midPointアドベントカレンダー15日目はIGAの主要な要素である、`監査`、`レポートと分析`について、一般的な意味とIGAの概念の説明、またmidPointでどのように実現していくのかをご紹介したいと思います。


# 監査とは
一般的な監査の定義としては、企業などが業務で使用している情報処理システムにおいて、「障害発生の対策」や「不正アクセスの検知」、「企業活動への活用」などの信頼性・安全性・効率性などの点について第三者の視点から客観的に点検・評価することを指しています。

![SnapCrab_NoName_2019-8-22_18-27-47_No-00.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/316808/43f7e74e-1d39-bac0-e692-8f3c4b1c93de.png)

# IGAで定義されている監査
Gartner社ではIGAにおける`監査`を以下のように定義しています。

（日本語訳）
アイデンティティとアクセス権の現在の状態に対するビジネスルールとコントロールの評価。
アラートは、職務分掌（SOD）違反やターゲットシステムで直接行われた変更など、例外のコントロール所有者にアラートを送信する手段を提供し、秩序立った修復を可能にします。

（原文）
Evaluating business rules and controls against the current state of identities and access rights. 
Alerting provides a means for alerting control owners of exceptions — such as segregation of duty (SOD) violations, or changes made directly on target systems — and allows for orderly remediation.

※ 出典 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月の記事-閲覧は有料)

上記のように、IGAではアイデンティティライフサイクルパターンをベースに、アイデンティティ（ID）と権限の現在の状態に対する点検・評価を行うこととされています。
※ IDライフサイクルについては、[4日目の記事](https://qiita.com/tama1/items/e4ea135aa43a9222fb71#iga%E3%81%A7%E5%AE%9A%E7%BE%A9%E3%81%95%E3%82%8C%E3%81%A6%E3%81%84%E3%82%8Bid%E3%83%A9%E3%82%A4%E3%83%95%E3%82%B5%E3%82%A4%E3%82%AF%E3%83%AB%E7%AE%A1%E7%90%86)をご参照ください。


# midPointにおける監査
ではここでmidPoint上での監査機能についても見ていきたいと思います。midPoint上での監査機能は**IDに関する証跡（いつ、誰が、どこから、何を、どうしたか等）**を、監査ログとして記録します。

## 監査ログの表示手順
![AuditLog_文字あり02.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/316808/46389d19-a20a-eace-3877-f23d730a69cb.gif)

## 監査ログの主な記録内容
以下の表示項目例はユーザ追加時の監査ログになります。
![Audit_log_ADD_OBJECT.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/316808/1cae24cb-558c-bbdc-f972-8945c36acc02.png)

|項目|説明|
|---|---|
|タイムスタンプ|監査レコードが生成された時間|
|イベント識別子|監査イベントの一意の識別子|
|イベントタイプ|どのような操作が実行されたか（オブジェクトの追加、変更、ログインなど）|
|イベントステージ|イベント処理の段階。操作が要求された時点のログか、実際に実行された時点のログかを表す|
|実行ユーザ（イニシエーター）|イベントを実行したユーザやイベントを記録したタスクの所有者等|
|リモートホストアドレス|HttpServletRequest.getRemoteAddr() から取得した値。プロキシやLBを経由する場合に、HTTPヘッダから取得するよう変更可能|
|操作対象|操作対象のオブジェクト|
|変更内容|操作対象に加えられている変更内容の詳細情報|
|イベント結果|操作の結果。（成功、失敗、部分的な失敗等）|

※ その他の出力項目の詳細は[Wiki](https://wiki.evolveum.com/display/midPoint/Auditing)をご参照ください。


# レポートと分析とは
続いて`レポートと分析`についてです。
レポートは集められたデータを何らかの目的に合わせて分類、整理、成型されたものを指します。また分析は、物事を分解し、それを成立させている部分・要素を明らかにすることとあります。（参照：広辞苑）


# IGAで定義されているレポートと分析
Gartner社ではIGAにおける`レポートと分析`を以下のように定義しています。

（日本語訳）
IGAツールで利用可能なデータに関するより深い洞察を報告し、受け渡すメカニズムを提供します。
ロールマイニングは、ロール定義を設計および最適化するために使用される一般的な分析シナリオです。
ただし、実際に使用されているアクセス権を確認するために分析を適用することもできます。
運用データの分析は、サービス品質（QoS）の評価、サービスレベル契約（SLA）の順守、および異常な使用パターンの特定にも使用されます。

（原文）
Providing a mechanism to report on and deliver deeper insights into data available to an IGA tool. 
Role mining is a typical analytics scenario used to design and optimize role definitions; 
however, analytics can also be applied to ascertain which access rights are actually used. 
Analytics on operational data are also used to evaluate quality of service (QoS), adhere to service-level agreements (SLAs) and identify anomalous usage patterns.

※ 出典 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のレポート機能では、IDの管理状態や記録された監査ログを出力し、コンプライアンスチェックを行うことが出来ます。
またダッシュボードでは、リアルタイムにシステムの状態を確認することが可能です。

## 出力可能なレポートの種類
標準では以下のレポートが出力可能です。

![Screenshot_2019-12-09 利用可能なレポート.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/316808/3b77c235-97c7-a9fe-0348-9d70a21d58d9.png)


|項目|説明|
|---|---|
|Audit logs report|監査ログからレポートを出力|
|Certification campaigns report|全てのキャンペーンとその状態を出力|
|Certification cases report|特定のキャンペーン内のステージごとの詳細情報を出力|
|Certification decisions report|キャンペーン全体または、特定キャンペーンのステージごとの情報を出力|
|Certification definitions report|関連するキャンペーンの基本情報を含む、承認状況を出力|
|Reconciliation report|選択したリソースのリコンシリエーション状況を出力|
|Users in MidPoint|ユーザの一覧を出力|

## レポートの出力手順
![reports_文字あり02.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/316808/f7cb647e-5e6d-48e5-9d2d-08850f75946d.gif)

## ダッシュボード
ダッシュボードは初期設定では以下の情報が表示されます。

* 有効なユーザ数
* 有効な組織数
* 有効なロール数
* 有効なサービス
* 有効なリソース数
* 有効なタスク数
* ログインユーザの情報
* midPointが動作しているシステムの情報

![ダッシュボード.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/316808/264fe50d-07d7-2aef-7ef2-30f4da4212af.png)

## 様々な形式でのレポート出力
レポートの出力条件は簡単に変更可能です。また、出力形式もPDF、Word、PowerPoint、HTML、CSVなどの様々な形式から選択可能です。

![reports_config02.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/316808/d58fad05-d09b-7d8c-bc9d-0c4eb081d7fa.gif)


# まとめ
以上のように、`監査`ではIDの証跡を、`レポートと分析`ではIDを含めた、リソースやロール状況などを確認・管理することが可能です。これらを活用することで、アクセス権の見直しや、不要なIDを削除するID棚卸機能など、IGAで定義するIDガバナンスの強化に役立てることが可能です。
次回は、midPointにおける「監査」「レポートと分析」実践編をご紹介いたします。

# 参考
[Report Configuration](https://wiki.evolveum.com/display/midPoint/Report+Configuration)
※ レポートの出力方法

[Auditing](https://wiki.evolveum.com/display/midPoint/Auditing)
※ 監査の詳細情報