文档、签名与文件¶
柜台后面发生的一切都应留下无法抵赖的痕迹。本节涵盖具有法律效力的签名、签名中使用的个人素材,以及文件的存储与集成。
电子签名(PAdES)¶
服务端 PDF 签名通过 eID Mongolia /v3 接口完成,共有两种形态:
| 形态 | 端点 | 用途 |
|---|---|---|
| 无文档(摘要) | POST /api/v1/sign/initiate → GET /api/v1/sign/status/{sid} |
仅对 SHA-256 摘要签名——转账与交易 |
| PDF(PAdES) | POST /api/v1/sign/init → GET /api/v1/sign/{id} → GET /api/v1/sign/{id}/download |
合同、授权书、正式文件 |
两者都要求公民已登录。流程是异步的:init 建立会话,轮询在公民于 eID 应用中确认前一直返回等待状态,随后 download 返回已签名的 PDF。
UI:/me/eid/sign。
签名中继——面向第三方 RP¶
eID Mongolia 的 /v3 会以 401 拒绝没有凭据的调用。因此,持有凭据的平台站在前面充当反向代理:
这样第三方应用无需自行持有 eID RP 凭据即可获得签名。访问由 svc:eid-sign 授权控制——参见 API 网关。
端口
在本仓库的 compose 栈中,api 监听在回环地址 127.0.0.1:8091,以便 nginx 将
/rp/sign 代理过去。应用的其余流量一律经由 web BFF。
个人素材¶
签名中使用的图片、姓名与印章由用户自行维护(/api/v1/me/*,写操作受 govWrite 限流器约束):
| 方法 | 路径 | 说明 |
|---|---|---|
GET PUT DELETE |
/api/v1/me/signature |
签名图片 |
PUT |
/api/v1/me/latin-name |
拉丁文姓名(用于国际文件) |
PUT |
/api/v1/me/org-name-latin/{regNo} |
机构的拉丁文名称 |
GET PUT DELETE |
/api/v1/me/orgstamp/{regNo} |
机构印章 |
在非西里尔字母的界面语言(en、zh)中优先显示拉丁文姓名;俄语属西里尔字母,因此保留蒙古文字形的姓名。
UI:/me/profile。
Gerege Space——平台自有存储¶
基于平台自有 SFTP 的存储。每位用户分配配额,文件存放在 BASE_PATH/users/<userID>/ 之下。
| 方法 | 路径 | 说明 |
|---|---|---|
GET |
/api/v1/gspace |
文件列表 + 用量/配额 |
POST |
/api/v1/gspace/upload |
上传(超配额则拒绝) |
GET |
/api/v1/gspace/download |
下载 |
DELETE |
/api/v1/gspace |
删除 |
- 默认配额 2 MB(
GSPACE_QUOTA_BYTES)。 GSPACE_HOST为空时该能力关闭,UI 卡片会相应处理。
主机密钥为必填
GSPACE_HOST_KEY 是 SFTP 主机的公钥。生产环境必须配置——否则 SFTP 连接会
fail-closed 直接报错。开发环境下留空则不做校验(存在中间人风险,仅限本地)。
第三方集成¶
用户可将自己的账号与第三方服务绑定。OAuth 令牌在存储层以 AES-256-GCM 加密保存;领域层只负责传递数值。
| 提供方 | 能做什么 |
|---|---|
google-drive |
列出、预览与上传文件 |
dropbox |
列出、预览与上传文件 |
google-meet |
创建会议空间 |
google-login |
账号绑定(属于身份认证部分) |
核心端点:
| 方法 | 路径 | 说明 |
|---|---|---|
GET |
/api/v1/integrations |
已连接的提供方 |
POST |
/api/v1/integrations |
连接(OAuth 回调之后) |
GET |
/api/v1/integrations/{provider}/token |
提供方令牌(服务端) |
DELETE |
/api/v1/integrations/{provider} |
断开连接 |
BFF 在其之上补充了各提供方的业务端点——例如
/api/integrations/google-drive/files、/api/integrations/dropbox/upload、
/api/integrations/google-meet/create-space 等。
INTEGRATION_ENC_KEY
加密上述令牌的密钥。切勿轮换——超级管理员 MFA 的 TOTP 密钥以及所有集成令牌都用它加密,一旦更换全部失效。
UI:/me/integrations。