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 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 サーバーと外部サービスのデータフロー
flowchart TB subgraph server [UCIDM サーバー] proxy["リバースプロキシ<br />(TLS 終端)"] subgraph compose[Docker Compose] agent[Agent] admin-ui-bff[Admin UI] ucidm-ui-bff[UCIDM UI] 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 o--o sysadmin(システム<br />管理者) admin-ui -- https --> proxy ucidm-ui o--o user(一般<br />ユーザー) ucidm-ui -- https --> proxy client -- ldaps/https --> ext-directory-service
UCIDM サーバーと周辺サービス全体
前節の図を1つに統合したデータフローです。
%%{init: {"flowchart": {"defaultRenderer": "elk"}} }%% flowchart TB subgraph server [UCIDM サーバー] proxy["リバースプロキシ<br />(TLS 終端)"] subgraph compose[Docker Compose] agent[Agent] admin-ui-bff[Admin UI] ucidm-ui-bff[UCIDM UI] 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 o--o sysadmin(システム管理者) admin-ui -- https --> proxy ucidm-ui o--o user(一般ユーザー) ucidm-ui -- https --> proxy client -- ldaps/https --> ext-directory-service