> 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.

# UCIDM サーバー

UCIDM サーバーにおけるアプリケーションやミドルウェアの詳細なシステム概要を次に示します。

## UCIDM サーバーとコンテナレジストリ

アプリケーションのコンテナは [Docker Compose](https://docs.docker.com/compose/) で管理しています。コンテナを作成するにはインターネット上のコンテナレジストリからコンテナイメージを取得しておく必要があります。

```mermaid
flowchart LR

subgraph cr [コンテナレジストリ]
  repo[リポジトリ]
end

subgraph server [UCIDM サーバー]
  subgraph compose[Docker Compose]
  end
end

compose -- "docker pull" --> repo
repo -- image --> compose
```

## UCIDM サーバー内部のサービス詳細

Docker Compose 内部で複数のサービスが協調してシステムを構成しています。

### 内部ディレクトリサービス／クラウドサービスと Agent モジュールのデータフロー

```mermaid
flowchart TB

subgraph cloud-service [クラウドサービス]
  cloud-server[Microsoft Entra ID]
end

subgraph in-directory-service [内部向けディレクトリサービス]
  subgraph windows [Windows サーバー]
    adserver[Active Directory]
    passsync-agent-ad[Agent PassSync<br />For AD]
  end
  subgraph linux [Linux サーバー]
    in-ldapserver[OSSTech OpenLDAP<br />サーバー]
    passsync-agent-ldap[Agent PassSync<br />For OpenLDAP]
  end
end

subgraph server [UCIDM サーバー]
  proxy["リバースプロキシ<br />(TLS 終端)"]
  subgraph compose[Docker Compose]
    agent[Agent]
    api[UCIDM API]
  end
end

cloud-server -- https --> agent
adserver -- event --> passsync-agent-ad
passsync-agent-ad -- https --> proxy
in-ldapserver -- event --> passsync-agent-ldap
passsync-agent-ldap -- https --> proxy

adserver -- ldaps --> agent
in-ldapserver -- ldaps --> agent

agent -- http --> api
proxy -- http --> api
```

### UCIDM サーバーと外部サービスのデータフロー

```mermaid
flowchart TB

subgraph server [UCIDM サーバー]
  proxy["リバースプロキシ<br />(TLS 終端)"]
  subgraph compose[Docker Compose]
    agent[Agent]
    admin-ui-bff[Admin UI BFF]
    ucidm-ui-bff[UCIDM UI BFF]
    api[UCIDM<br />API]
    client[外部連携<br />モジュール]

    client o--o mongodb
    api o--o mongodb(MongoDB)
    api -- publish --> rabbitmq(RabbitMQ)
  end
end

subgraph cloud-service [クラウドサービス]
  subgraph cloud-server [クラウドサーバー]
  end
end

subgraph in-directory-service [内部向けディレクトリサービス]
  subgraph ldap-server [LDAP サーバー]
  end
end

subgraph ext-directory-service [外部向けサービス]
  ext-openldap[OpenLDAP]
  ext-ad[Active Directory]
  ext-google[Google Workspace]
  ext-me-id[Microsoft Entra ID]
  ext-scim[SCIM]
end

cloud-service -- https --> agent
in-directory-service -- ldaps/https --> agent
api -- ldaps --> ldap-server

proxy -- http --> admin-ui-bff
proxy -- http --> ucidm-ui-bff
agent -- http --> api
admin-ui-bff -- http --> api
ucidm-ui-bff -- http --> api
proxy -- http --> api
rabbitmq -- subcribe --> client

admin-ui(Admin UI) o--o sysadmin(システム<br />管理者)
admin-ui -- https --> proxy

ucidm-ui(UCIDM UI) o--o user(一般<br />ユーザー)
ucidm-ui -- https --> proxy

client -- ldaps/https --> ext-directory-service
```

### UCIDM サーバーと周辺サービス全体

前節の図を1つに統合したデータフローです。

```mermaid
%%{init: {"flowchart": {"defaultRenderer": "elk"}} }%%
flowchart TB

subgraph server [UCIDM サーバー]
  proxy["リバースプロキシ<br />(TLS 終端)"]
  subgraph compose[Docker Compose]
    agent[Agent]
    admin-ui-bff[Admin UI BFF]
    ucidm-ui-bff[UCIDM UI BFF]
    api[UCIDM API]
    client[外部連携モジュール]

    api o--o mongodb(MongoDB)
    api -- publish --> rabbitmq(RabbitMQ)
    client o--o mongodb
  end
end

subgraph cloud-service [クラウドサービス]
  subgraph cloud-server [クラウドサーバー]
    meid[Microsoft Entra ID]
  end
end

subgraph in-directory-service [内部向けディレクトリサービス]
  subgraph windows [Windows サーバー]
    adserver[Active Directory]
    passsync-agent-ad[Agent PassSync<br />For AD]
  end
  subgraph linux [Linux サーバー]
    in-ldapserver[OSSTech OpenLDAP<br />サーバー]
    passsync-agent-ldap[Agent PassSync<br />For OpenLDAP]
  end
end

subgraph ext-directory-service [外部向けサービス]
  ext-openldap[OpenLDAP]
  ext-ad[Active Directory]
  ext-google[Google Workspace]
  ext-me-id[Microsoft Entra ID]
  ext-scim[SCIM]
end

adserver -- event --> passsync-agent-ad
in-ldapserver -- event --> passsync-agent-ldap
passsync-agent-ad -- https --> proxy
passsync-agent-ldap -- https --> proxy

meid -- https --> agent
adserver -- ldaps --> agent
in-ldapserver -- ldaps --> agent

api -- ldaps --> in-directory-service

agent -- http --> api
proxy -- http --> api
proxy -- http --> admin-ui-bff
proxy -- http --> ucidm-ui-bff
admin-ui-bff -- http --> api
ucidm-ui-bff -- http --> api
rabbitmq -- subcribe --> client

admin-ui(Admin UI) o--o sysadmin(システム管理者)
admin-ui -- https --> proxy

ucidm-ui(UCIDM UI) o--o user(一般ユーザー)
ucidm-ui -- https --> proxy

client -- ldaps/https --> ext-directory-service
```
