国産IDaaS Exticを使ってみる 7. AD Provisioning

[前回](https://qiita.com/ahra_/items/7cb8fb47eaa0bcb5270b)の続きです。
## AD Provisioning
「ADエージェント」と呼ばれるWebアプリケーションを使用し、Exticのユーザー情報とエージェント側で設定したグループ情報を連携する機能です。
複数のエージェントを稼働させることで、複数のADドメインに連携させることが可能です。
## 設定
### 事前準備
※Visual C++ 2015-2022 再頒布可能パッケージのインストールが前提です。
ADへの接続ユーザーに`UPN`=ユーザーログオン名を設定します。接続ユーザーは必ず`DomainAdmins`と`AccountOperators`グループの両方に参加しているか、それ以上の権限を持っている必要があります。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3900965/bdd010de-e5f9-f6cb-1080-bf4aa85c01b4.png)
Extic管理コンソール > アプリケーション から「Active Directory(オンプレミス)」を選択します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3900965/dd1e83ae-a038-805b-71d1-2c6cb0fe2f5d.png)
表示名を設定し、接続キーを発行します。
![スクリーンショット 2025-01-06 102832.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3900965/8a42dc64-def5-c06d-015c-d8ed301a04ff.png)
### Webアプリケーションの設定
管理コンソールより`adagent.war`をダウンロードします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3900965/58b5c7f7-35c5-3831-70a5-77377aa5eaa2.png)
`<tomcat_home>\webapps\`以下にコピーしてデプロイします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3900965/f768fa8d-d931-e13d-4c6f-8897dc94e323.png)
`<tomcat_home>\webapps\adagent\WEB-INF\classes\META-INF\application_setting.properties`を開き、サブドメイン、接続キー、sqliteのDBファイルの格納先ディレクトリを指定します。
Exticのユーザー名をマッピングする、AD側のユーザーのキー項目はデフォルトの`sAMAccountName`とします。
![スクリーンショット 2025-01-06 104454.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3900965/89ccef85-77dd-b249-ca13-2be0693d5272.png)
保存してTomcatを再起動します。
`http://(ホスト名):(ポート)/adagent/`にアクセスし、管理者ロールを持つユーザーでログインします。
次の画面に遷移します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3900965/45400a72-b2fb-0246-2b32-aee02b4cf295.png)
画面右上プルダウンメニューから「設定」を選択します。
「AD接続設定」ではADへの接続情報を設定します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3900965/b49a8dbe-b1bb-e46e-0a73-480bdde8c971.png)
「ユーザーマッピング設定」からはまずエントリ・コンテナの識別属性名と値、パスワード同期識別属性名を設定します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3900965/729d1361-2928-b4ee-9739-624a462af345.png)
マッピングは以下の設定としました。
`[is_enabled]`などの特別な属性名を使用することで、ADのアカウントオプション（「アカウントは無効」など）をマッピング対象にすることができます。
`[organization_unit]`属性を使用した動的な格納先OUの変更も可能です。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3900965/860b4a72-b2eb-30c5-e1a8-fd7ce8b46425.png)
「グループマッピング設定」ではまず、グループとコンテナの識別属性と値、空グループの削除を行うかの設定を行います。
次に、必要に応じてAD側に作成したいグループの設定を行います。ここで設定するグループはExtic側のグループとは無関係です。
ここでは、有効なアカウントがメンバーとなる`testgroup`というセキュリティグループを定義しています。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3900965/147636c0-394e-7ab7-1e53-1b796c47f11c.png)
「後続処理実行機能」では追加・更新・削除の処理ごとに実行ファイルを実行することができます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3900965/0f4e6534-5ec9-1e95-5abf-786ee4beefbb.png)
最後にポーリング間隔と自動起動の設定を行って終了です。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3900965/5dd3a362-79d3-ba49-4c51-993d2c7c8751.png)
## 確認
対象ユーザーのアプリケーション設定にてADプロビジョニングを「使用する」にします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3900965/0cd0bf2b-9ff6-0075-2e6c-0140a43e8d2a.png)
アプリケーションを起動します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3900965/56200e8d-e568-d668-1b91-ce38e9946076.png)
ユーザーとグループ、グループメンバが追加されました。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3900965/294ed9a8-88d7-8332-5b89-9f09beb7368c.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3900965/75fc7961-2652-cf99-b249-42781c8fc5ca.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3900965/7338144b-2341-963a-bf5a-09beeacbfe17.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3900965/920aacf3-00bc-b2d2-1f51-dbd31fdace00.png)
アカウントを無効化してみます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3900965/c089158d-9908-9318-e858-09a5298bb764.png)
ユーザーエントリが更新され、また`アカウント有効`が`true`であることをメンバー要件にしていた`testgroup`グループから削除されました。
空グループが削除される設定ではないため、グループは残置されます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3900965/7172db4f-11a0-bd44-641d-167cc5b67d48.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3900965/bb29bd47-40e3-8715-d06b-c02c7fc52af5.png)
「アカウントは無効」にチェックが入っていることがわかります。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3900965/a1621f0b-39f7-4986-7bd9-d18a0eafe733.png)
アプリケーションを「使用しない」設定とすることで、ユーザーエントリの削除処理が実施されることもわかります。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3900965/e80f45ef-98f6-6555-12a6-213c3a30d6e2.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3900965/322cc753-9ad1-7252-bddc-d9202c67100c.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3900965/125a9d6d-aded-fd18-4e8e-4a7e9d6cde42.png)
## 
このようにして、ExticからADへのプロビジョニングが実行されます。
[次回](https://qiita.com/ahra_/items/c9340144998159c3a989)はADのパスワード変更を検知してExticに送信する「ADパスワード同期フック」について検証します。