Иргэний PKI самбар — RP-facing endpoint-ууд (Go-only extension)¶
Огноо: 2026-07-04. Хүсэлт: template.gerege.mn/docs/EID_ENDPOINT_REQUESTS.md §B.
Иргэн өөрийн PKI-г RP (жишээ нь template.gerege.mn "Миний систем")-ийн самбараар харах:
гэрчилгээ + тоолол, RP-scoped үйл ажиллагааны түүх/тоо, холбоотой төхөөрөмж, dashboard тоо.
Нууцлал — зөвхөн тусгайлан зөвшөөрсөн RP¶
Эдгээр endpoint нь иргэний PII буцаадаг тул бүх RP-д НЭЭЛТТЭЙ БИШ. Дуудагч RP-д
PKI_READ эрх байх ёстой — админ RP бүрд тухайлан олгоно (admin консол → Холбогдогч
тал (RP) → RP засах → "PKI_READ" checkbox). Эрхгүй RP → 403.
first-party(операторын өөрийн web/admin demo) ба dev ("") — үргэлж зөвшөөрөгдөнө.- Activity нь RP-scoped: RP зөвхөн ӨӨРИЙН үүсгэсэн session-уудыг хардаг (бусад RP-ийн нэвтрэлт/гарын үсэг задрахгүй).
Танилт: v3-ийн адил Authorization: Bearer <rp_sk_…>.
Endpoint-ууд (бүгд PKI_READ эрх шаардана)¶
GET /v3/certificates/etsi/{personEtsi}¶
Иргэний бүх гэрчилгээ + статусын тоолол.
{
"personEtsi": "PNOMN-...",
"counts": { "valid": 2, "revoked": 1, "expired": 0, "suspended": 1, "total": 4 },
"certificates": [
{ "documentNumber":"…", "type":"AUTH|SIGN|SEAL", "serialNumber":"…",
"certificateLevel":"ADVANCED|QUALIFIED|QSCD",
"status":"VALID|REVOKED|EXPIRED|SUSPENDED",
"notBefore":"RFC3339", "notAfter":"RFC3339", "issuerDn":"…" }
]
}
GET /v3/devices/etsi/{personEtsi}¶
Иргэний холбоотой төхөөрөмж (идэвхтэй + идэвхгүй).
{
"personEtsi":"PNOMN-...", "activeCount":1, "total":2,
"devices":[ { "documentNumber":"…", "platform":"APNS|FCM",
"enrolledAt":"RFC3339", "active":true, "deactivatedAt":null } ]
}
GET /v3/rp/activity/etsi/{personEtsi} — RP-scoped¶
Зөвхөн дуудагч RP-ийн үүсгэсэн session-уудын түүх + тоолол.
Query: ?flow=AUTHENTICATION|SIGNATURE&limit=20&offset=0
{
"personEtsi":"PNOMN-...",
"counts": { "authentication": 42, "signature": 7 },
"sessions": [ { "sessionId":"…", "flow":"AUTHENTICATION", "outcome":"OK",
"docText":"…", "timestamp":"RFC3339" } ],
"total": 49, "limit": 20, "offset": 0
}
audit_events (SESSION_AUTH/SESSION_SIGN, restart-д хадгалагдана). RP-scoping нь
audit detail-ийн crp (creator RP UUID)-ээр шүүгдэнэ.
GET /v3/person/summary/etsi/{personEtsi} — dashboard тоо¶
Самбарын нэгдсэн тоонууд (нэг дуудлагаар).
{
"personEtsi":"PNOMN-...", "givenName":"…", "surname":"…",
"certificates": { "valid":2, "revoked":1, "expired":0, "suspended":1, "total":4 },
"activity": { "authentication":42, "signature":7 },
"devicesActive":1, "devicesTotal":2,
"representationCount":1
}
Well-known¶
GET /.well-known/eid → endpoints.person.{certificates,devices,activity,summary} (PKI_READ тэмдэгттэй).
Хэрэгжилт¶
- Service:
service.PersonPKIService(server/internal/service/memory/person.go). - Handlers:
server/internal/httpapi/handlers_person.go(rpAuth +requirePKIReadgate). - Эрх: RP.Permissions CSV-д
PKI_READ(admin консолын RP form-д checkbox). - Байгаа иргэн биш → 404; эрхгүй RP → 403; Bearer-гүй → 401 (RequireRPAuth).