随着信息化进程的加快,现在的网站和APP应用很常见,对于普通用户而言我们只能看到表现层(界面视图层),而内部的的数据交互及处理靠的是一个个API来实现的。所谓的API是指应用程序接口,也就是将特定的业务功能封装起来供第三方调用,现在的API有很多种形式,而WebAPI是最常见和便捷的。
既然API是提供给第三方调用的,这就存在一个问题:很多时候我们希望API只能由自家的产品去调用,防止他人调用,这该如何实现呢?这就得靠接口鉴权了。
什么是接口(API)鉴权?
正如上面所说,如果把API接口直接暴露在互联网上是存在安全风险的,所以我们需要对API进行权限划分,对接口调用方做一个用户鉴权,如果鉴权通过则允许此用户进行API调用,反之则拒绝。
根据不同的业务场景,接口鉴权方案也有很多种,下面详细给大家介绍。
Cookie+Session机制实现WebAPI的鉴权
这种机制是最为传统的,特别是在网站中的登录模块靠的就是Cookie+Session来实现会话管理的。
1、实现原理
后台为了标识请求是哪个客户端发现的,会在服务端生成一个Session来保存会话状态,各个Session是靠具有唯一性的SessionID来标识的,SessionID存储在客户端的Cookie中;后续所有请求都会把Cookie传到服务器端,服务器端解析Cookie后找到对应的Session进行判断。
2、优点
技术实现方便。
3、缺点弊端
不适合分布式应用,跨平台性差
Cookie传输会影响通信性能
HTTP协议本身是无状态的,而Cookie+Session机制硬生生的给加了状态进去,不符合设计理念
存在安全风险:因为Cookie是存储在客户端的,客户端可以随意更改Cookie,存在伪造请求的风险
Token机制实现WebAPI的鉴权
Token(令牌)是用来替代Session的新兴鉴权方案,现在的WebAPI基本上离不开Token令牌。
1、实现原理
Token是服务器端生成的一串加密串发放给客户端,客户端请求服务器端所有资源时会带上这个Token(通过GET/POST/Header来传递),由服务器端来校验这个Token的合法性。
2、优点
真正的无状态,适合分布式,扩展性好
性能高,安全性好
3、Token的实现形式
Token令牌技术是一种技术方案统称,具体的实现方案是有所差别的,最常见的Token种类有以下几种:
自定义实现Token:应用开发者根据Token机制原理自行实现
JWT:JsonWebToken,是一种主流的Token规范
Oauth:Oauth本质上是授权规范,其中也用到了Token
HTTPBasicAuthentication认证机制
WebAPI是基于HTTP协议的,而HTTP协议本身就带有认证机制。
HTTP协议的认证机制主要有两种:
基本认证
摘要认证
但是这种机制日常很少使用,因为HTTP协议在传输数据过程中是明文传输的,所以这种认证机制本身就存在安全风险,除非配合HTTPS来实现。
本文仅代表作者观点,版权归属原创作者,如需转载请在文中标注来源及作则名字。
免责声明:本文系转载编辑文章,仅做分享只用,如有疑问请联系邮箱:110@zbj.com
抖音APP上的推广费用要多少?
在抖音APP上的投放广告费用要多少
App数据分析到底要分析什么?
开发app项目负责人的要求?
开发一套app要多少钱做个简单app需要多少钱
如何快速的推广APP,打开渠道?
想做app,要怎样找外包公司
开发一个类似于美团的外卖app需要多少钱
抖音转转app广告词是什么?
App出海,海外媒体投放平台怎么选?
做一个APP需要什么样的服务器?
开发AndroidAPP使用的是什么语言?
app设计的原则及注意事项?
如何在百度百科上成功创建APP的词条?
开发一个简单的APP要多少钱?
开发手机APP所需要的编程语言?
如何开发一款理想的购物商城APP
一个app的开发团队需要哪些人员?
如何通过地推活动来巧妙推广App
农村农民使用的APP如何推广?