ЦЗ Цахим Засаг
GitHub Нэвтрэх

Платформын чадвар

Энэ хуудас нь хоёр байрлуулалт хоёулаа юуг үнэгүй авдаг вэ гэдгийг жагсаана. Доорх бүх зүйл Gerege Nexus цөмийнх — dgov.mn доор нэг ч мөр нь хуулагдаагүй, нэг ч мөр нь дахин бичигдээгүй. Байрлуулалт бүр цөмөөс юуг нэмж байгаагаараа ялгагдана (Архитектур).

Цөмийн хувилбар өнөөдөр backend/v1.9.1. Тэр тоо хоёр газарт бичигдэнэ: sso-dgov-mn-ийн go.mod болон open-dgov-mn-ийнх.


1. Танилт — хүн хэн болохоо хэрхэн батлах

Арга Хаана Тайлбар
Үндэсний E-ID POST /api/v1/auth/eid/login Тоон гарын үсэг (PKI), Mobile OTP, банкны суваг, царай танилт. Гэрчилгээний түвшин тохируулагдана — dgov.mn дээр нэвтрэлт ADVANCED, гарын үсэг QUALIFIED
ДАН POST /api/v1/auth/dan/login Төрийн нэгдсэн гарц
И-мэйл + нууц үг POST /api/v1/auth/login Argon2id hash. sso.dgov.mn дээр асаалттай, open.dgov.mn дээр унтраалттай
Өөр суулгацын SSO /api/v1/auth/sso/* Энэ платформ өөрөө OIDC клиент болж чадна — open.dgov.mn яг үүнийг хийдэг
Google GOOGLE_LOGIN_CLIENT_ID Тохируулаагүй бол товч нь огт харагдахгүй. dgov.mn дээр тохируулаагүй

Session токен нь өгөгдлийн санд зөвхөн hash хэлбэрээр хадгалагдана: санг уншсан хүн сесс хулгайлж чадахгүй. Токен нь HttpOnly cookie эсвэл Authorization: Bearer толгойгоор дамжина.

E-ID / ДАН / ХУР-ын mock горим ENVIRONMENT=production үед автоматаар унтарна — хуурамч иргэний мэдээллээр нэвтрэх зам production дээр байхгүй.

2. Эрх — хэн юуг хийж болох

3. Апп стор — код байх нь суусан гэсэн үг биш

Модулиуд нэг Go бинарид компиллогдоно, харин аль тенантад аль нь идэвхтэй болохыг өгөгдлийн сан шийднэ (app_installations). Суулгаагүй апп руу хандвал 403 буцна — код нь байгаа ч хаалга нь хаалттай.

POST /api/v1/store/apps/{slug}/install     суулгах (админ)
GET  /api/v1/store/apps                     каталог
GET  /api/v1/menus                          тенантад идэвхтэй цэсүүд

4. OAuth2 / OpenID Connect провайдер

sso.dgov.mn энэ чадварын дээр баригдсан (дэлгэрэнгүй).

GET  /.well-known/openid-configuration      discovery
GET  /.well-known/jwks.json                 гарын үсгийн нийтийн түлхүүр
GET  /oauth2/auth                           authorization endpoint
POST /oauth2/token                          токен (code, refresh, client_credentials)
POST /oauth2/introspect                     токен идэвхтэй эсэх
POST /oauth2/revoke                         токен цуцлах
GET  /oauth2/userinfo                       нэвтэрсэн хүний claim-ууд
GET  /oauth2/logout                         RP-initiated logout
Scope Юу нээх
openid Хэн болохыг баталгаажуулна
profile Нэр, бүртгэлийн мэдээлэл
email И-мэйл хаяг
phone Утасны дугаар
offline_access Refresh токен — та байхгүй үед ч холболт хадгалагдана
erp.read / erp.write Байгууллагын ERP өгөгдөл (эмзэг)

5. Төрийн дэд бүтэц

6. Баримт бичиг ба гарын үсэг

7. Тайлан ба аналитик

8. Найдвартай ажиллагаа

Механизм Юу хийдэг
Circuit breaker Google SRE загварын дасан зохицох таслуур
Load shedder Ачаалал хэтэрсэн үед 503 + Retry-After
Singleflight Давхардсан хүсэлтийг нэгтгэж, кэшийн ачааллыг бууруулна
Retry Экспоненциал ухралт
/health, /ready Амьд ба бэлэн байдал — deploy скрипт хоёуланг шалгана
/metrics Prometheus хэмжүүрүүд

Аудит. Хэн юуг хэзээ өөрчилснийг эхний өдрөөс бичнэ. Сесс таслалт бүр хэн тасалсан, яагаад гэдгээ үлдээнэ.

Хурдны хязгаарлалт. nginx дээр нэвтрэлтэд 5r/m, OAuth солилцоонд 30r/m; цөм өөрөө TRUST_PROXY_HEADERS асаалттай үед бодит IP-г уншина — эс тэгвэл хүн бүр nginx мэт харагдана.

9. Хэл — монгол хэл эх сурвалж

Монгол хэл + НҮБ-ын албан ёсны 6 хэл (араб, хятад, англи, франц, орос, испани). Програм хангамж монгол, англи хоёроор ирж, үлдсэнийг нь Тохиргоо → Харагдац дотроос асаана. Орчуулга дутуу үлдсэн түлхүүр дээр CI унана.

Байрлуулалт өөрийн үгсээ BRAND_COPY_FILE-аар дарж бичнэ — landing page-ийн өгүүлбэрүүд, мөн өөрийн нэр нь хэл тус бүрээр:

{
  "brand.name":        { "mn": "Засгийн газрын нэгдсэн нэвтрэлт",
                         "en": "Government Single Sign-On" },
  "brand.short_name":  { "mn": "Нэгдсэн нэвтрэлт", "en": "Single Sign-On" },
  "brand.description": { "mn": "…", "en": "…" }
}

Бичээгүй хэл нь BRAND_NAME-ийн утгыг уншина. Хэлний сонголт хөтчийн localStorage ба cookie хоёуланд бичигддэг: сүүлийнх нь табын гарчиг, тайлбар, launcher-ийн нэрийг зөв хэлээр гаргахын тулд — тэдгээр нь серверт үүсдэг тул localStorage хүрдэггүй.

10. Бүрхүүл ба клиентүүд

11. Юу энд байхгүй вэ

Цөм нь илүү олон апп агуулдаг — харилцагч, бараа, агуулах, нэхэмжлэх, POS — гэвч тэдгээр нь бизнесийн distribution-ы сэдэв (business-gerege-nexus). dgov.mn доорх хоёр суулгац тэднийг каталогтоо ч оруулаагүй: суулгацын каталог нь «энэ бүтээгдэхүүн юуны тухай вэ» гэсэн мэдэгдэл бөгөөд төрийн нэвтрэлтийн систем дээр бараа материалын апп санал болгох нь тэр мэдэгдлийг худал болгоно.


Дараагийн хуудас: sso.dgov.mn — нэвтрэлтийн бүтээгдэхүүн юу нэмдэг вэ · open.dgov.mn — төрийн орчин юу нэмдэг вэ