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

# OpenLDAP 向け Agent

UCIDM は社内で管理している OpenLDAP サーバーから ID 情報を取得して UCIDM API に連携します。

OpenLDAP 向け Agent はコンテナとして稼働させます。次のように `compose.yml` に設定します。

```yml
  agent-ldap:
    depends_on:
      - api
    container_name: agent-ldap
    image: docker.io/osstech/ucidm-agent:latest
    logging: *default-logging
    volumes:
      - type: bind
        source: ./agent-data/openldap
        target: ${AGENT_PAGE_KEY_PATH}
        bind:
          create_host_path: true
      #- type: bind
      #  source: ./certs/chainCA.crt
      #  target: ${SSL_CERT_FILE}
      #  read_only: true
      #  bind:
      #    create_host_path: false
    entrypoint:
      - ./bin/agent
      - -verbose
      - -jsonl
    environment:
      TZ: "${TZ}"
      # SSL_CERT_FILE: "${SSL_CERT_FILE}"
      PROTOCOL: "syncrepl"
      PAGE_KEY_PATH: "${AGENT_PAGE_KEY_PATH}"
      RELOAD_INTERVAL: "${AGENT_RELOAD_INTERVAL}"
      API_HOST: "${API_HOST}"
      API_PORT: "${API_PORT}"
      API_ACCOUNT_AUTH_USER: "${API_ACCOUNT_AUTH_USER}"
      API_ACCOUNT_AUTH_PASSWORD: "${API_ACCOUNT_AUTH_PASSWORD}"
    restart: "always"
```

## Agent の永続化ディレクトリ

永続化が必要なファイルなどは volumes/agent-data/openldap 配下に配置されます。

```bash
$ ls volumes/agent-data/openldap
```

ここで参照する環境変数は `.env` に設定します。

## 環境変数の設定

接続する OpenLDAP サーバーに関する設定は [UCIDM API サーバーのシステム設定](/resource/ucidm/docs/on-premise/1.8.0/configuration/system-setting.md#metaOpenLDAP) で行います。

### Agent モジュール

| 環境変数            |     値    | 既定値 | 説明                                    |
| :-------------- | :------: | :-: | :------------------------------------ |
| TZ              |    任意    |  -- | タイムゾーン情報                              |
| SSL_CERT_FILE   |    任意    |  -- | LDAP サーバーとの接続において<br />信頼する CA 証明書を指定 |
| PROTOCOL        | syncrepl |  -- | LDAP 通信のプロトコル                         |
| RELOAD_INTERVAL |    任意    |  1m | システム設定の更新を定期的に問い合わせる間隔                |
| PAGE_KEY_PATH   |    任意    |  -- | 同期状況の保存先ディレクトリ                        |

- OpenLDAP サーバーから正常にエントリを取得して UCIDM API サーバーへの連携に失敗 (リトライしても失敗) したときは自動で復旧しません
  - [別途ツールで運用対応する](/resource/ucidm/docs/on-premise/1.8.0/operation/resync.md) 必要があります

次の属性は対象外として連携されません。

- userPassword

### API サーバー

接続する UCIDM API サーバーの設定をします。

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

| 環境変数                      |   値   |    既定値    | 説明                           |
| :------------------------ | :---: | :-------: | :--------------------------- |
| API_SCHEME                | https |    http   | UCIDM API サーバーのプロトコル         |
| API_HOST                  |   任意  | localhost | UCIDM API サーバー名              |
| API_PORT                  |   任意  |   18080   | 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  | リトライの最大回数     |
