Агуулгыг алгасах

Давхаргат бүтэц

Экосистем нь тав давхаргаас бүрдэнэ. Доод давхарга нь дээдээ үйлчилдэг; дээд давхарга нь доод давхаргын дотоод бүтцийг мэддэггүй, зөвхөн түүний гэрээгээр (contract) харилцана.

┌──────────────────────────────────────────────────────────────────────────┐
│  ДАВХАРГА 4 — САЛБАР ПРОДУКТ (vertical)                                  │
│  ring.dgov.mn        Ring System — процессын дахин инженерчлэл           │
│  hurdan.dgov.mn      «Хурдан» платформ — үйлчилгээ хүргэх / хянах        │
│  developer.gerege.mn Developer Portal (dgov хувилбартай)                 │
│  wallet.gerege.mn    Gerege Wallet — иргэний цахим түрийвч               │
│  geregekiosk.mn      Gerege Kiosk — өөрөө үйлчлэх терминал               │
├──────────────────────────────────────────────────────────────────────────┤
│  ДАВХАРГА 3 — ПЛАТФОРМЫН СУУРЬ                                           │
│  ── 2-р үе: Nexus — модульт монолит, апп стор ─────────────────────────  │
│  nexus.gerege.mn      Gerege Nexus — upstream, 8 модуль                  │
│  eduge.mn             Eduge.mn — салбарын брэнд салаа                    │
│  (домэйн хүлээгдэж)   Gerege SSO — нэвтрэлтэд төвлөрсөн салаа            │
│  ── 1-р үе: Template — репо тус бүрд fork ─────────────────────────────  │
│  template.gerege.mn   Gerege Template Platform                           │
│  template.dgov.mn     Government Template Platform V3.0 (+ Node.js порт) │
│  gerege.mn            Gerege Platform (өөрөө SSO provider)               │
│  → Clean Architecture Go + Next.js BFF + Gemini AI pipeline              │
├──────────────────────────────────────────────────────────────────────────┤
│  ДАВХАРГА 2 — ТАНИЛТ / SSO (OIDC provider)                               │
│  sso.gerege.mn  Gerege SSO        sso.dgov.mn  Government SSO            │
│  dan.gerege.mn  DAN Gateway       gsign.gerege.mn  G-Sign                │
│  → өөрийн Go OAuth2/OIDC код (Hydra-г бүрэн орлуулсан), нэг DB           │
│  → eID proxy: зөвшөөрөгдсөн eID үйлчилгээг бүртгэлтэй апп руу дамжуулна  │
├──────────────────────────────────────────────────────────────────────────┤
│  ДАВХАРГА 1 — IDENTITY / PKI ЦӨМ                                         │
│  eID Mongolia (eid-platform-mn)                                          │
│  server (Go) · web · admin · iOS SDK · Android SDK · macOS/Windows       │
│  2-of-2 threshold ECDSA · dual key / dual cert (PIN1 auth / PIN2 sign)   │
│  CA · OCSP · CRL · TSA                                                   │
├──────────────────────────────────────────────────────────────────────────┤
│  ДАВХАРГА 0 — ӨГӨГДӨЛ СОЛИЛЦОО                                           │
│  X-Road instance MN — central server, security server-үүд                │
│  Хажуугийн үйлчилгээ: xyp.gerege.mn (ААН лавлагаа)                       │
└──────────────────────────────────────────────────────────────────────────┘

Давхарга 0 — Өгөгдөл солилцоо

Юу вэ: Байгууллага хоорондын өгөгдөл солилцооны стандартчилсан суваг — X-Road (instance MN).

Үүрэг: Гишүүн байгууллагууд бие биенийхээ үйлчилгээг баталгаажсан, гарын үсэгтэй, тэмдэглэгдсэн байдлаар дуудна. Security server бүр өөрийн гишүүнийг төлөөлж, central server нь итгэлцлийн жагсаалтыг (globalconf) гарын үсэглэн тараана.

