课程概要:
- API网关接口实现
- 接口安全的业务需求
- 基于API网关实现安全机制
1 API网关接口实现
1.1 API网关概念
API网关是一个轻量的 java http 接口组件,可以无缝的将普通的 Serive 方法转换成 http 接口,并从以下几点来达到提高开发效率与保证接口质量的目的。
1.去掉mvc控制器,将http请求直接无缝接入Java 服务接口
2.统一出/入参格式
3.统一异常规范
4.自动检测服务接口规范
1.2 API网关与普通Http接口实现流程对比
普通 Http 接口实现流程
API网关接口实现流程
1.3 网关实现流程与技术
详细流程图如下:
请求参数:
String method; // f方法名称
json parameter; // 业务参数
long timestamp; // 请求时间戳
实现技术:
1.java servlet
2.spring IOC
3.Json 转换工具的使用
2 接口安全的业务需求
2.1 接口安全级别分组
1.白名单组
2.黑名单组
3.黑白名单组
2.2 基于Token安全机制认证需求
1.登陆鉴权
2.防止业务参数串改
3.保护用户敏感信息
4.防签名伪造
2.3 Token 认证机制整体架构
整体架构分为Token生成与认证两部分:
Token生成指在登陆成功之后生成 Token 和密钥,并其与用户隐私信息、客户端信息一起存储至Token表,同时返回Token 与Secret 至客户端。
Token认证指客户端请求黑名单接口时,认证中心基于Token生成签名
签名规则:
1.已指定顺序拼接字符串 secret+method+param+token+timestamp+secret
2.使用MD5进行加密,在转化成大写
签名的目的:
1.防窜改
2.防伪造
3.防重复使用签名
服务端签名验证的具体流程:
3 基于API网关实现安全机制
签名认证与API网关的整体认证流程如下:
主要包括两个流程:
1、Token生成
登录成功后插,生成token与secret 保存至数据库。具体实现忽略
2、Token 认证相关解决方案:
1.接口如何标识黑白名单?
2.签名具体验证流程?
3.用户ID等信息如何传递给业务实现接口?