国産IDaaS Exticを使ってみる 9. ADアグリゲータ

[前回](https://qiita.com/ahra_/items/c9340144998159c3a989)の続きです。
## ADアグリゲータとは
ADのユーザー情報をExticに連携するためのWebアプリケーションです。
パスワード同期フックモジュールを併用することで、パスワード情報の連携も可能です。

## 設定
### 事前準備
管理コンソール > アプリケーションから「Active Directory(オンプレミス) アグリゲータ」を選択します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3900965/039ee83f-9493-ed4a-12f5-a7bdf221a08c.png)
表示名を設定し、接続キーを発行します。
![スクリーンショット 2025-01-07 102059.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3900965/5896e36e-fa7b-91e6-d051-f8e4ca5ad3d7.png)
連携対象のADのドメインコントローラーにてパスワード同期フックモジュールをインストールします。（手順は前回と同一です）
`ADPasswdSyncHookCfg.exe`を起動します。
ここでは、ユーザー識別属性名と識別文字を空欄とし、エージェント接続情報に`http://(ホスト名):(ポート)/adaggregator/pwdhook`を指定、また接続キーに**ADアグリゲータ用に発行した接続キー**を指定します。
![スクリーンショット 2025-01-07 105714.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3900965/4e684fe4-bfc5-9459-e839-60a31f0e9eec.png)
### Webアプリケーションの設定
`adaggregator.war`をダウンロードします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3900965/3069bccd-fc88-1889-882d-deaf4c14d887.png)
`adaggregator.war`を`<tomcat_home>\webapps\`以下にコピーしてデプロイします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3900965/d8eb8248-8e47-a3d0-037b-3228f8954faa.png)
`<tomcat_home>\webapps\adaggregator\WEB-INF\classes\META-INF\application_setting.properties`を開き、接続キー、サブドメイン、SQLiteのディレクトリと連携用CSVファイルの文字コードを指定します。
![スクリーンショット 2025-01-07 103859.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3900965/bf4ee0b5-107c-d6dd-9732-b89f1b8fe737.png)
指定した文字コードとExtic本体側のCSVファイルの文字コードを合わせる必要があります。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3900965/708dce24-522d-ccad-ac47-9d1f025a38ff.png)
保存してTomcatを再起動します。
`http://(ホスト名):(ポート)/adaggregator/`にアクセスし、**テナント管理者グループのユーザー**でログインします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3900965/6ca66b7e-d929-5506-c15c-0f1ebd938050.png)
次の画面に遷移します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3900965/56736c99-ea6a-db6e-9f4c-319ab74052eb.png)
画面右上プルダウンメニューから「設定」を選択します。
「AD接続設定」ではADへの接続情報と抽出フィルターを設定します。今回は`cn=*`とします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3900965/dbee0a1e-7271-4b27-c7fc-61208fb000e5.png)
「ユーザーマッピング設定」ではユーザーエントリのキー属性の指定とマッピングを行います。
今回は以下の通りとしました。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3900965/40776c70-ae45-c6a6-8ba1-b2c44af74506.png)
最後にポーリング間隔、開始時間と自動起動の設定を行って完了です。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3900965/b2344c9e-124f-70e1-112e-edfb910a87e5.png)
## 確認
Webアプリケーションとパスワード同期フックサービスを起動します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3900965/79ee00ba-4704-473f-9d61-db433f89aeb7.png)
ADにユーザーを追加します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3900965/dd686dda-5b61-a6be-c0cf-00e36dfc0505.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3900965/4610739a-6f72-6723-db52-eb8ec34e5c31.png)
するとこのように、Exticにユーザーが追加されます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3900965/509b5c9a-1aa5-79d4-3a74-7e30002c2db8.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3900965/7360de80-8707-e28c-3a90-c624861a825c.png)
このユーザーの情報を変更します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3900965/41235d54-2c24-b771-e7cd-777fb04b3f9f.png)
Exticにも連携されました。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3900965/af8d8437-5b2b-c6de-21d8-f95ae3e0b6fc.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3900965/413d3923-8f17-4fce-8f14-43fb7d0e0cdd.png)
ちなみに、ExticにADのユーザーが追加される契機はパスワード情報の更新です。
フィルターでは`cn=*`としていても、ベースDN以下のユーザーエントリがすべて追加されることはなく、パスワード変更を行ったユーザーのみがExticに追加される仕様になっています。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3900965/14b351cb-9891-4494-fd7b-6cb4fd6edeae.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3900965/def6825e-ace5-fd11-ae50-ed6bfa6ca117.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3900965/b69f11e2-3029-6b16-53df-4ca450517e12.png)
## 応用 - ADエージェント（アグリゲータモード）の使用
ADエージェント（アグリゲータモード）を使用することで、AD→Extic間の連携中でもExtic側で変更したパスワードをADに連携することができます。
### 設定
`<tomcat_home>\webapps\`以下に`adagent.war`をコピーしてデプロイします。ここでは設定の都合上ファイル名を`adagent-agg.war`に変更しています。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3900965/0b5aee43-7e92-d1b7-45cf-75fb94f5ece2.png)
`<tomcat_home>\webapps\adagent-agg\WEB-INF\classes\META-INF\application_setting.properties`を開きます。
サブドメインと**ADアグリゲータ用の接続キー**を指定します。
`user_filter_key_attribute`の設定値はADアグリゲータの設定でExticの`ユーザー名`属性にマッピングしたADの属性と同一である必要があります。
![スクリーンショット 2025-01-07 121556.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3900965/245e4afc-c08e-36e6-0aa1-80e1af9314ac.png)
`http://(ホスト名):(ポート)/adagent-agg/`にアクセスし、テナント管理者グループのユーザーでログインします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3900965/94aae47d-a557-5bb4-aefc-05229d99987f.png)
ログイン後、右上プルダウンメニューから「設定」を選択します。
「AD接続設定」で連携するADへの接続情報を指定します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3900965/9d2a8ddb-2f96-a966-24d3-3f46a27bb536.png)
「ユーザーマッピング設定」ではパスワード同期フックモジュールのパスワード同期識別名に指定した属性と同じ属性を指定します。
また、プリセットのAD属性とExtic属性をマッピングします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3900965/b466674d-3118-6370-62d2-1bdc120c4b20.png)
最後にポーリング間隔を設定します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3900965/968cd795-6589-eb85-63d1-fb964015d714.png)
### 確認
では、アプリケーションを起動し、Exticにて対象ユーザーのパスワードを変更します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3900965/7ce4ba0f-8576-99af-19e4-a2894929edde.png)
パスワード変更の処理が実行されます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3900965/7e15c545-b216-799a-3df9-80cbc53d6e8e.png)
##
このようにして、ADからExticへのユーザー情報の連携が行われます。
[次回](https://qiita.com/ahra_/items/702c1acd8cde3c5b6486)はローカルのサーバー上にCSVファイルを作成する「CSV(オンプレミス)出力」、CSVインポート処理を行うAPI「CSVインポートAPI」について検証します。