Онцлог холбоос: eID Mongolia нь X-Road-ийн CA үүрэг гүйцэтгэдэг — өөрөөр хэлбэл Давхарга 1 нь Давхарга 0-д итгэлцлийн үндсийг өгдөг.

Төлөв: Хагас Central server ба эхний security server-үүд босч, топологи тодорхойлогдсон; өргөн хэрэглээнд нэвтрүүлэлт үргэлжилж байна.

Давхарга 1 — Identity / PKI цөм

Юу вэ: eID Mongolia — үндэсний eID платформ (Smart-ID / eIDAS маягийн).

Үүрэг: Иргэн, байгууллагыг таних, нэвтрүүлэх, хууль зүйн хүчинтэй гарын үсэг зуруулах. Мөн гэрчилгээний бүх амьдралын мөчлөг: олголт (CA), хүчинтэй эсэхийг шалгах (OCSP/CRL), цагийн тэмдэг (TSA).

Гол шийдлүүд:

  • 2-of-2 threshold ECDSA — гарын үсгийн хувийн түлхүүр нэг ч талд бүрэн оршдоггүй.
  • Давхар түлхүүр / давхар гэрчилгээ — PIN1 → нэвтрэлт, PIN2 → гарын үсэг.
  • Таних дугаар нь civil_id; ETSI ID нь хувь хүнд PNOMN-<civil_id>, байгууллагад NTRMN-<...>.
  • KYC — DAN-аар, амьд байдлын шалгалт нүүр таниулгаар.

Хэн хэрэглэдэг: Давхарга 2 (SSO) шууд; Давхарга 3–4 нь SSO-гоор дамжуулан.

Төлөв: Production

Давхарга 2 — Танилт / SSO

Юу вэ: OAuth2/OIDC provider-ууд — Gerege SSO (sso.gerege.mn) ба Government SSO (sso.dgov.mn), тэдгээрийн хажуугийн үйлчилгээ DAN Gateway ба G-Sign.

Үүрэг — гурван зүйл:

  1. Identity provider — RP-ууд Sign in with Gerege хийж чадна. Authorization code
  2. PKCE (S256), rotating refresh token (reuse detection), client_credentials.
  3. eID proxy — зөвшөөрөгдсөн eID үйлчилгээг зөвхөн бүртгэлтэй апп руу дамжуулна. Апп eID рүү шууд хандахгүй.
  4. Апп бүртгэлийн цорын ганц газар — OAuth client, client secret зөвхөн энд үүсдэг, энд амьдардаг.

Hydra-гүй

Өмнө нь Ory Hydra ашиглаж байсныг өөрийн Go код болгож бичсэн. Тусдаа байсан Hydra DB нь үндсэн DB-тэй нэгтгэгдсэн. Үүний үр дүнд гадаад хамаарал, migration цогцолбор, ажиллуулах өртөг гурвуулаа буурсан.

Төлөв: Production

Давхарга 3 — Платформын суурь

Энэ давхарга хоёр үетэй. Хоёулаа production-д ажиллаж байгаа бөгөөд шилжилт явагдаж байна.

2-р үе — Gerege Nexus Production

Юу вэ: Модульт монолит платформ — бизнес модулиуд Go-ийн Module контрактыг хэрэгжүүлж нэг бинарид компиллогдоно; тенант бүрт аль апп идэвхтэйг PostgreSQL дээрх апп стор (app_installations) шийднэ.

Юу нь өөрчлөгдөв: 1-р үед шинэ бүтээгдэхүүн гэдэг нь template-ээс fork байв. Nexus дээр шинэ бүтээгдэхүүн гэдэг нь ихэвчлэн шинэ модуль — эсвэл брэндийн хувьд upstream-ээс салаалсан fork, тэр нь upstream-ээс merge-ээр шинэчлэгдэнэ.

