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

eID Gerege — Relying Party (RP) интеграц

3 дагч талын систем (банк, үйлчилгээ)-ийг eID Gerege-тэй холбож гар утсаар нэвтрэлт ба qualified цахим гарын үсэг авах гарын авлага. Wire protocol нь Smart-ID-тэй нийцтэй.

Discovery: GET https://rp-api.eidmongolia.mn/.well-known/eid — endpoint/чадвар/PKI-г машин уншихуйц JSON-оор буцаана.

1. Бүртгүүлэх

RP-г оператор урьдчилан бүртгэнэ. Дараахыг өгнө: - relyingPartyUUID — тогтвортой UUID (та өгөх эсвэл оператор гаргана) - relyingPartyName — харагдах нэр - mTLS client-cert subject — production-д RP-API руу TLS client cert-ээр холбогдоно; cert-ийн subject DN нь бүртгэлтэй таарна - permissions — зөвшөөрөгдсөн үйлдлүүд (authentication / signature)

Оператор: POST /v3/admin/relying-parties (admin-only).

2. Холбогдох

  • Суурь: https://rp-api.eidmongolia.mn/v3
  • Auth (prod): Authorization: Bearer <api_secret> (SHA-256 hash-аар RP resolve) эсвэл mTLS client certificate (subject нь бүртгэлтэй RP-тэй таарна) + body-д relyingPartyUUID/relyingPartyName. Нэмэлт: IP allowlist (allowed_ips).
  • Хүсэлт бүрийн body: relyingPartyUUID, relyingPartyName, certificateLevel (QUALIFIED|ADVANCED|QSCD), signatureProtocol (ACSP_V2), interactions.

3. Нэвтрэлт (Authentication)

Endpoint Зориулалт
POST /v3/authentication/device-link/anonymous QR/Web2App — иргэнийг урьдчилан мэдэхгүй
POST /v3/authentication/notification/etsi/{semanticsIdentifier} Push — PNOMN-<civilId>
POST /v3/authentication/notification/document/{documentNumber} Push — төхөөрөмжийн UUID

Хариу (notification): { sessionID, vc: { value }, ... }. vc.value нь иргэнд харагдах баталгаажуулах код. device-link/anonymous-д нэмж sessionToken, sessionSecret, deviceLinkBase буцах ба тэнд vc нь энгийн мөр (жишээ: RP_GEREGE_INTEGRATION.md §1.1).

4. Гарын үсэг (Signature)

Endpoint Зориулалт
POST /v3/signature/certificate/{documentNumber} Гарын үсэг зурахын өмнөх сертификат сонголт
POST /v3/signature/notification/document/{documentNumber} Push — баримтын digest (SHA-256, base64) зурна
POST /v3/signature/notification/etsi/{semanticsIdentifier} Push — PNOMN-<civilId>-ээр

Sign body-д нэмж: digest (base64), hashType (SHA256|SHA384|SHA512).

5. Session-ийг poll хийх (long-poll)

GET /v3/session/{sessionId}?timeoutMs=120000
- RUNNING — үргэлжилж байна - COMPLETE + result.endResult=OKsignature.value (detached гарын үсэг), cert.value (X.509) - COMPLETE + бусад endResult (USER_REFUSED, TIMEOUT, …) → татгалзсан

6. PKI (баталгаажуулалт)

  • OCSP: discovery doc-ийн endpoints.ocsp
  • CRL: discovery doc-ийн endpoints.crl
  • Гаргасан сертификат нь eID Gerege root CA-аас гинжлэгдэнэ.

7. Иргэнийг таних дугаарууд

Талбар Жишээ
semanticsIdentifier PNOMN-111949212017 (хувь хүн), NTRMN-1234567 (байгууллага)
documentNumber enrollment-д буцаасан UUID
registrationNumber Монгол РД (МА74101813) — push lookup-д resolve
civilId Иргэний үнэмлэхний дугаар

Жишээ RP client: web/src/lib/rpclient.ts (ажиллаж буй TypeScript хэрэгжүүлэлт).