Bootstrap

API接口鉴权

什么是鉴权

鉴权(authentication),鉴权是指对于一个声明者所声明的身份权利,对其所声明的真实性进行鉴别确认的过程。

鉴权主要是对声明者所声明的真实性进行校验。若从授权出发,则会更加容易理解鉴权。授权和鉴权是两个上下游相匹配的关系,先授权,后鉴权。授权和鉴权两个词中的“权”,是同一个概念,就是所委派的权利,在实现上即为授信媒介的表达形式。

因此,鉴权的实现方式是和授权方式有一一对应关系。对授权所颁发授信媒介进行解析,确认其真实性。

关于认证、授权、鉴权、权限控制

鉴权的分类

根据鉴权的作用不同,可以将鉴权分为:

用户鉴权:也可以叫做应用鉴权,是指在用户访问应用时进行的验证,防止非法用户访问系统资源,即常见的登录认证。

网络鉴权:除了对用户身份进行认证,还可以对访问用户的网络进行鉴权,以此防止用户接入非法网络后访问资源,造成数据泄露。

接口鉴权:接口鉴权是一种更细粒度的鉴权方式,用户通过用户鉴权后登录到应用中,之后对于用户请求的具体接口路径,还可以根据用户拥有的实际权限进行验证和过滤,如果鉴权失败则不可访问路径。

鉴权可以用来做什么

通过系统的鉴权功能,可以实现的内容有:

实现用户登录的功能,登录后通过获取用户对应的信息,知道当前用户是谁,属于什么角色,有什么权限。

用户完成系统的登录后需要存储登录状态,否则每次请求都要重新登录,体验太差,通过保存鉴权信息就可以实现一定时间的自动登录,轻松访问系统资源。

对于系统中不同角色的用户,还可以通过鉴权的方式验证用户拥有的权限,控制系统返回数据,这样用户就只能看到拥有权限的资源信息,保护资源的隐秘性。

接口鉴权的必要性

由于Web API接口是公开访问的,如果将API不加限制的暴露出来,会给整个服务带来极大的风险:

无数的访问造成服务器压力过大而不能正常响应,导致服务瘫痪。
访问用户不加限制,资源有泄漏风险。

常见的接口鉴权方式

了解了接口鉴权的重要性,下面就看以下有哪些方法可以实现接口鉴权:

  • Session/Cookie鉴权:浏览器和服务器存储会话的形式,传统的企业应用有所使用。
  • Token或JWT鉴权:令牌发放的形式,在当下前后端分离系统中广泛使用。
  • OAuth鉴权:即开放授权,作为一种开放标准,多用于第三方应用登录时的鉴权。
  • API 密钥鉴权:API 密钥是用于验证 API 请求的秘密令牌,API 提供者在授予对 API 资源的访问权限之前验证 API 密钥以进行身份验证。
  • HMAC(AK/SK)鉴权:HMAC(Hash-based Message Authentication Code)是一种基于哈希算法的鉴权方式,通过加密后的密钥来验证请求的合法性。

参考:

API接口鉴权 - 自学教程

;