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)¶
-RUNNING — үргэлжилж байна
- COMPLETE + result.endResult=OK → signature.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 хэрэгжүүлэлт).