LDAP Managerを使ってみた！ 8. 操作ログオプション編

[前回](https://qiita.com/ahra_/items/3f3c3374d04af92dc0a3)の続きです。
## 操作ログオプションとは
LDAP Managerの各プラグインでLDAPサーバのエントリを更新した際のログを、ローカルのSQLiteまたはPostgreSQLに出力し、Webアプリケーションを通じて照会できる追加オプションです。

## 事前準備
### データベースの準備
PostgreSQLをデータベースに使用します。（PostgreSQLの環境構築については省略）
以下の通り、データベースを作成します。
```
postgres=# create database sosalog;
CREATE DATABASE
postgres=# create role sosalog with login password 'sosalog';
CREATE ROLE
postgres=# grant all on database sosalog to sosalog;
GRANT
postgres=# alter database sosalog owner to sosalog;
ALTER DATABASE
```
### ODBCデータソースの準備
LDAP Managerがインストールされているサーバにて、操作ログ用のODBCデータソースを作成します。
![pic (1).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3900965/b7fe18d8-cf54-dbaa-d00c-11cfa529aba3.png)
## 操作ログオプションのインストール・設定
操作ログオプションをインストールします。
![pic (2).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3900965/003d7f64-33f8-53b8-2dc7-349a9f28310b.png)
LDAP Manager コンソール「環境設定」 > 「基本設定」に「操作ログ管理」が追加されているので、そこから設定します。
DBへの接続情報とWebアプリケーションからの接続を受けるポートを指定します。

::: note warn
ポート番号に30000を指定していますが、User Ports番号の範囲に入っているため不適切です。
実際にはDynamic and/or Private Portsである49152-65535の範囲から指定することが適切です。
:::
![pic (3).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3900965/cf76a456-a9c8-3e8c-270f-d8c9dc47e48e.png)
Webアプリケーション側で使用するユーザを追加します。（LDAP Manager認証を使用する場合）
![pic (4).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3900965/afd28dc1-ef27-5284-615c-534520385df4.png)
![pic (5).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3900965/2038ad85-0c1c-c87f-7dbe-aaddf585c025.png)
`sosalog`フォルダを`<tomcat_home>\webapps\`にコピーします。
![pic (6).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3900965/434bd1af-e659-d8c1-0ea3-ae65da94f4ee.png)
`<tomcat_home>\webapps\sosalog\WEB-INF\classes\sosalog.ini.template`を`sosalog.ini`にコピーして編集します。
LDAP Managerへの接続情報などを設定します。
![pic (7).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3900965/42c42cfd-ee15-0910-299c-fb8d4f62743f.png)
## 確認
`http://(ホスト名):(ポート)/sosalog/`にアクセスします。
次の画面に遷移します。
設定した操作ログオプションのユーザでログインします。
![pic (8).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3900965/01d4b983-5c38-1466-39f4-3dfcf4272a6f.png)
このような画面に遷移します。
![pic (9).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3900965/bc89eb3e-8a66-000e-c4e9-3e806534fe16.png)
まだレコードが存在していないので、「検索」ボタンを押下しても"検索条件に一致する操作ログは見つかりませんでした。"と表示されます。
![pic (10).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3900965/996e7abd-4505-bf50-e857-e88f6b793619.png)
管理者メンテナンスで操作を実施します。
![pic (11).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3900965/5d992922-1897-36b0-565f-8c34b03ed3eb.png)
操作後、再度検索すると実施した操作のログが記録されていることがわかります。
![pic (12).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3900965/1ee358e3-a870-e333-ef9a-498032dbdaf7.png)
![pic (13).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3900965/59d22b35-1c72-eee1-3183-0f5996e9b76a.png)
![pic (14).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3900965/1f5bed87-0384-c8fd-9fb8-15e821c98183.png)
変更前/変更後の属性名と属性値を指定しての検索や、対象エントリを指定しての検索など、充実したフィルタで検索することができます。
![pic (15).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3900965/fe109fa1-9093-b056-8b47-6af399c31df5.png)
![pic (16).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3900965/fe6c26fe-7edb-4629-5318-6c4cfcd2f773.png)
`sosalog.ini`の`[MASK-ATTRIBUTES]`セクション項目`Attributes=`にLDAP属性を記述することで、Webアプリケーション上で参照した際にマスク表示させることができます。
![pic (17).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3900965/17d34148-4ee5-edb0-77dd-5bbdfb232db3.png)
![pic (18).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3900965/1d5a05ae-f026-a10a-4316-573576516469.png)
## まとめ
操作ログオプションではこのようにエントリの操作記録を詳細に確認することができます。
[次の記事](https://qiita.com/ahra_/items/287ccf18363734140926)では、LDAP ManagerのLDAP→ODBC反映とODBC→LDAP反映について検証します。