UCIDM サーバー
UCIDM サーバーにおけるアプリケーションやミドルウェアの詳細なシステム概要を次に示します。
UCIDM サーバーとコンテナレジストリ
アプリケーションのコンテナは Docker Compose で管理しています。コンテナを作成するにはインターネット上のコンテナレジストリからコンテナイメージを取得しておく必要があります。
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 モジュールのデータフロー
flowchart TB subgraph in-directory-service [内部向けディレクトリサービス] subgraph windows [Windows サーバー] adserver[Active Directory] passsync-agent-ad[Agent PassSync\nFor AD] end subgraph linux [Linux サーバー] in-ldapserver[OSSTech OpenLDAP サーバー] passsync-agent-ldap[Agent PassSync\nFor OpenLDAP] end end subgraph server [UCIDM サーバー] subgraph compose[Docker Compose] agent[Agent] proxy["リバースプロキシ\n(TLS 終端)"] api[UCIDM API] end end 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 -- https --> proxy proxy -- http --> api
UCIDM サーバーと外部サービスのデータフロー
flowchart TB subgraph server [UCIDM サーバー] subgraph compose[Docker Compose] agent[Agent] admin-ui-bff[Admin UI] ucidm-ui-bff[UCIDM UI] proxy["リバースプロキシ\n(TLS 終端)"] api[UCIDM\nAPI] client[外部連携\nモジュール] client o--o mongodb api o--o mongodb(MongoDB) api -- publish --> rabbitmq(RabbitMQ) 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 in-directory-service -- ldaps/https --> agent api -- ldaps --> ldap-server agent -- https --> proxy proxy -- http --> admin-ui-bff proxy -- http --> ucidm-ui-bff admin-ui-bff -- https --> proxy ucidm-ui-bff -- https --> proxy proxy -- http --> api rabbitmq -- subcribe --> client admin-ui-bff -- アセット --> admin-ui(ID 連携\n管理画面) admin-ui o--o sysadmin(システム\n管理者) admin-ui -- https --> proxy ucidm-ui-bff -- アセット --> ucidm-ui(ユーザー\nプロファイル\n画面) ucidm-ui o--o user(一般\nユーザー) ucidm-ui -- https --> proxy client -- ldaps/https --> ext-directory-service
UCIDM サーバーと周辺サービス全体
前節の図を1つに統合したデータフローです。
%%{init: {"flowchart": {"defaultRenderer": "elk"}} }%% flowchart TB subgraph server [UCIDM サーバー] subgraph compose[Docker Compose] agent[Agent] admin-ui-bff[Admin UI] ucidm-ui-bff[UCIDM UI] proxy["リバースプロキシ\n(TLS 終端)"] api[UCIDM API] client[外部連携モジュール] api o--o mongodb(MongoDB) api -- publish --> rabbitmq(RabbitMQ) client o--o mongodb end end subgraph in-directory-service [内部向けディレクトリサービス] subgraph windows [Windows サーバー] adserver[Active Directory] passsync-agent-ad[Agent PassSync\nFor AD] end subgraph linux [Linux サーバー] in-ldapserver[OSSTech OpenLDAP サーバー] passsync-agent-ldap[Agent PassSync\nFor 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 adserver -- ldaps --> agent in-ldapserver -- ldaps --> agent api -- ldaps --> in-directory-service agent -- https --> proxy proxy -- http --> admin-ui-bff proxy -- http --> ucidm-ui-bff admin-ui-bff -- https --> proxy ucidm-ui-bff -- https --> proxy proxy -- http --> api rabbitmq -- subcribe --> client admin-ui-bff -- アセット --> admin-ui(ID 連携管理画面) admin-ui o--o sysadmin(システム管理者) admin-ui -- https --> proxy ucidm-ui-bff -- アセット --> ucidm-ui(ユーザープロファイル画面) ucidm-ui o--o user(一般ユーザー) ucidm-ui -- https --> proxy client -- ldaps/https --> ext-directory-service