[概念]认证、授权、鉴权和权限控制

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

1、认证(identification)

指的是,根据声明者所特有的识别信息,确认声明者的身份。认证方式有很多,举例来说:

  • 用户 + 密码
  • 用户手机:二维码、短信、手势密码等
  • 用户电子邮箱
  • 用户的生物学特征:指纹、语音、虹膜等
  • 身份证
  • 等等

在安全要求高的场合,经常会使用组合认证,或者叫多因素认证,也就是同时使用多个认证方式对用户的身份进行校验。

2、授权(authorization)

指的是,获取用户的委派权限

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

这里包含四个重要概念:

  • 资源所有者:拥有资源的所有权,一般就是资源的拥有者
  • 资源执行者:被委派去执行资源的相关操作
  • 操作权限:可以对资源进行某些操作
  • 资源:有价值的信息或者数据等,收到安全保护

资源所有者和执行者可以是自然人,就是普通用户,但不限于自然人。在信息安全领域,资源所有者和执行者,很多时候是应用程序或者机器。

授权的实现方式非常多也很广泛,常见的银行卡、门禁卡、钥匙、公证书,这些都是现实生活中授权的实现方式。

其实现方式主要通过一个共信的媒介完成,这个媒介不可被篡改,不可随意伪造,很多时候需要受保护,防止被窃取。

在互联网应用开发领域,授权所用到的授信媒介主要包括如下几种,

  • 通过web服务器的session机制,一个访问会话保持着用户的授权信息
  • 通过web浏览器的cookie机制,一个网站的cookie保持着用户的授权信息
  • 颁发授权令牌(token),一个合法有效的令牌中保持着用户的授权信息

3、鉴权(authentication)

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

主要就是对声明者所声明的真实性进行确认。

从授权触发会更容易李建鉴权。授权和鉴权是两个上下游相匹配的关系,先授权,再鉴权。

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

  • 门禁卡:通过门禁卡识别器
  • 钥匙:通过相匹配的锁
  • 银行卡:通过银行卡识别器
  • 互联网web开发领域的session/cookie/token:校验session/cookie/token的合法性和有效性

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

4、权限控制(permission control)

指的是,对可执行的各种操作组合配置为权限列表,然后根据执行者的权限,若其操作在权限范围内,则允许执行,否则禁止。

对于权限控制,可以分为两部分进行理解:一个是权限,另一个是控制。权限是抽象的逻辑概念,而控制是具体的实现方式。

权限

这是一个抽象的概念,一般预先定义和配置好,以便控制的具体实现。

也就是说权限是可以直接对应于一个可执行的操作集合

而一般情况下,会有基于角色的方式来定义权限,由角色来封装可执行的操作集合。

若以门禁卡的权限实现为例,上述两种定义方式则可以各自表达为,

  • 这是一个门禁卡,拥有开公司所有的门的权限

  • 这是一个门禁卡,拥有管理员角色的权限,因而可以开公司所有的门

可以看到,权限作为一个抽象的概念,将执行者和可具体执行的操作相分离。

控制

一旦有了权限,便知道了可执行的操作,接下来就是控制的事情了。

对于控制,是根据执行者的权限,对其所执行的操作进行判断,决定允许或禁止当前操作的执行

5、认证、授权、鉴权、权限控制之间的关系

认证、授权、鉴权和权限控制这四个环节是一个前后依次发生、上下游的关系,

认证 --> 授权 --> 鉴权 --> 权限控制

这四个环节在有些时候会同时发生。

再说认证和鉴权。

这两个概念在很多时候是被混淆最多的概念。被混淆的主要原因在于,很多时候认证、授权、鉴权和权限控制一同发生,以至于被误解为,认证就是鉴权,鉴权就是认证。

其实两者是不一样的概念,两者都有对身份的确认过程,但是两者的主要区别在于:

  • 认证是确认声明者的本身身份,其作为授权的上游衔接而存在
  • 鉴权是对声明者所声明的真实性进行确认的过程,其作为授权的下游衔接而存在

小结

定义 英文 实现方式
认证 确认声明者的身份 identification 根据声明者独特的识别信息
授权 获取用户的委派权限 authorization 颁发一个授信媒介,不可被篡改,不可伪造,受保护
鉴权 对声明者所声明的真实性进行确认 authentication 鉴权和授权是一一对应关系,解析授信媒介,确认其合法性、有效性
权限控制 对可执行的各种操作组合配置为权限列表,然后根据执行者的权限,若其操作在权限范围内,则允许执行,否则禁止 permission control 实现方式多样,根据具体情况来实现。
posted @ 2022-09-08 17:16  knqiufan  阅读(1476)  评论(0编辑  收藏  举报