-
为什么要接口(API)鉴权?
如果把API接口直接暴露在互联网上是存在安全风险的,所以我们需要对API进行权限划分,对接口调用方做一个用户鉴权,如果鉴权通过则允许此用户进行API调用,反之则拒绝。根据不同的业务场景,接口鉴权方案也有很多种。
-
Cookie + Session机制实现Web API的鉴权
2、优点技术实现方便。3、缺点弊端
- 不适合分布式应用,跨平台性差
- Cookie传输会影响通信性能
- HTTP协议本身是无状态的,而Cookie+Session机制硬生生的给加了状态进去,不符合设计理念
存在安全风险:因为Cookie是存储在客户端的,客户端可以随意更改Cookie,存在伪造请求的风险
-
Token机制实现Web API的鉴权
Token(令牌)是用来替代Session的新兴鉴权方案,现在的Web API基本上离不开Token令牌。1、实现原理
-
Token是服务器端生成的一串加密串发放给客户端,客户端请求服务器端所有资源时会带上这个Token(通过GET/POST/Header来传递),由服务器端来校验这个Token的合法性。
image
2、优点
- 真正的无状态,适合分布式,扩展性好
- 性能高,安全性好
3、Token的实现形式 Token令牌技术是一种技术方案统称,具体的实现方案是有所差别的,最常见的Token种类有以下几种:
- 自定义实现Token:应用开发者根据Token机制原理自行实现
- JWT:Json Web Token,是一种主流的Token规范
- Oauth:Oauth本质上是授权规范,其中也用到了Token
- HTTP Basic Authentication认证机制
- Web API是基于HTTP协议的,而HTTP协议本身就带有认证机制。
HTTP协议的认证机制主要有两种:
-
基本认证
-
摘要认证
image
但是这种机制日常很少使用,因为HTTP协议在传输数据过程中是明文传输的,所以这种认证机制本身就存在安全风险,除非配合HTTPS来实现。
网友评论