1-р үе (Template) 2-р үе (Nexus)
Шинэ бүтээгдэхүүн Template-ээс fork Модуль бичих, эсвэл брэндийн fork
Хуваарилалт Репо тус бүрд deployment Тенант бүрт апп стороор
Кодын урсгал open-gerege-core · @gerege/ui-core багц Upstream → fork-ууд merge хийнэ
Модуль хоорондын дуудлага HTTP Процесс доторх Go дуудлага

Одоогийн салаанууд: nexus.gerege.mn (upstream, лавлагаа deployment) · eduge.mn (боловсролын салбар) · Gerege SSO (нэвтрэлтийн давхаргад төвлөрсөн, домэйн хараахан гараагүй).

Бэлэн 8 модуль: Contacts · Products · Inventory · Billing & e-Barimt · Digital Documents · Developer Portal · PDF E-Sign (eID PIN2) · Төрийн үйлчилгээ (тохируулгатай урсгал, шатлал, SLA).

Nexus нь Давхарга 2-ыг орлохгүй

Nexus дотор өөрийн OAuth2/OIDC provider байдаг ч тэр нь тухайн deployment-ийн өөрийн тенантууд ба гуравдагч client-үүдэд зориулагдсан. Экосистемийн хэмжээнд иргэнийг таних цорын ганц зам нь Давхарга 2 хэвээр — Nexus ч eID рүү шууд ханддаггүй.

1-р үе — Template Platform Production

Юу вэ: Template Platform — цахим үйлчилгээг бүтээх production-д бэлэн суурь; мөн Gerege Platform нь өөрөө SSO provider болж чаддаг өргөтгөсөн хувилбар.

Үүрэг: Шинэ үйлчилгээ эхлүүлэхэд дараах зүйлс эхний өдрөөс бэлэн ирнэ:

  • eID + Google танилт, session (JWT access + refresh rotation),
  • байгууллага ба гишүүнчлэл, RLS-ээр хамгаалагдсан,
  • RBAC (superadmin → admin → manager → user), audit log,
  • API gateway (services / routes / consumers / API key / policy + телеметр),
  • AI pipeline (Gemini) — чат, STT/TTS, орчуулга, мэдлэгийн сан,
  • аюулгүй байдлын хатуу суурь (CSP/HSTS, CORS allow-list, rate limit, RLS),
  • observability (OpenTelemetry + Prometheus + структурт лог).

Төлөв: Production

Давхарга 4 — Салбар продукт

Юу вэ: Template-ээс салбарласан бодит бүтээгдэхүүнүүд.

Продукт Зориулалт Төлөв
Developer Portal API каталог, апп бүртгэлийн гарц Production
Gerege Wallet Иргэний цахим түрийвч Хагас
Gerege Kiosk Өөрөө үйлчлэх терминалын платформ Production
Ring System Төрийн үйлчилгээний процессын дахин инженерчлэл Хагас
«Хурдан» платформ Үйлчилгээ хүргэх ба хяналт Production

Ring ба Хурдан нь төрийн шугам дээр ажилладаг.

Хамаарлын дүрэм

Экосистемийн бүх код дараах хамаарлын чиглэлийг сахина:

graph TD
    L4["Давхарга 4 — Салбар продукт"] --> L3["Давхарга 3 — Платформын суурь"]
    L3 --> L2["Давхарга 2 — SSO / OIDC"]
    L2 --> L1["Давхарга 1 — eID / PKI"]
    L2 -.->|"лавлагаа"| L0["Давхарга 0 — X-Road"]
    L1 -.->|"CA үүрэг"| L0

Дүрэм: Давхарга дамжиж шууд хандахгүй. Жишээ нь Давхарга 4-ийн апп нь eID рүү шууд хандахгүй — заавал SSO-гоор дамжина. Энэ нь credential-ийг нэг газар барих, аудитын мөрийг тасалдуулахгүй байх хоёуланг хангадаг.

Цорын ганц зөвшөөрөгдсөн «доогуур» холбоос нь eID → X-Road CA үүрэг, энэ нь итгэлцлийн үндэс тул давхаргын дүрмээс чөлөөлөгдөнө.