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