开放平台
简述
xxx系统通过打通内部核心流程,可以衍生出一系列的能力,除了面向市场、运营、管理人员提供必要的功能外,也可以暴露一系列接口供接入商户和其自身核心系统做打通;
职责
开放平台的核心职责是提供本平台可代理的能力接口。
同时,平台需要做好相应的管控工作,包括接入方的开放备案、接入方的接口权限鉴定、接入方接口调用时的验签、接入方 ip 限定、黑白名单控制、接口流量控制等。
目标
1. 高可用、高并发、安全性;
2. 可扩展、可配置、可监控报警、可统计;
功能
网关服务
1. 网关搭建
使用微服务架构,搭建服务网关,通过注册中心找到对应的服务
1. 搭建网关工程:接入 spring-cloud 完成服务最终的转发;
2. 流量控制:网关需要支持限流处理,并提供多种策略,同时支持策略配置化;
全局接口流控;
部分命中规则的接口走相应的流控策略;
动态配置,灵活匹配;
2. 身份鉴权&接口验签
构建简易 CA 中心,颁发证书
使用 oauth 技术完成接口的身份授权和身份鉴定
1. 证书颁发:对于不同的商户颁发不同的证书,每次调用接口时需要使用该证书做请求签名;
2. oauth 接入:调用接口时需要获取动态 token,包含 oauth 的 access_token 和 refresh_token,接口调用时需要传递;
3. 接口验签:接口调用时的接口验签,验证颁发证书、动态 token 以及约定的加密方式;
3. 安全质量
组合不同的安全策略,应对安全攻击
1. IP 控制,商户接入时,需要提供常用 IP,对应非接入 IP 的请求予以拒绝;
2. 黑白名单:对于商户、IP 做黑白名单,进行紧急安全控制,可做时段控制;
3. 字段脱敏还原:为了避免抓包拿到具体发送的消息,也可以防止非平台合作方查看报文和篡改报文,加解密对服务端性能也会有影响;
4. 服务运维&数据统计
1. 监控报警:错误自动报警、慢请求自动报警;
2. 调用次数统计:可以日志接 elk 来做次数统计;
2. 人机界面
开发者界面
1. 配置基本参数:如 秘钥、调用 IP、消息加解密模式等;
2. 接口权限:开启/关闭预置的接口列表;
3. 运维中心:调用监控,调用日志查询等;
管理员界面
1. 审批中心:入驻申请审批;
2. 商户管理:开通开放平台权限的商户管理;
3. 安全控制:商户黑白名单控制、流量策略控制;
4. 运维中心:慢请求统计、请求调用次数统计;