> For AI agents: the complete documentation index is available at /resource/ucidm/docs/on-premise/dev/llms.txt, the full documentation bundle is available at /resource/ucidm/docs/on-premise/dev/llms-full.txt.

# Active Directory 向け PassSync Agent \{#ad-passsync-agent}

UCIDM は社内で管理している Active Directory サーバーからパスワード変更を検知して UCIDM API に連携します。

## システム概要 \{#system-overview}

Windows サーバーの [LSASS (Local Security Authority Server Service)](https://learn.microsoft.com/en-us/previous-versions/windows/it-pro/windows-2000-server/cc961760\(v=technet.10\)?redirectedfrom=MSDN) の仕組みを使ってパスワード変更をフックします。次に Active Directory 向け PassSync Agent の概要を示します。

![](/resource/ucidm/docs/on-premise/static/svg/ad-passsync-agent.c751096d64.svg)
PassSync Agent で送信に失敗したときもリカバリディレクトリにメッセージが一時保存されて定期的に再処理されます。一時保存されるメッセージは難読化されて保存されます。システム管理者が容易にパスワードそのものを確認することはできません。

#### パスワード変更のリカバリの注意事項 \{#password-recovery-notes}

UCIDM ではセキュリティ強化の観点から一般ユーザーのパスワードを原則として保存しません。しかし、システムの一時的な障害のために一般ユーザーにパスワード変更をやり直してもらうのも実運用においてコストがかかります。リカバリ機能は難読化した上で再処理する機能になりますが、リカバリデータを削除しない限り、`UCIDM_RECOVERY_DURATION` の期間リカバリを繰り返します。一時的な検証ユーザーや誤った設定などにより、パスワード変更のデータが生成されてリカバリが不要な場合は削除しても構いません。

リカバリデータは後述する `UCIDM_RECOVERY_PATH` で指定されたディレクトリ配下に格納されます。不要なパスワード変更のデータがある場合はシステム管理者が直接、このディレクトリ配下にあるファイルを削除してください。

## 設定 \{#settings}

システム環境変数をセットします。システム環境変数はコントロールパネル->システムとセキュリティ->システム->システムの詳細設定->環境変数->システム環境変数で編集します。変更後は OS を再起動します。パスワード変更時のイベントログに UCIDM_SOCKET_PATH と UCIDM_SEND_HWM の値が出力されますが、負荷が高い場合イベントログが出力されない可能性があります。

イベントログは 「Windowsログ」→「Application」で確認できます。PowerShellでは以下のように確認できます。

UCIDM-ADPassHookを確認する例

```
Get-EventLog -LogName Application | Where-Object { $_.Source -eq "UCIDM-ADPassHook"} | Select-Object -First 1 | Format-List *
```

UCIDM-ADPassSyncを確認する例

```
Get-EventLog -LogName Application | Where-Object { $_.Source -eq "UCIDM-ADPassSync"} | Select-Object -First 1 | Format-List *
```

- [アカウント認証は agent アカウントの利用を推奨](/resource/ucidm/docs/on-premise/dev/configuration/agent/account.md)

| 環境変数                      |   値   |           既定値           | 説明                           |
| :------------------------ | :---: | :---------------------: | :--------------------------- |
| AD_SCHEME                 |   任意  |          ldaps          | AD 接続のプロトコル                  |
| AD_SECURE_SKIP            |   任意  |          false          | AD 接続で任意の証明書を許可              |
| AD_BIND_DN                |   任意  |         bind-dn         | AD 接続の BIND DN               |
| AD_BIND_PASSWORD          |   任意  |      bind-password      | AD 接続の BIND パスワード            |
| AD_PORT                   |   任意  |           636           | AD 接続のポート番号                  |
| AD_SEARCH_BASE            |   任意  | dc=ad,dc=example,dc=com | AD 接続の search base           |
| API_SCHEME                | https |           http          | UCIDM API サーバーのプロトコル         |
| API_HOST                  |   任意  |        localhost        | UCIDM API サーバー名              |
| API_PORT                  |   任意  |          18080          | UCIDM API サーバーのポート番号         |
| API_SECURE_SKIP           |   任意  |          false          | UCIDM API サーバーの任意の証明書を許可     |
| API_ACCOUNT_AUTH_USER     |   任意  |            --           | 接続する UCIDM API のアカウント認証ユーザー  |
| API_ACCOUNT_AUTH_PASSWORD |   任意  |            --           | 接続する UCIDM API のアカウント認証パスワード |

UCIDM API サーバーへのリクエストに失敗 (ステータスコードが 500 以上を返す) したときのリトライの設定をします。

| 環境変数                  |  値  | 既定値 | 説明             |
| :-------------------- | :-: | :-: | :------------- |
| CLIENT_RETRY_WAIT_MIN |  任意 |  1s | 1 回目のリトライの待ち時間 |
| CLIENT_RETRY_WAIT_MAX |  任意 | 30s | リトライの最大の待ち時間   |
| CLIENT_RETRY_MAX      |  任意 |  4  | リトライの最大回数      |

agent プロセスがメッセージキューを使うときの設定をします。

| 環境変数              |                      値                     |      既定値      | 説明                    |
| :---------------- | :----------------------------------------: | :-----------: | :-------------------- |
| TZ                |                     任意                     |       --      | タイムゾーン情報              |
| UCIDM_SOCKET_PATH | C:\OSSTech\UCIDM-ADPassSync\socket\adpsync | my-ipc-socket | Unix ドメインソケットのパス      |
| UCIDM_SEND_HWM    |                     任意                     |       0       | メッセージキューのバッファサイズ      |
| UCIDM_BYTE_ORDER  |                     任意                     |  LittleEndian | メッセージエンコーディングのバイトオーダー |

sender/agent プロセスが送信処理に失敗したときにデータを一時保存するリカバリ設定をします。

| 環境変数                    |                    値                   |    既定値    | 説明                                |
| :---------------------- | :------------------------------------: | :-------: | :-------------------------------- |
| UCIDM_RECOVERY_PATH     | C:\OSSTech\UCIDM-ADPassSync\\.recovery | .recovery | リカバリのためのメッセージが<br />一時保存される場所へのパス |
| UCIDM_RECOVERY_INTERVAL |                   任意                   |    10m    | リカバリの実行間隔                         |
| UCIDM_RECOVERY_DURATION |                   任意                   |    72h    | リカバリを行う期間                         |
