吊打面试官系列之:什么是 认证、鉴权、授权、权限控制,这一篇必须安排的明明白白

1、引言

小屌丝:鱼哥,啥是认证,啥是鉴权?
小鱼:嗯?? 做了这么多年码农,这个还不知道呢?
小屌丝:唉~~ 没整明白啊,能不能给我讲一讲啊
小鱼:好吧,正好今晚有时间,我就把 认证、鉴权、授权及权限控制这点事,都给你说一说。
小屌丝:奈斯啊。

2、鉴权方案

2.1 认证

定义:
认证(Identification) :是指根据声明者所特有的识别信息,确认声明者的身份。

常见的认证技术

  • 身份证;
  • 用户名和密码;
  • 用户手机:手机短信、手机二维码扫描、手势密码;
  • 用户的电子邮箱;
  • 用户的生物学特征:指纹、语音、眼睛虹膜;
  • 用户的大数据识别;

2.2 鉴权

定义:
鉴权(Authentication) :在信息安全领域是指对于一个声明者所声明的身份权利,对其所声明的真实性进行鉴别确认的过程。

若从授权出发,则会更加容易理解鉴权。
授权和鉴权是两个上下游相匹配的关系,先授权,后鉴权

应用场景:

  • 在现实生活领域: 门禁卡需要通过门禁卡识别器,银行卡需要通过银行卡识别器;
  • 在互联网领域: 校验 session/cookie/token 的合法性和有效性

鉴权 是一个承上启下的一个环节,上游它接受授权的输出,校验其真实性后,然后获取权限(permission),这个将会为下一步的权限控制做好准备。

2.3 授权

定义:
授权(Authorization):在信息安全领域是指资源所有者委派执行者,赋予执行者指定范围的资源操作权限,以便对资源的相关操作。

应用场景:

  • 在现实生活领域: 银行卡(由银行派发)、门禁卡(由物业管理处派发)、钥匙(由房东派发),这些都是现实生活中授权的实现方式。
  • 在互联网领域例如: web 服务器的 session 机制、web 浏览器的 cookie 机制、颁发授权令牌(token)等都是一个授权的机制。

2.4 权限控制

定义:
权限控制(Access/Permission Control): 将可执行的操作定义为权限列表,然后判断操作是否允许/禁止。

对于权限控制,可以分为两部分进行理解:

  • 权限,
  • 控制。

权限是抽象的逻辑概念,而控制是具体的实现方式。

应用场景:

  • 在现实生活领域: 以门禁卡的权限实现为例,一个门禁卡,拥有开公司所有的门的权限;一个门禁卡,拥有管理员角色的权限,因而可以开公司所有的门。

  • 在互联网领域: 通过 web 后端服务,来控制接口访问,允许或拒绝访问请求。

2.5 认证,鉴权,授权及权限控制的关系

这四个关系,就是这种:

  • 认证→授权→鉴权→权限控制

注意
在以下场景,这四个环节会同时发生:

  • 使用门禁卡开门: 认证、授权、鉴权、权限控制四个环节同时发生。

  • 网站登录: 用户在使用用户名和密码进行登录时,认证和授权两个环节一同完成,而鉴权和权限控制则发生在后续的请求访问中,比如在选购物品或支付时。

3、总结

关于认证、鉴权、授权、权限控制 及四者的关系,今天就分享到这里。
下一篇,我会分享 HTTP 基本鉴权、Session-Cookie 鉴权、Token鉴权等等。

我是小鱼:

关注我,带你学习更多更专业的测试开发技术。

相关文章

学习编程是顺着互联网的发展潮流,是一件好事。新手如何学习...
IT行业是什么工作做什么?IT行业的工作有:产品策划类、页面...
女生学Java好就业吗?女生适合学Java编程吗?目前有不少女生...
Can’t connect to local MySQL server through socket \'/v...
oracle基本命令 一、登录操作 1.管理员登录 # 管理员登录 ...
一、背景 因为项目中需要通北京网络,所以需要连vpn,但是服...