Баримт ба гарын үсэг¶
Хоёр рэйл, нэг баримтын сан. internal/workspace/signing ба pkg/nexus-ийн
кодоос уншиж бичигдсэн.
Хоёр рэйл¶
| HSM | eID | |
|---|---|---|
| Юу вэ | Gerege eSign тоног төхөөрөмж | Gerege ID алсын гарын үсэг |
| Хувийн түлхүүр хаана | Сервер тал | Иргэний өөрийн төхөөрөмж |
| Иргэн юу хийх вэ | Утас + регистрээр гэрчилгээгээ нотолж, гарын үсгээ зурна | PIN2-оор зөвшөөрнө |
| Урсгал | Синхрон | Асинхрон: эхлүүлэх → код харуулах → poll → татах |
| Хуулийн хүч | Энгийн | Баталгаажсан (qualified) |
Хоёр рэйл нь хуулийн хувьд солигдож болохгүй. Зөвхөн eID нь баталгаажсан цахим гарын үсэг үүсгэдэг — тиймээс тэр нь анхдагч, мөн тиймээс байгууллага HSM-ийг гарын үсгийн бодлогоосоо бүрмөсөн унтрааж чадна.
Энэ нь апп биш¶
signing нь модуль бүртгүүлдэггүй: ID(), Menus(), Permissions() гэж
хариулдаггүй, каталогт ч манифестэд ч байхгүй. Аппын дүр төрх өгч байсан
гурван зүйл — internal/apps доорх хавтас, Module нэртэй төрөл,
RegisterRoutes нэртэй метод — нь хэрэгжүүлээгүй гэрээний гурван дуураймал
байсан.
Энэ нь documents аппын хэсэг. Эрхийн нэр нь ч тийм:
Хоёр эрхийн орон зайтай апп нь администраторыг гарын үсэг зурах эрхийг хоёр өөр газар, хоёр удаа олгохыг шаардана — тэгээд өмнөх нь дэлгэц дээрх товч аль нэгийг нь дагаж байгааг ялгах арга байхгүй.
Платформын нэгдсэн аппын хаалт эдгээрийг илэрхийлж чадахгүй — гарын үсэг зурах нь байршуулахтай ижил эрх биш — тиймээс handler бүр өөрийн эрхээ шууд шаардана.
Модульд хэрхэн харагдах вэ¶
eID бүртгэлгүй суулгац ч рэйл авна: тэр нь Enabled() false гэж хариулна —
энэ бол үнэн байдал, мөн модулийн асуух ёстой асуулт.
Обёртка байгаагийн шалтгаан: eidsign-ийн төрлүүд энд зогсоно. Өөр репод
nexus.Signer-ийн эсрэг модуль бичиж байгаа хүн энэ суулгац яг хэрхэн гарын
үсэг зурдгаас хамаарах ёсгүй.
PDF-д гарын үсэг (SignDocument)¶
eID PDF-д гарын үсэг суулгадаггүй болсон (/signature/stamp 2026-10 сард хасагдсан).
PDF eID-д очихгүй; internal/kernel/eidsign нь eID-ийн SDK-ийн pades багцаар
баримтыг өөрөө угсарна, eID зөвхөн 32 байт DTBS зурна:
SignDocument— иргэний утсанд гарын үсгийн гэрчилгээ сонгуулах хүсэлт (certificate choice, PIN-гүй). БуцахVerificationCodeнь энэ алхмынх.- Сонголт ирэхэд — тэр гэрчилгээгээр
pades.Prepare, DTBS-ийг ЯГ тэр төхөөрөмж рүү PIN2-оор. Утсан дээр PIN2-ын алхам өөрийн шинэ кодтой. - PIN2-ын дараа — гарын үсэг digest-ийн рэйлтэй ижил шалгалтаар
(
eidrp.VerifySignedDigest, DTBS-ийн эсрэг), гэрчилгээ нь сонгосонтой ижил байх. SignedDocument—pades.Complete(TSA + OCSP/CRL → PAdES-BASELINE-LT) ба eID-д бүртгэл (/verify). TSA/OCSP түр унавал алдаа; дахин дуудахад ижил гарын үсгийг PIN2-гүйгээр дуусгана.
Дуудагчид нэг session: PollSignature хоёр алхмын турш running, session id
өөрчлөгдөхгүй. Хүлээлтийн хугацааг eID-ийн session-ий expiresAt тогтооно.
Байгууллагын нэрийн өмнөөс бол eID-ийн тооцоолсон claimedRole гарын үсэгт,
onBehalfOf PIN2-ын session-д орно.
Байгууллагын нэрийн өмнөөс¶
Signer-т арга нэмээгүй, тусдаа чадвар — Signer-ийг өөрөө хэрэгжүүлсэн
distribution эвдрэхгүй. Түлхүүр нь хэвээр иргэнийх (өөрийн PIN2, хувийн
гэрчилгээ); eID ceremony эхлэхэд төлөөлөх эрхийг шалгаж, байгууллагын нэрийг
гарын үсэгт бичнэ. Энэ нь төлөөллийн бичлэг, байгууллагын тамга биш.
eID-ээс юу ч асуухаас өмнө, дарааллаар:
- Дуудагч
WorkspaceID-д идэвхтэй байна, impersonate биш, модулийнPermission-ийг эзэмшинэ → эс бөгөөсnexus.ErrForbidden(403). - Бүртгэлд холбогдсон eID байна →
nexus.ErrNoSignerIdentity. - Байгууллагын профайлд улсын бүртгэлийн дугаар байна
(
tenant_profiles.registration_number) →nexus.ErrNoOrganisationRegister. - eID-ийн
representationsжагсаалтадNTRMN-<регистр>одоо хүчинтэй байна →nexus.ErrNotRepresentative(403). eID өөрөө 403 өгвөл мөн энэ алдаа.
Дараа нь esign.org_sign_requested audit мөр, дараа нь onBehalfOf-тэй
ceremony. Буцсан session нь энгийн session: Signer.PollSignature,
SignedDocument, VerifiedDigest-д SignerRegNumber-ийг эзэн болгон өгнө.
Дууссаны дараа OrganisationSignature нь eID баталсан байгууллагын нэр,
регистр, зурсан хүн, цаг, гэрчилгээг буцаана.
documents аппын Policy.AllowOnBehalfOf энд хамаарахгүй: модулийн зам
өөрийн эрхээр (<app>.sign) хаалгатай.
Төлөвүүд¶
Баримт PENDING → SIGNED
Session pending → completed | failed | expired | rejected
Багц DRAFT → RUNNING → COMPLETED | FAILED | CANCELLED
Session-ий төлөв нь жижиг үсгээр — браузерын poll хийдэг үгсийн сан яг тийм байдаг.