2. 系统架构概览:追溯平台整体架构、第三方认证系统角色、证书管理接口在集成中的位置
在开始编码之前,必须先理解两个核心系统——追溯平台与第三方认证系统——的架构边界,以及证书管理接口在整个集成链路中的锚点位置。本章从三个层次展开:追溯平台的整体分层架构、第三方认证系统的角色模型、证书接口的集成位置与数据流向。
2.1 追溯平台整体架构(分层视图)
追溯平台采用经典的四层企业级架构,从上至下依次为:接入层、业务服务层、核心数据层和基础设施层。证书管理接口横跨接入层与业务服务层,是平台对外提供认证能力的关键通道。
架构要点:证书管理接口并非孤立模块,它同时依赖业务服务层的“证书服务”和核心数据层的“证书存储”,并与第三方认证系统形成双向数据交换。
2.2 第三方认证系统的角色模型
第三方认证系统在集成中承担三个核心角色:证书颁发机构(CA)、身份验证服务(IdP)和证书状态查询服务(OCSP/CRL)。下表对比了各角色的职责与接口交互方式:
| 角色 | 职责描述 | 与追溯平台的交互接口 | 数据方向 |
|---|---|---|---|
| CA(证书颁发机构) | 签发数字证书、维护证书生命周期 | 证书申请接口(CSR提交) | 追溯平台 → 第三方 |
| IdP(身份提供者) | 验证用户/设备身份,返回认证断言 | OAuth2 / OIDC 令牌端点 | 双向 |
| OCSP/CRL 服务 | 实时查询证书是否被吊销 | OCSP 请求 / CRL 下载 | 追溯平台 → 第三方 |
设计决策:本课程中,第三方认证系统采用“统一网关”模式对外暴露服务,追溯平台只需与网关交互,无需直接对接 CA 内部集群。这降低了集成复杂度,也便于后续切换认证供应商。
2.3 证书管理接口在集成中的位置
证书管理接口位于追溯平台业务服务层的“证书服务”模块中,是连接平台内部业务与第三方认证系统的唯一认证数据通道。其核心职责包括:
- 证书申请与签发:接收平台内部业务请求,组装 CSR,调用第三方 CA 接口获取证书。
- 证书验证与状态同步:定期或按需查询第三方 OCSP 服务,更新本地证书状态。
- 证书吊销与 CRL 同步:当平台侧触发吊销事件时,向第三方发送吊销请求,并同步吊销列表。
- 证书链管理:维护从根 CA 到终端证书的完整链,支持双向 TLS 握手。
2.4 集成数据流全景
一次完整的证书申请与验证流程,涉及以下关键步骤:
- 业务触发:追溯平台内部业务服务(如产品批次注册)向证书管理接口发起证书申请请求。
- CSR 组装:证书管理接口根据业务参数组装证书签名请求(CSR),包含公钥、组织信息、有效期等。
- 第三方签发:接口将 CSR 发送至第三方 CA 服务,CA 验证身份后签发数字证书并返回。
- 本地持久化:证书管理接口将证书存入本地证书存储(MySQL),同时更新 Redis 缓存。
- 状态同步:接口定期向第三方 OCSP 服务查询证书状态,更新本地状态缓存。
- 吊销处理:当平台侧触发吊销事件时,接口向第三方发送吊销请求,并同步 CRL 到本地。
关键约束:证书管理接口必须保证与第三方认证系统的数据最终一致性。网络抖动或第三方服务不可用时,接口应具备重试机制和本地降级策略,避免阻塞核心业务链路。
2.5 接口契约概览
证书管理接口对外暴露的核心端点如下表所示,后续章节将逐一实现:
| 端点路径 | HTTP 方法 | 功能描述 | 第三方依赖 |
|---|---|---|---|
/api/v1/certificates/apply |
POST | 申请新证书 | CA 签发服务 |
/api/v1/certificates/{id}/verify |
GET | 验证证书有效性 | OCSP 服务 |
/api/v1/certificates/{id}/revoke |
POST | 吊销指定证书 | CA 吊销接口 |
/api/v1/certificates/sync-crl |
POST | 同步第三方 CRL 到本地 | CRL 发布点 |
/api/v1/certificates/chain |
GET | 获取完整证书链 | CA 证书库 |